From e61a7b745361a1632ffcd349c8a69458619efd22 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Wed, 11 Jan 2017 18:10:01 +0000 Subject: [PATCH] Fixed type printing code to work handle non-C++ global qualified names correctly. --- src/AST/CppTypePrinter.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/AST/CppTypePrinter.cs b/src/AST/CppTypePrinter.cs index 26da4ec3..2ebed004 100644 --- a/src/AST/CppTypePrinter.cs +++ b/src/AST/CppTypePrinter.cs @@ -151,7 +151,7 @@ namespace CppSharp.AST FunctionType func; return decl.Type.IsPointerTo(out func) ? VisitDeclaration(decl) : decl.Type.Visit(this); } - return GetDeclName(typedef.Declaration); + return GetDeclName(typedef.Declaration, PrintScopeKind); } public virtual string VisitAttributedType(AttributedType attributed, TypeQualifiers quals) @@ -290,9 +290,9 @@ namespace CppSharp.AST throw new System.NotImplementedException(); } - public virtual string GetDeclName(Declaration declaration) + public virtual string GetDeclName(Declaration declaration, CppTypePrintScopeKind scope) { - switch (PrintScopeKind) + switch (scope) { case CppTypePrintScopeKind.Local: return PrintLogicalNames ? declaration.LogicalOriginalName @@ -301,8 +301,8 @@ namespace CppSharp.AST return PrintLogicalNames ? declaration.QualifiedLogicalOriginalName : declaration.QualifiedOriginalName; case CppTypePrintScopeKind.GlobalQualified: - return "::" + (PrintLogicalNames ? declaration.QualifiedLogicalOriginalName - : declaration.QualifiedOriginalName); + var qualifier = PrintFlavorKind == CppTypePrintFlavorKind.Cpp ? "::" : string.Empty; + return qualifier + GetDeclName(declaration, CppTypePrintScopeKind.Qualified); } throw new NotSupportedException(); @@ -310,7 +310,7 @@ namespace CppSharp.AST public virtual string VisitDeclaration(Declaration decl) { - return GetDeclName(decl); + return GetDeclName(decl, PrintScopeKind); } public virtual string VisitClassDecl(Class @class)