diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 4efc171d..39cdfa85 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -320,6 +320,8 @@ bool BfGenericInferContext::InferGenericArgument(BfMethodInstance* methodInstanc } if ((*mCheckMethodGenericArguments)[wantGenericParam->mGenericParamIdx] == NULL) mInferredCount++; + if ((argType != NULL) && (argType->IsIntUnknown())) + argType = mModule->FixIntUnknown(argType); (*mCheckMethodGenericArguments)[wantGenericParam->mGenericParamIdx] = argType; if (!mPrevArgValues.IsEmpty()) mPrevArgValues[wantGenericParam->mGenericParamIdx] = argValue; diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index d8ff4c52..8f9fc49a 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -582,10 +582,6 @@ void BfModule::InitType(BfType* resolvedTypeRef, BfPopulateType populateType) if (resolvedTypeRef->IsGenericTypeInstance()) { auto genericTypeInst = (BfTypeInstance*)resolvedTypeRef; - //BF_ASSERT(genericTypeInst->mGenericParams.size() <= genericTypeInst->mTypeGenericArguments.size()); -// BF_ASSERT((genericTypeInst->mGenericParams.size() == 0) || -// (genericTypeInst->mGenericParams.size() == genericTypeInst->mTypeGenericArguments.size())); - for (auto typeGenericArg : genericTypeInst->mGenericTypeInfo->mTypeGenericArguments) { BF_ASSERT((typeGenericArg->mRebuildFlags & BfTypeRebuildFlag_Deleted) == 0); @@ -598,6 +594,7 @@ void BfModule::InitType(BfType* resolvedTypeRef, BfPopulateType populateType) PopulateType(genericArg, BfPopulateType_Declaration); } } + BF_ASSERT(!typeGenericArg->IsIntUnknown()); } }