diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index 5a40a350..1fcacb90 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -281,6 +281,8 @@ namespace CppSharp TranslationUnitPasses.AddPass(new SortDeclarationsPass()); TranslationUnitPasses.AddPass(new ResolveIncompleteDeclsPass()); TranslationUnitPasses.AddPass(new IgnoreSystemDeclarationsPass()); + if (Options.IsCSharpGenerator) + TranslationUnitPasses.AddPass(new EqualiseAccessOfOverrideAndBasePass()); TranslationUnitPasses.AddPass(new CheckIgnoredDeclsPass()); if (Options.IsCSharpGenerator) @@ -323,7 +325,6 @@ namespace CppSharp TranslationUnitPasses.AddPass(new MultipleInheritancePass()); TranslationUnitPasses.AddPass(new ParamTypeToInterfacePass()); TranslationUnitPasses.AddPass(new DelegatesPass()); - TranslationUnitPasses.AddPass(new EqualiseAccessOfOverrideAndBasePass()); } TranslationUnitPasses.AddPass(new GetterSetterToPropertyPass()); diff --git a/src/Generator/Passes/EqualiseAccessOfOverrideAndBasePass.cs b/src/Generator/Passes/EqualiseAccessOfOverrideAndBasePass.cs index 35f0051c..32669568 100644 --- a/src/Generator/Passes/EqualiseAccessOfOverrideAndBasePass.cs +++ b/src/Generator/Passes/EqualiseAccessOfOverrideAndBasePass.cs @@ -6,6 +6,20 @@ namespace CppSharp.Passes { public class EqualiseAccessOfOverrideAndBasePass : TranslationUnitPass { + public EqualiseAccessOfOverrideAndBasePass() + { + VisitOptions.VisitClassBases = false; + VisitOptions.VisitClassFields = false; + VisitOptions.VisitClassProperties = false; + VisitOptions.VisitEventParameters = false; + VisitOptions.VisitFunctionParameters = false; + VisitOptions.VisitFunctionReturnType = false; + VisitOptions.VisitNamespaceEnums = false; + VisitOptions.VisitNamespaceEvents = false; + VisitOptions.VisitNamespaceVariables = false; + VisitOptions.VisitTemplateArguments = false; + } + public override bool VisitASTContext(ASTContext context) { var result = base.VisitASTContext(context); diff --git a/tests/Common/Common.h b/tests/Common/Common.h index efb9ec9d..a76674ea 100644 --- a/tests/Common/Common.h +++ b/tests/Common/Common.h @@ -261,6 +261,7 @@ public: typedef int typedefInOverride; virtual int pureFunction(typedefInOverride i = 0); virtual int pureFunction1(); +private: virtual int pureFunction2(bool* ok = 0); };