Skip to content

Commit 5ca6e69

Browse files
stachu99JordanL8
authored andcommitted
CppSharp.AST.Declaration - fix return QualifiedOriginalName, QualifiedLogicalOriginalName (mono#1740)
Fixed properties getters of QualifiedOriginalName, QualifiedLogicalOriginalName and methods GetQualifiedName(), GatherNamespaces. (cherry picked from commit 9923d79)
1 parent b4c9ad2 commit 5ca6e69

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/AST/Declaration.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -189,15 +189,16 @@ public virtual string Name
189189
public static string QualifiedNameSeparator = "::";
190190

191191
public string GetQualifiedName(Func<Declaration, string> getName,
192-
Func<Declaration, DeclarationContext> getNamespace)
192+
Func<Declaration, DeclarationContext> getNamespace, bool getOriginal)
193193
{
194-
if (Namespace == null)
194+
DeclarationContext @namespace = getNamespace(this);
195+
if (@namespace == null)
195196
return getName(this);
196197

197-
if (Namespace.IsRoot)
198+
if (@namespace.IsRoot)
198199
return getName(this);
199200

200-
var namespaces = GatherNamespaces(getNamespace(this));
201+
var namespaces = GatherNamespaces(@namespace, getOriginal);
201202

202203
var names = namespaces.Select(getName).ToList();
203204
names.Add(getName(this));
@@ -206,7 +207,7 @@ public string GetQualifiedName(Func<Declaration, string> getName,
206207
return string.Join(QualifiedNameSeparator, names);
207208
}
208209

209-
public static IEnumerable<Declaration> GatherNamespaces(DeclarationContext @namespace)
210+
public static IEnumerable<Declaration> GatherNamespaces(DeclarationContext @namespace, bool getOriginal)
210211
{
211212
var namespaces = new Stack<Declaration>();
212213

@@ -216,7 +217,7 @@ public static IEnumerable<Declaration> GatherNamespaces(DeclarationContext @name
216217
var isInlineNamespace = currentNamespace is Namespace { IsInline: true };
217218
if (!isInlineNamespace)
218219
namespaces.Push(currentNamespace);
219-
currentNamespace = currentNamespace.Namespace;
220+
currentNamespace = getOriginal ? currentNamespace.OriginalNamespace : currentNamespace.Namespace;
220221
}
221222

222223
return namespaces;
@@ -226,7 +227,7 @@ public string QualifiedName
226227
{
227228
get
228229
{
229-
return GetQualifiedName(decl => GetDeclName(decl, decl.Name), decl => decl.Namespace);
230+
return GetQualifiedName(decl => GetDeclName(decl, decl.Name), decl => decl.Namespace, false);
230231
}
231232
}
232233

@@ -235,7 +236,7 @@ public string QualifiedOriginalName
235236
get
236237
{
237238
return GetQualifiedName(
238-
decl => GetDeclName(decl, decl.OriginalName), decl => decl.OriginalNamespace);
239+
decl => GetDeclName(decl, decl.OriginalName), decl => decl.OriginalNamespace, true);
239240
}
240241
}
241242

@@ -244,7 +245,7 @@ public string QualifiedLogicalName
244245
get
245246
{
246247
return GetQualifiedName(
247-
decl => GetDeclName(decl, decl.LogicalName), decl => decl.Namespace);
248+
decl => GetDeclName(decl, decl.LogicalName), decl => decl.Namespace, false);
248249
}
249250
}
250251

@@ -253,7 +254,7 @@ public string QualifiedLogicalOriginalName
253254
get
254255
{
255256
return GetQualifiedName(
256-
decl => GetDeclName(decl, decl.LogicalOriginalName), decl => decl.OriginalNamespace);
257+
decl => GetDeclName(decl, decl.LogicalOriginalName), decl => decl.OriginalNamespace, true);
257258
}
258259
}
259260

0 commit comments

Comments
 (0)