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

Fixed generic type colorization

This commit is contained in:
Brian Fiete 2020-09-19 10:15:21 -07:00
parent 7f9e0c4f5b
commit 0794ed8592

View file

@ -6863,6 +6863,9 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy
bool isNamespace = false;
auto checkTypeRef = typeRef;
if (auto genericTypeRef = BfNodeDynCast<BfGenericInstanceTypeRef>(checkTypeRef))
checkTypeRef = genericTypeRef->mElementType;
auto headTypeRef = checkTypeRef;
if (auto elementedTypeRef = BfNodeDynCast<BfElementedTypeRef>(checkTypeRef))
checkTypeRef = elementedTypeRef->mElementType;
@ -6881,7 +6884,7 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy
while (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(checkTypeRef))
{
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (checkTypeRef == typeRef) && (resolvedTypeRef->IsObjectOrInterface()))
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (checkTypeRef == headTypeRef) && (resolvedTypeRef->IsObjectOrInterface()))
mCompiler->mResolvePassData->mSourceClassifier->SetElementType(qualifiedTypeRef->mRight, resolvedTypeRef->IsInterface() ? BfSourceElementType_Interface : BfSourceElementType_RefType);
StringView leftString = qualifiedTypeRef->mLeft->ToStringView();
@ -6914,7 +6917,7 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy
auto checkNameNode = namedTypeRef->mNameNode;
bool setType = false;
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (checkTypeRef == typeRef) && (resolvedTypeRef->IsObjectOrInterface()))
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (checkTypeRef == headTypeRef) && (resolvedTypeRef->IsObjectOrInterface()))
{
if (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(checkNameNode))
{