| 3367 | } |
| 3368 | |
| 3369 | void 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 | |
| 3408 | void BfAutoComplete::AddTypeInstanceEntry(BfTypeInstance* typeInst) |
| 3409 | { |
no test coverage detected