Browse Source

Print default if normal context

pull/1918/head
duckdoom5 8 months ago
parent
commit
dc50ec435f
  1. 126
      src/Generator/Generators/C/CppTypePrinter.cs

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

@ -199,32 +199,32 @@ namespace CppSharp.Generators.C
return PrintFlavorKind == CppTypePrintFlavorKind.Cpp ? return PrintFlavorKind == CppTypePrintFlavorKind.Cpp ?
"std::nullptr_t" : "NULL"; "std::nullptr_t" : "NULL";
case PrimitiveType.String: case PrimitiveType.String:
{
switch (PrintFlavorKind)
{ {
switch (PrintFlavorKind) case CppTypePrintFlavorKind.C:
{ return "const char*";
case CppTypePrintFlavorKind.C: case CppTypePrintFlavorKind.Cpp:
return "const char*"; return "std::string";
case CppTypePrintFlavorKind.Cpp: case CppTypePrintFlavorKind.ObjC:
return "std::string"; return "NSString";
case CppTypePrintFlavorKind.ObjC: default:
return "NSString"; throw new ArgumentOutOfRangeException();
default:
throw new ArgumentOutOfRangeException();
}
} }
}
case PrimitiveType.Decimal: case PrimitiveType.Decimal:
{
switch (PrintFlavorKind)
{ {
switch (PrintFlavorKind) case CppTypePrintFlavorKind.C:
{ case CppTypePrintFlavorKind.Cpp:
case CppTypePrintFlavorKind.C: return "_Decimal32";
case CppTypePrintFlavorKind.Cpp: case CppTypePrintFlavorKind.ObjC:
return "_Decimal32"; return "NSDecimalNumber";
case CppTypePrintFlavorKind.ObjC: default:
return "NSDecimalNumber"; throw new ArgumentOutOfRangeException();
default:
throw new ArgumentOutOfRangeException();
}
} }
}
} }
throw new NotSupportedException(); throw new NotSupportedException();
@ -472,58 +472,64 @@ namespace CppSharp.Generators.C
switch (scope) switch (scope)
{ {
case TypePrintScopeKind.Local: case TypePrintScopeKind.Local:
{
if (ContextKind is TypePrinterContextKind.Managed or TypePrinterContextKind.Normal)
{ {
if (ContextKind == TypePrinterContextKind.Managed) return PrintLogicalNames ? declaration.LogicalName : declaration.Name;
{ }
return PrintLogicalNames ? declaration.LogicalName : declaration.Name;
}
if (PrefixSpecialFunctions)
{
if (declaration is Function { IsOperator: true } function)
return $"operator_{function.OperatorKind}";
}
return PrintLogicalNames ? declaration.LogicalOriginalName if (PrefixSpecialFunctions)
: declaration.OriginalName; {
if (declaration is Function { IsOperator: true } function)
return $"operator_{function.OperatorKind}";
} }
return PrintLogicalNames ? declaration.LogicalOriginalName
: declaration.OriginalName;
}
case TypePrintScopeKind.Qualified: case TypePrintScopeKind.Qualified:
{
if (ContextKind == TypePrinterContextKind.Managed)
{ {
if (ContextKind == TypePrinterContextKind.Managed) var outputNamespace = GlobalNamespace(declaration);
if (!string.IsNullOrEmpty(outputNamespace))
{ {
var outputNamespace = GlobalNamespace(declaration); return $"{outputNamespace}{NamespaceSeparator}{declaration.QualifiedName}";
if (!string.IsNullOrEmpty(outputNamespace))
{
return $"{outputNamespace}{NamespaceSeparator}{declaration.QualifiedName}";
}
return declaration.QualifiedName;
} }
if (declaration.Namespace is Class) return declaration.QualifiedName;
{ }
var declName = GetDeclName(declaration, TypePrintScopeKind.Local);
bool printTags = PrintTags;
PrintTags = false;
TypePrinterResult declContext = declaration.Namespace.Visit(this);
PrintTags = printTags;
return $"{declContext}{NamespaceSeparator}{declName}";
}
return PrintLogicalNames ? declaration.QualifiedLogicalOriginalName if (declaration.Namespace is Class)
: declaration.QualifiedOriginalName; {
var declName = GetDeclName(declaration, TypePrintScopeKind.Local);
bool printTags = PrintTags;
PrintTags = false;
TypePrinterResult declContext = declaration.Namespace.Visit(this);
PrintTags = printTags;
return $"{declContext}{NamespaceSeparator}{declName}";
} }
case TypePrintScopeKind.GlobalQualified:
if (ContextKind == TypePrinterContextKind.Normal)
{ {
var name = (ContextKind == TypePrinterContextKind.Managed) ? return PrintLogicalNames ? declaration.QualifiedLogicalName
declaration.Name : declaration.OriginalName; : declaration.QualifiedName;
}
return PrintLogicalNames ? declaration.QualifiedLogicalOriginalName
: declaration.QualifiedOriginalName;
}
case TypePrintScopeKind.GlobalQualified:
{
var name = (ContextKind == TypePrinterContextKind.Managed) ?
declaration.Name : declaration.OriginalName;
if (declaration.Namespace is Class) if (declaration.Namespace is Class)
return $"{declaration.Namespace.Visit(this)}{NamespaceSeparator}{name}"; return $"{declaration.Namespace.Visit(this)}{NamespaceSeparator}{name}";
var qualifier = HasGlobalNamespacePrefix ? NamespaceSeparator : string.Empty; var qualifier = HasGlobalNamespacePrefix ? NamespaceSeparator : string.Empty;
return qualifier + GetDeclName(declaration, TypePrintScopeKind.Qualified); return qualifier + GetDeclName(declaration, TypePrintScopeKind.Qualified);
} }
} }
throw new NotSupportedException(); throw new NotSupportedException();

Loading…
Cancel
Save