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

Fixed colorization of unqualified property access (ie: implicit 'this')

This commit is contained in:
Brian Fiete 2025-02-02 08:44:48 -08:00
parent 729ca1e8c4
commit dfdbe7440f
3 changed files with 13 additions and 3 deletions

View file

@ -4770,7 +4770,7 @@ BfTypedValue BfExprEvaluator::LookupIdentifier(BfAstNode* refNode, const StringI
result = LookupField(identifierNode, thisValue, findName);
if ((result) || (mPropDef != NULL))
{
mModule->SetElementType(identifierNode, BfSourceElementType_Member);
mModule->SetHighestElementType(identifierNode, BfSourceElementType_Member);
return result;
}
}
@ -4785,7 +4785,7 @@ BfTypedValue BfExprEvaluator::LookupIdentifier(BfAstNode* refNode, const StringI
result = LookupField(identifierNode, thisValue, findName);
if ((result) || (mPropDef != NULL))
{
mModule->SetElementType(identifierNode, BfSourceElementType_Member);
mModule->SetHighestElementType(identifierNode, BfSourceElementType_Member);
return result;
}
}
@ -4793,7 +4793,7 @@ BfTypedValue BfExprEvaluator::LookupIdentifier(BfAstNode* refNode, const StringI
}
else
{
mModule->SetElementType(identifierNode, BfSourceElementType_Member);
mModule->SetHighestElementType(identifierNode, BfSourceElementType_Member);
}
if ((!result) && (identifierNode != NULL))

View file

@ -3031,6 +3031,15 @@ void BfModule::SetElementType(BfAstNode* astNode, BfSourceElementType elementTyp
}
}
void BfModule::SetHighestElementType(BfAstNode* astNode, BfSourceElementType elementType)
{
if (mCompiler->mResolvePassData != NULL)
{
if (auto sourceClassifier = mCompiler->mResolvePassData->GetSourceClassifier(astNode))
sourceClassifier->SetHighestElementType(astNode, elementType);
}
}
bool BfModule::PreFail()
{
if (!mIgnoreErrors)

View file

@ -1624,6 +1624,7 @@ public:
void GetAccessAllowed(BfTypeInstance* checkType, bool& allowProtected, bool& allowPrivate);
bool CheckProtection(BfProtectionCheckFlags& flags, BfTypeInstance* memberOwner, BfProject* memberProject, BfProtection memberProtection, BfTypeInstance* lookupStartType);
void SetElementType(BfAstNode* astNode, BfSourceElementType elementType);
void SetHighestElementType(BfAstNode* astNode, BfSourceElementType elementType);
bool PreFail();
void SetFail();
void VerifyOnDemandMethods();