瀏覽代碼

Fixed IsTypeMemberIncluded generic unspecialized variation check

Brian Fiete 3 年之前
父節點
當前提交
3dd4212ccd
共有 1 個文件被更改,包括 7 次插入2 次删除
  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)
 			if (methodDef->mDeclaringType->mProject == mContext->mBfObjectType->mTypeDef->mProject)
 				continue;
 				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)
 			if (methodDef->mIdx >= typeInstance->mMethodInstanceGroups.mSize)
 				continue;
 				continue;