Jelajahi Sumber

Fixed IsTypeMemberIncluded generic unspecialized variation check

Brian Fiete 3 tahun lalu
induk
melakukan
3dd4212ccd
1 mengubah file dengan 7 tambahan dan 2 penghapusan
  1. 7 2
      IDEHelper/Compiler/BfModuleTypeUtils.cpp

+ 7 - 2
IDEHelper/Compiler/BfModuleTypeUtils.cpp

@@ -2449,8 +2449,13 @@ void BfModule::ExecuteCEOnCompile(CeEmitContext* ceEmitContext, BfTypeInstance*
 			if (methodDef->mDeclaringType->mProject == mContext->mBfObjectType->mTypeDef->mProject)
 				continue;
 
-			if (!typeInstance->IsTypeMemberIncluded(methodDef->mDeclaringType, mCurTypeInstance->mTypeDef, this))
-				continue;
+			if (methodDef->mDeclaringType != mCurTypeInstance->mTypeDef)
+			{
+				if (typeInstance->IsUnspecializedTypeVariation())
+					continue;
+				if (!typeInstance->IsTypeMemberIncluded(methodDef->mDeclaringType, mCurTypeInstance->mTypeDef, this))
+					continue;
+			}
 			
 			if (methodDef->mIdx >= typeInstance->mMethodInstanceGroups.mSize)
 				continue;