1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Added support for global:: lookups

This commit is contained in:
Brian Fiete 2025-05-18 12:13:15 +02:00
parent ee50457885
commit 958a1630aa
13 changed files with 202 additions and 28 deletions

View file

@ -283,8 +283,10 @@ void BfSourceClassifier::Visit(BfIdentifierNode* identifier)
void BfSourceClassifier::Visit(BfQualifiedNameNode* qualifiedName)
{
Visit((BfAstNode*)qualifiedName);
VisitChild(qualifiedName->mLeft);
if (qualifiedName->IsGlobalLookup())
SetElementType(qualifiedName->mLeft, BfSourceElementType_Namespace);
VisitChild(qualifiedName->mDot);
VisitChild(qualifiedName->mRight);
if (BfNodeIsExact<BfIdentifierNode>(qualifiedName->mRight))
@ -350,6 +352,8 @@ void BfSourceClassifier::Visit(BfQualifiedTypeReference* qualifiedType)
Visit((BfAstNode*)qualifiedType);
VisitChild(qualifiedType->mLeft);
if (qualifiedType->IsGlobalLookup())
SetElementType(qualifiedType->mLeft, BfSourceElementType_Namespace);
VisitChild(qualifiedType->mDot);
VisitChild(qualifiedType->mRight);
}
@ -495,6 +499,8 @@ void BfSourceClassifier::Visit(BfInvocationExpression* invocationExpr)
if (auto qualifiedName = BfNodeDynCast<BfQualifiedNameNode>(target))
{
VisitChild(qualifiedName->mLeft);
if (qualifiedName->IsGlobalLookup())
SetElementType(qualifiedName->mLeft, BfSourceElementType_Namespace);
VisitChild(qualifiedName->mDot);
VisitChild(qualifiedName->mRight);
identifier = qualifiedName->mRight;