Browse Source

Minor refactorings in CppTypePrinter.cs.

pull/1300/head
João Matos 6 years ago committed by João Matos
parent
commit
c89d427bf2
  1. 15
      src/Generator/Generators/C/CppTypePrinter.cs

15
src/Generator/Generators/C/CppTypePrinter.cs

@ -69,12 +69,14 @@ namespace CppSharp.Generators.C
public override TypePrinterResult VisitPointerType(PointerType pointer, TypeQualifiers quals) public override TypePrinterResult VisitPointerType(PointerType pointer, TypeQualifiers quals)
{ {
var qual = GetStringQuals(quals, false);
var pointeeType = pointer.Pointee.Visit(this, pointer.QualifiedPointee.Qualifiers); var pointeeType = pointer.Pointee.Visit(this, pointer.QualifiedPointee.Qualifiers);
var mod = PrintTypeModifiers ? ConvertModifierToString(pointer.Modifier) : string.Empty; var mod = PrintTypeModifiers ? ConvertModifierToString(pointer.Modifier) : string.Empty;
pointeeType.NameSuffix.Append(mod); pointeeType.NameSuffix.Append(mod);
var qual = GetStringQuals(quals, false);
if (!string.IsNullOrEmpty(qual)) if (!string.IsNullOrEmpty(qual))
pointeeType.NameSuffix.Append(' ').Append(qual); pointeeType.NameSuffix.Append(' ').Append(qual);
return pointeeType; return pointeeType;
} }
@ -325,8 +327,7 @@ namespace CppSharp.Generators.C
bool printName = hasName && !string.IsNullOrEmpty(name); bool printName = hasName && !string.IsNullOrEmpty(name);
if (PrintFlavorKind == CppTypePrintFlavorKind.ObjC) if (PrintFlavorKind == CppTypePrintFlavorKind.ObjC)
return printName ? string.Format(":({0}){1}", type, name) return printName ? $":({type}){name}" : $":({type})";
: string.Format(":({0})", type);
CppSharp.AST.Type desugared = arg.Type.Desugar(); CppSharp.AST.Type desugared = arg.Type.Desugar();
desugared = (desugared.GetFinalPointee() ?? desugared).Desugar(); desugared = (desugared.GetFinalPointee() ?? desugared).Desugar();
@ -346,19 +347,27 @@ namespace CppSharp.Generators.C
switch (scope) switch (scope)
{ {
case TypePrintScopeKind.Local: case TypePrintScopeKind.Local:
{
return PrintLogicalNames ? declaration.LogicalOriginalName return PrintLogicalNames ? declaration.LogicalOriginalName
: declaration.OriginalName; : declaration.OriginalName;
}
case TypePrintScopeKind.Qualified: case TypePrintScopeKind.Qualified:
{
if (declaration.Namespace is Class) if (declaration.Namespace is Class)
return $"{declaration.Namespace.Visit(this)}::{declaration.OriginalName}"; return $"{declaration.Namespace.Visit(this)}::{declaration.OriginalName}";
return PrintLogicalNames ? declaration.QualifiedLogicalOriginalName return PrintLogicalNames ? declaration.QualifiedLogicalOriginalName
: declaration.QualifiedOriginalName; : declaration.QualifiedOriginalName;
}
case TypePrintScopeKind.GlobalQualified: case TypePrintScopeKind.GlobalQualified:
{
if (declaration.Namespace is Class) if (declaration.Namespace is Class)
return $"{declaration.Namespace.Visit(this)}::{declaration.OriginalName}"; return $"{declaration.Namespace.Visit(this)}::{declaration.OriginalName}";
var qualifier = PrintFlavorKind == CppTypePrintFlavorKind.Cpp ? "::" : string.Empty; var qualifier = PrintFlavorKind == CppTypePrintFlavorKind.Cpp ? "::" : string.Empty;
return qualifier + GetDeclName(declaration, TypePrintScopeKind.Qualified); return qualifier + GetDeclName(declaration, TypePrintScopeKind.Qualified);
} }
}
throw new NotSupportedException(); throw new NotSupportedException();
} }

Loading…
Cancel
Save