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

Method CheckNamespace

IDEHelper/Compiler/BfAutoComplete.cpp:3369–3406  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3367}
3368
3369void BfAutoComplete::CheckNamespace(BfAstNode* node, const BfAtomComposite& namespaceName)
3370{
3371 if (mResolveType == BfResolveType_GetSymbolInfo)
3372 {
3373 if (IsAutocompleteNode(node))
3374 {
3375 int namespaceCount = namespaceName.mSize;
3376 auto checkNode = node;
3377
3378 while (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(checkNode))
3379 {
3380 if (!IsAutocompleteNode(qualifiedTypeRef->mLeft))
3381 break;
3382 namespaceCount--;
3383 checkNode = qualifiedTypeRef->mLeft;
3384 }
3385 while (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(checkNode))
3386 {
3387 if (!IsAutocompleteNode(qualifiedNameNode->mLeft))
3388 break;
3389 namespaceCount--;
3390 checkNode = qualifiedNameNode->mLeft;
3391 }
3392
3393 while (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(checkNode))
3394 checkNode = qualifiedTypeRef->mRight;
3395 while (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(checkNode))
3396 checkNode = qualifiedNameNode->mRight;
3397
3398 if (checkNode != NULL)
3399 {
3400 mInsertStartIdx = checkNode->GetSrcStart();
3401 mInsertEndIdx = checkNode->GetSrcEnd();
3402 mDefNamespace.Set(namespaceName.mParts, namespaceCount, NULL, 0);
3403 }
3404 }
3405 }
3406}
3407
3408void BfAutoComplete::AddTypeInstanceEntry(BfTypeInstance* typeInst)
3409{

Callers 2

ResolveTypeResultMethod · 0.80
VisitMethod · 0.80

Calls 3

GetSrcStartMethod · 0.45
GetSrcEndMethod · 0.45
SetMethod · 0.45

Tested by

no test coverage detected