1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +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); result = LookupField(identifierNode, thisValue, findName);
if ((result) || (mPropDef != NULL)) if ((result) || (mPropDef != NULL))
{ {
mModule->SetElementType(identifierNode, BfSourceElementType_Member); mModule->SetHighestElementType(identifierNode, BfSourceElementType_Member);
return result; return result;
} }
} }
@ -4785,7 +4785,7 @@ BfTypedValue BfExprEvaluator::LookupIdentifier(BfAstNode* refNode, const StringI
result = LookupField(identifierNode, thisValue, findName); result = LookupField(identifierNode, thisValue, findName);
if ((result) || (mPropDef != NULL)) if ((result) || (mPropDef != NULL))
{ {
mModule->SetElementType(identifierNode, BfSourceElementType_Member); mModule->SetHighestElementType(identifierNode, BfSourceElementType_Member);
return result; return result;
} }
} }
@ -4793,7 +4793,7 @@ BfTypedValue BfExprEvaluator::LookupIdentifier(BfAstNode* refNode, const StringI
} }
else else
{ {
mModule->SetElementType(identifierNode, BfSourceElementType_Member); mModule->SetHighestElementType(identifierNode, BfSourceElementType_Member);
} }
if ((!result) && (identifierNode != NULL)) 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() bool BfModule::PreFail()
{ {
if (!mIgnoreErrors) if (!mIgnoreErrors)

View file

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