1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 12:02:21 +02:00

Allow unconstrained 'T.InnerType' lookup for 'var' constraints

This commit is contained in:
Brian Fiete 2021-12-30 11:28:05 -05:00
parent be6e7edf02
commit 681f815cd7

View file

@ -9939,6 +9939,13 @@ BfType* BfModule::ResolveTypeRef(BfTypeReference* typeRef, BfPopulateType popula
return ResolveTypeResult(typeRef, NULL, populateType, resolveFlags); return ResolveTypeResult(typeRef, NULL, populateType, resolveFlags);
} }
if (leftType->IsGenericParam())
{
auto genericParam = GetGenericParamInstance((BfGenericParamType*)leftType);
if ((genericParam->mGenericParamFlags & BfGenericParamFlag_Var) != 0)
return ResolveTypeResult(typeRef, GetPrimitiveType(BfTypeCode_Var), populateType, resolveFlags);
}
auto resolvedType = ResolveInnerType(leftType, qualifiedTypeRef->mRight, populateType, false, numGenericArgs); auto resolvedType = ResolveInnerType(leftType, qualifiedTypeRef->mRight, populateType, false, numGenericArgs);
if ((resolvedType != NULL) && (mCurTypeInstance != NULL)) if ((resolvedType != NULL) && (mCurTypeInstance != NULL))
AddDependency(leftType, mCurTypeInstance, BfDependencyMap::DependencyFlag_NameReference); AddDependency(leftType, mCurTypeInstance, BfDependencyMap::DependencyFlag_NameReference);