From 681f815cd7b724d52732d84fae7a3eaa206b10e2 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 30 Dec 2021 11:28:05 -0500 Subject: [PATCH] Allow unconstrained 'T.InnerType' lookup for 'var' constraints --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 1f42fed5..f45730a2 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -9939,6 +9939,13 @@ BfType* BfModule::ResolveTypeRef(BfTypeReference* typeRef, BfPopulateType popula 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); if ((resolvedType != NULL) && (mCurTypeInstance != NULL)) AddDependency(leftType, mCurTypeInstance, BfDependencyMap::DependencyFlag_NameReference);