diff --git a/src/Generator/Passes/RenamePass.cs b/src/Generator/Passes/RenamePass.cs index 0008cdee..e594099a 100644 --- a/src/Generator/Passes/RenamePass.cs +++ b/src/Generator/Passes/RenamePass.cs @@ -85,11 +85,15 @@ namespace CppSharp.Passes private static bool AreThereConflicts(Declaration decl, string newName) { var declarations = new List(); - declarations.AddRange(decl.Namespace.Classes); + declarations.AddRange(decl.Namespace.Classes.Where(c => !c.IsIncomplete)); declarations.AddRange(decl.Namespace.Enums); declarations.AddRange(decl.Namespace.Events); declarations.AddRange(decl.Namespace.Functions); declarations.AddRange(decl.Namespace.Variables); + declarations.AddRange(from typedefDecl in decl.Namespace.Typedefs + let pointerType = typedefDecl.Type.Desugar() as PointerType + where pointerType != null && pointerType.Pointee is FunctionType + select typedefDecl); var result = declarations.Any(d => d != decl && d.Name == newName); if (result) diff --git a/tests/CSharpTemp/CSharpTemp.h b/tests/CSharpTemp/CSharpTemp.h index 7e187858..60b6b484 100644 --- a/tests/CSharpTemp/CSharpTemp.h +++ b/tests/CSharpTemp/CSharpTemp.h @@ -51,6 +51,9 @@ public: int takesQux(const Qux& qux); Qux returnQux(); + + typedef bool (*FunctionTypedef)(const void *); + FunctionTypedef functionTypedef; }; struct QArrayData