From fcb93169a202f59ad0289242e4a2bb4b765f0ea8 Mon Sep 17 00:00:00 2001 From: marcos henrich Date: Tue, 30 Jul 2013 10:06:09 +0100 Subject: [PATCH] Added OriginalNamespace to Declaration and now QualifiedOriginalName uses it. --- src/AST/Declaration.cs | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/AST/Declaration.cs b/src/AST/Declaration.cs index a9c9fa67..94f85ecc 100644 --- a/src/AST/Declaration.cs +++ b/src/AST/Declaration.cs @@ -38,10 +38,24 @@ namespace CppSharp.AST /// public abstract class Declaration : INamedDecl { + + private DeclarationContext @namespace; + public DeclarationContext OriginalNamespace; + // Namespace the declaration is contained in. - public DeclarationContext Namespace; + public DeclarationContext Namespace + { + get { return @namespace; } + set + { + @namespace = value; + if (OriginalNamespace == null) + OriginalNamespace = @namespace; + } + } private string name; + public virtual string OriginalName { get; set;} // Name of the declaration. public virtual string Name @@ -66,17 +80,14 @@ namespace CppSharp.AST } } - // Name of the declaration. - public virtual string OriginalName { get; set;} - public string QualifiedOriginalName { get { - if (Namespace == null) + if (OriginalNamespace == null) return OriginalName; - return Namespace.IsRoot ? OriginalName - : string.Format("{0}::{1}", Namespace.QualifiedOriginalName, OriginalName); + return OriginalNamespace.IsRoot ? OriginalName + : string.Format("{0}::{1}", OriginalNamespace.QualifiedOriginalName, OriginalName); } }