MCPcopy Create free account
hub / github.com/beefytech/Beef / HandleNamespaceReference

Method HandleNamespaceReference

IDEHelper/Compiler/BfResolvePass.cpp:172–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172void BfResolvePassData::HandleNamespaceReference(BfAstNode* node, const BfAtomComposite& namespaceName)
173{
174 if ((mGetSymbolReferenceKind == BfGetSymbolReferenceKind_Namespace) && (namespaceName.StartsWith(mSymbolReferenceNamespace)))
175 {
176 BfAstNode* recordNode = node;
177
178 int leftCount = namespaceName.mSize - mSymbolReferenceNamespace.mSize;
179 for (int i = 0; i < leftCount; i++)
180 {
181 if (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(recordNode))
182 {
183 recordNode = qualifiedTypeRef->mLeft;
184 }
185 else if (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(recordNode))
186 {
187 recordNode = qualifiedNameNode->mLeft;
188 }
189 else
190 return;
191 }
192
193 auto baseNode = FindBaseNode(recordNode);
194 if (baseNode != NULL)
195 RecordReplaceNode(baseNode);
196 }
197}
198
199BfSourceClassifier* BfResolvePassData::GetSourceClassifier(BfAstNode* astNode)
200{

Callers 2

ResolveTypeResultMethod · 0.80
VisitMethod · 0.80

Calls 1

StartsWithMethod · 0.45

Tested by

no test coverage detected