diff --git a/src/Generator/Passes/SymbolsCodeGenerator.cs b/src/Generator/Passes/SymbolsCodeGenerator.cs index 1b5bf760..5c3ba34c 100644 --- a/src/Generator/Passes/SymbolsCodeGenerator.cs +++ b/src/Generator/Passes/SymbolsCodeGenerator.cs @@ -162,8 +162,7 @@ namespace CppSharp.Passes bool isAbstract = ((Class)method.Namespace).IsAbstract; if (method.Access == AccessSpecifier.Protected || isAbstract) { - Write($@"{{ ::new ({Helpers.InstanceField}) { - wrapper}{method.Namespace.Name}({@params}); }}"); + Write($@"{{ ::new ({Helpers.InstanceField}) {wrapper}{method.Namespace.Name}({@params}); }}"); WriteLine(!isAbstract ? " };" : string.Empty); } else @@ -210,12 +209,10 @@ namespace CppSharp.Passes { string @class = wrapper + method.Namespace.Name; WriteLine($"() {{ this->~{@class}(); }} }};"); - Write($@"extern ""C"" {GetExporting()}void {wrapper}({ - @class}* {instance}) {{ {instance}->{wrapper}Protected"); + Write($@"extern ""C"" {GetExporting()}void {wrapper}({@class}* {instance}) {{ {instance}->{wrapper}Protected"); } else - Write($@"({$"{@namespace}*{instance}"}) {{ { - instance}->~{method.Namespace.Name}"); + Write($@"({$"{@namespace}*{instance}"}) {{ {instance}->~{method.Namespace.Name}"); WriteLine("(); }"); } @@ -238,8 +235,7 @@ namespace CppSharp.Passes var method = function as Method; if (function.Namespace.Access == AccessSpecifier.Protected) - Write($@"class {wrapper}{function.Namespace.Name} : public { - function.Namespace.Namespace.Visit(cppTypePrinter)} {{ "); + Write($@"class {wrapper}{function.Namespace.Name} : public {function.Namespace.Namespace.Visit(cppTypePrinter)} {{ "); string variable = $@"({(method?.IsStatic == false ? (@namespace + "::") : string.Empty)}*{wrapper}){signature}"; diff --git a/tests/dotnet/CSharp/CSharpTemplates.h b/tests/dotnet/CSharp/CSharpTemplates.h index 7f872c21..0ba65254 100644 --- a/tests/dotnet/CSharp/CSharpTemplates.h +++ b/tests/dotnet/CSharp/CSharpTemplates.h @@ -163,9 +163,10 @@ T IndependentFields::getDependent(const T& t) } template -T IndependentFields::property() +typename IndependentFields::Type IndependentFields::property() { - return T(); + std::remove_reference_t> t; + return t; } template