diff --git a/src/Generator/Generators/CLI/CLITypeReferences.cs b/src/Generator/Generators/CLI/CLITypeReferences.cs index 885279e2..1ff72cf7 100644 --- a/src/Generator/Generators/CLI/CLITypeReferences.cs +++ b/src/Generator/Generators/CLI/CLITypeReferences.cs @@ -71,14 +71,15 @@ namespace CppSharp.Generators.CLI static Namespace GetEffectiveNamespace(Declaration decl) { - if (decl == null || decl.Namespace == null) + if (decl == null) return null; - var @namespace = decl.Namespace as Namespace; - if (@namespace != null) - return @namespace; + var declContext = decl.Namespace; - return GetEffectiveNamespace(@namespace); + while (declContext != null && declContext is not Namespace) + declContext = declContext.Namespace; + + return declContext as Namespace; } public void Process(Namespace @namespace, bool filterNamespaces = false)