diff --git a/src/AST/FunctionExtensions.cs b/src/AST/FunctionExtensions.cs index 17a1c9ae4b..ce37ec67f5 100644 --- a/src/AST/FunctionExtensions.cs +++ b/src/AST/FunctionExtensions.cs @@ -21,7 +21,7 @@ public static IList GatherInternalParams(this Function function, @params.Add(new Parameter { QualifiedType = pointer, - Name = "instance", + Name = "__instance", Namespace = function }); } @@ -32,7 +32,7 @@ public static IList GatherInternalParams(this Function function, @params.Add(new Parameter { QualifiedType = pointer, - Name = "instance", + Name = "__instance", Namespace = function }); } @@ -57,7 +57,7 @@ public static IList GatherInternalParams(this Function function, @params.Add(new Parameter { QualifiedType = pointer, - Name = "instance", + Name = "__instance", Namespace = function }); } diff --git a/src/Generator/Generators/CSharp/CSharpSources.cs b/src/Generator/Generators/CSharp/CSharpSources.cs index 7f80228c85..ee3c502c95 100644 --- a/src/Generator/Generators/CSharp/CSharpSources.cs +++ b/src/Generator/Generators/CSharp/CSharpSources.cs @@ -1786,12 +1786,13 @@ private void GenerateVTableMethodDelegates(Class @class, Method method) string.Join(", ", @params)); WriteOpenBraceAndIndent(); - WriteLine("if (!NativeToManagedMap.ContainsKey(instance))"); + WriteLine($"if (!NativeToManagedMap.ContainsKey({Helpers.InstanceField}))"); WriteLineIndent("throw new global::System.Exception(\"No managed instance was found\");"); NewLine(); var printedClass = @class.Visit(TypePrinter); - WriteLine($"var {Helpers.TargetIdentifier} = ({printedClass}) NativeToManagedMap[instance];"); + WriteLine($@"var {Helpers.TargetIdentifier} = ({ + printedClass}) NativeToManagedMap[{Helpers.InstanceField}];"); WriteLine("if ({0}.{1})", Helpers.TargetIdentifier, Helpers.OwnsNativeInstanceIdentifier); WriteLineIndent("{0}.SetupVTables();", Helpers.TargetIdentifier); GenerateVTableManagedCall(method); diff --git a/tests/Common/Common.Tests.cs b/tests/Common/Common.Tests.cs index a07d449312..b41875a9fe 100644 --- a/tests/Common/Common.Tests.cs +++ b/tests/Common/Common.Tests.cs @@ -55,6 +55,7 @@ public unsafe void TestCodeGeneration() ItemsDifferByCase itemsDifferByCase = ItemsDifferByCase.Case_a; itemsDifferByCase = ItemsDifferByCase.CaseA; itemsDifferByCase.GetHashCode(); + new AmbiguousParamNames(0, 0).Dispose(); Common.SMallFollowedByCapital(); Common.IntegerOverload(0); Common.IntegerOverload((uint) 0); diff --git a/tests/Common/Common.cpp b/tests/Common/Common.cpp index 0f394c9af6..de39359740 100644 --- a/tests/Common/Common.cpp +++ b/tests/Common/Common.cpp @@ -848,7 +848,7 @@ HasOverloadsWithDifferentPointerKindsToSameType::~HasOverloadsWithDifferentPoint { } -void HasOverloadsWithDifferentPointerKindsToSameType::overload(int& in) +void HasOverloadsWithDifferentPointerKindsToSameType::overload(int& i) { } @@ -991,6 +991,14 @@ void DerivedFromSecondaryBaseWithIgnoredVirtualMethod::ignored(const IgnoredType { } +AmbiguousParamNames::AmbiguousParamNames(int instance, int in) +{ +} + +AmbiguousParamNames::~AmbiguousParamNames() +{ +} + void integerOverload(int i) { } diff --git a/tests/Common/Common.h b/tests/Common/Common.h index 911cfbe03c..7a31bf6d04 100644 --- a/tests/Common/Common.h +++ b/tests/Common/Common.h @@ -1310,7 +1310,7 @@ class DLL_API HasOverloadsWithDifferentPointerKindsToSameType public: HasOverloadsWithDifferentPointerKindsToSameType(); ~HasOverloadsWithDifferentPointerKindsToSameType(); - void overload(int& in); + void overload(int& i); void overload(int&& i); void overload(const int& i); void overload(const Foo& rx, int from = -1); @@ -1394,6 +1394,13 @@ class DLL_API DerivedFromSecondaryBaseWithIgnoredVirtualMethod : public Foo, pub void ignored(const IgnoredType& ignoredParam); }; +class DLL_API AmbiguousParamNames +{ +public: + AmbiguousParamNames(int instance, int in); + ~AmbiguousParamNames(); +}; + template void TemplatedFunction(T type) { @@ -1403,7 +1410,7 @@ inline namespace InlineNamespace { void FunctionInsideInlineNamespace() { - + } }