From 9923d79617e8ae24851f9d86c195fb3b5ef82224 Mon Sep 17 00:00:00 2001 From: stachu99 Date: Tue, 4 Jul 2023 11:45:55 +0200 Subject: [PATCH] CppSharp.AST.Declaration - fix return QualifiedOriginalName, QualifiedLogicalOriginalName (#1740) Fixed properties getters of QualifiedOriginalName, QualifiedLogicalOriginalName and methods GetQualifiedName(), GatherNamespaces. --- src/AST/Declaration.cs | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/AST/Declaration.cs b/src/AST/Declaration.cs index 02176d6a87..2fc50d3122 100644 --- a/src/AST/Declaration.cs +++ b/src/AST/Declaration.cs @@ -189,15 +189,16 @@ public virtual string Name public static string QualifiedNameSeparator = "::"; public string GetQualifiedName(Func getName, - Func getNamespace) + Func getNamespace, bool getOriginal) { - if (Namespace == null) + DeclarationContext @namespace = getNamespace(this); + if (@namespace == null) return getName(this); - if (Namespace.IsRoot) + if (@namespace.IsRoot) return getName(this); - var namespaces = GatherNamespaces(getNamespace(this)); + var namespaces = GatherNamespaces(@namespace, getOriginal); var names = namespaces.Select(getName).ToList(); names.Add(getName(this)); @@ -206,7 +207,7 @@ public string GetQualifiedName(Func getName, return string.Join(QualifiedNameSeparator, names); } - public static IEnumerable GatherNamespaces(DeclarationContext @namespace) + public static IEnumerable GatherNamespaces(DeclarationContext @namespace, bool getOriginal) { var namespaces = new Stack(); @@ -216,7 +217,7 @@ public static IEnumerable GatherNamespaces(DeclarationContext @name var isInlineNamespace = currentNamespace is Namespace { IsInline: true }; if (!isInlineNamespace) namespaces.Push(currentNamespace); - currentNamespace = currentNamespace.Namespace; + currentNamespace = getOriginal ? currentNamespace.OriginalNamespace : currentNamespace.Namespace; } return namespaces; @@ -226,7 +227,7 @@ public string QualifiedName { get { - return GetQualifiedName(decl => GetDeclName(decl, decl.Name), decl => decl.Namespace); + return GetQualifiedName(decl => GetDeclName(decl, decl.Name), decl => decl.Namespace, false); } } @@ -235,7 +236,7 @@ public string QualifiedOriginalName get { return GetQualifiedName( - decl => GetDeclName(decl, decl.OriginalName), decl => decl.OriginalNamespace); + decl => GetDeclName(decl, decl.OriginalName), decl => decl.OriginalNamespace, true); } } @@ -244,7 +245,7 @@ public string QualifiedLogicalName get { return GetQualifiedName( - decl => GetDeclName(decl, decl.LogicalName), decl => decl.Namespace); + decl => GetDeclName(decl, decl.LogicalName), decl => decl.Namespace, false); } } @@ -253,7 +254,7 @@ public string QualifiedLogicalOriginalName get { return GetQualifiedName( - decl => GetDeclName(decl, decl.LogicalOriginalName), decl => decl.OriginalNamespace); + decl => GetDeclName(decl, decl.LogicalOriginalName), decl => decl.OriginalNamespace, true); } }