Parcourir la source

Opaque calling issue

Brian Fiete il y a 7 mois
Parent
commit
5000a8a824
2 fichiers modifiés avec 5 ajouts et 1 suppressions
  1. 1 1
      IDEHelper/Compiler/BfModule.cpp
  2. 4 0
      IDEHelper/Tests/src/Opaques.bf

+ 1 - 1
IDEHelper/Compiler/BfModule.cpp

@@ -21983,7 +21983,7 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup,
 				if ((methodDef->mIsMutating) || (methodInstance->mCallingConvention == BfCallingConvention_Cdecl))
 					argIdx++;
 			}
-			else if (!paramVar->mResolvedType->IsValuelessType())
+			else if (!paramVar->mResolvedType->IsValuelessNonOpaqueType())
 			{
 				argIdx++;
 			}

+ 4 - 0
IDEHelper/Tests/src/Opaques.bf

@@ -20,6 +20,8 @@ class Opaques
 		saPtr.mB += addB;
 	}
 
+	static int Method1(StructB sb, void* ptr) => 0;
+
 	[Test]
 	public static void TestBasics()
 	{
@@ -28,5 +30,7 @@ class Opaques
 		sb.Modify(1000, 2000);
 		Test.Assert(sa.mA == 1123);
 		Test.Assert(sa.mB == 2234);
+
+		Method1(default, default);
 	}
 }