Browse Source

Improved the rename pass with fixes for visits and minor formatting nits.

pull/144/head
triton 12 years ago
parent
commit
6ea0dae444
  1. 17
      src/Generator/Passes/RenamePass.cs

17
src/Generator/Passes/RenamePass.cs

@ -62,13 +62,11 @@ namespace CppSharp.Passes
public override bool VisitDeclaration(Declaration decl) public override bool VisitDeclaration(Declaration decl)
{ {
if (!IsRenameableDecl(decl))
return true;
if (AlreadyVisited(decl)) if (AlreadyVisited(decl))
return true; return false;
Visited.Add(decl); if (!IsRenameableDecl(decl))
return true;
if (decl.Name == null) if (decl.Name == null)
return true; return true;
@ -86,18 +84,21 @@ namespace CppSharp.Passes
private static bool AreThereConflicts(Declaration decl, string newName) private static bool AreThereConflicts(Declaration decl, string newName)
{ {
List<Declaration> declarations = new List<Declaration>(); var declarations = new List<Declaration>();
declarations.AddRange(decl.Namespace.Classes); declarations.AddRange(decl.Namespace.Classes);
declarations.AddRange(decl.Namespace.Enums); declarations.AddRange(decl.Namespace.Enums);
declarations.AddRange(decl.Namespace.Events); declarations.AddRange(decl.Namespace.Events);
declarations.AddRange(decl.Namespace.Functions); declarations.AddRange(decl.Namespace.Functions);
declarations.AddRange(decl.Namespace.Variables); declarations.AddRange(decl.Namespace.Variables);
bool result = declarations.Any(d => d != decl && d.Name == newName);
var result = declarations.Any(d => d != decl && d.Name == newName);
if (result) if (result)
return true; return true;
Method method = decl as Method;
var method = decl as Method;
if (method == null || !method.IsGenerated) if (method == null || !method.IsGenerated)
return false; return false;
return ((Class) method.Namespace).GetPropertyByName(newName) != null; return ((Class) method.Namespace).GetPropertyByName(newName) != null;
} }

Loading…
Cancel
Save