diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index aa88269a..4e40d1eb 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -140,9 +140,9 @@ namespace CppSharp TranslationUnitPasses.AddPass(new FindSymbolsPass()); TranslationUnitPasses.AddPass(new MoveOperatorToClassPass()); + TranslationUnitPasses.AddPass(new CheckAmbiguousFunctions()); TranslationUnitPasses.AddPass(new CheckOperatorsOverloadsPass()); TranslationUnitPasses.AddPass(new CheckVirtualOverrideReturnCovariance()); - TranslationUnitPasses.AddPass(new CheckAmbiguousFunctions()); Generator.SetupPasses(); TranslationUnitPasses.AddPass(new FieldToPropertyPass()); diff --git a/src/Generator/Passes/CheckAmbiguousFunctions.cs b/src/Generator/Passes/CheckAmbiguousFunctions.cs index 1a4aed97..a44f642e 100644 --- a/src/Generator/Passes/CheckAmbiguousFunctions.cs +++ b/src/Generator/Passes/CheckAmbiguousFunctions.cs @@ -23,14 +23,6 @@ namespace CppSharp.Passes /// public class CheckAmbiguousFunctions : TranslationUnitPass { - public override bool VisitMethodDecl(Method method) - { - if (method.Kind != CXXMethodKind.Normal) - return false; - - return base.VisitMethodDecl(method); - } - public override bool VisitFunctionDecl(AST.Function function) { if (AlreadyVisited(function)) diff --git a/src/Generator/Passes/CheckOperatorsOverloads.cs b/src/Generator/Passes/CheckOperatorsOverloads.cs index 96769a05..8da7ae5a 100644 --- a/src/Generator/Passes/CheckOperatorsOverloads.cs +++ b/src/Generator/Passes/CheckOperatorsOverloads.cs @@ -44,7 +44,7 @@ namespace CppSharp.Passes private void CheckInvalidOperators(Class @class) { - foreach (var @operator in @class.Operators) + foreach (var @operator in @class.Operators.Where(o => !o.Ignore)) { if (!IsValidOperatorOverload(@operator)) { @@ -85,21 +85,17 @@ namespace CppSharp.Passes private static void CreateIndexer(Class @class, Method @operator) { - if (@class.Properties.All(p => p.Parameters.Count == 0 || - p.Parameters[0].QualifiedType != @operator.Parameters[0].QualifiedType)) + Property property = new Property { - Property property = new Property - { - Name = "Item", - QualifiedType = @operator.ReturnType, - Access = @operator.Access, - Namespace = @class - }; - property.GetMethod = @operator; - property.Parameters.AddRange(@operator.Parameters); - @class.Properties.Add(property); - @operator.IsGenerated = false; - } + Name = "Item", + QualifiedType = @operator.ReturnType, + Access = @operator.Access, + Namespace = @class, + GetMethod = @operator + }; + property.Parameters.AddRange(@operator.Parameters); + @class.Properties.Add(property); + @operator.IsGenerated = false; } static void HandleMissingOperatorOverloadPair(Class @class, CXXOperatorKind op1,