Browse Source

Added support for clearing declarations between visits and fixed some passes that need it.

pull/144/head
triton 12 years ago
parent
commit
8d9e866009
  1. 1
      src/Generator/Passes/CheckDuplicatedNamesPass.cs
  2. 5
      src/Generator/Passes/CheckOperatorsOverloads.cs
  3. 5
      src/Generator/Passes/Pass.cs

1
src/Generator/Passes/CheckDuplicatedNamesPass.cs

@ -89,6 +89,7 @@ namespace CppSharp.Passes @@ -89,6 +89,7 @@ namespace CppSharp.Passes
public CheckDuplicatedNamesPass()
{
ClearVisitedDeclarations = false;
names = new Dictionary<string, DeclarationName>();
}

5
src/Generator/Passes/CheckOperatorsOverloads.cs

@ -9,6 +9,11 @@ namespace CppSharp.Passes @@ -9,6 +9,11 @@ namespace CppSharp.Passes
/// </summary>
class CheckOperatorsOverloadsPass : TranslationUnitPass
{
public CheckOperatorsOverloadsPass()
{
ClearVisitedDeclarations = false;
}
public override bool VisitClassDecl(Class @class)
{
if (@class.CompleteDeclaration != null)

5
src/Generator/Passes/Pass.cs

@ -17,6 +17,8 @@ namespace CppSharp.Passes @@ -17,6 +17,8 @@ namespace CppSharp.Passes
get { return Driver.Diagnostics; }
}
public bool ClearVisitedDeclarations = false;
public virtual bool VisitLibrary(ASTContext context)
{
AstContext = context;
@ -34,6 +36,9 @@ namespace CppSharp.Passes @@ -34,6 +36,9 @@ namespace CppSharp.Passes
if (unit.IsSystemHeader)
return false;
if (ClearVisitedDeclarations)
Visited.Clear();
VisitDeclarationContext(unit);
return true;

Loading…
Cancel
Save