| 170 | } |
| 171 | |
| 172 | void 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 | |
| 199 | BfSourceClassifier* BfResolvePassData::GetSourceClassifier(BfAstNode* astNode) |
| 200 | { |
no test coverage detected