mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 03:52:19 +02:00
Fixed renaming of namespaces
This commit is contained in:
parent
d205ef68a3
commit
569d121c14
3 changed files with 14 additions and 4 deletions
|
@ -3275,7 +3275,7 @@ void BfAutoComplete::FixitAddNamespace(BfAstNode* refNode, const StringImpl& nam
|
||||||
usingFinder.mLastIdx, namespaceStr.c_str()).c_str()));
|
usingFinder.mLastIdx, namespaceStr.c_str()).c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void BfAutoComplete::FixitCheckNamespace(BfTypeDef* activeTypeDef, BfTypeReference* typeRef, BfTokenNode* nextDotToken)
|
void BfAutoComplete::FixitCheckNamespace(BfTypeDef* activeTypeDef, BfAstNode* typeRef, BfTokenNode* nextDotToken)
|
||||||
{
|
{
|
||||||
if (nextDotToken == NULL)
|
if (nextDotToken == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -257,7 +257,7 @@ public:
|
||||||
void FixitAddCase(BfTypeInstance * typeInst, const StringImpl & caseName, const BfTypeVector & fieldTypes);
|
void FixitAddCase(BfTypeInstance * typeInst, const StringImpl & caseName, const BfTypeVector & fieldTypes);
|
||||||
void FixitAddMethod(BfTypeInstance* typeInst, const StringImpl& methodName, BfType* returnType, const BfTypeVector& paramTypes, bool wantStatic);
|
void FixitAddMethod(BfTypeInstance* typeInst, const StringImpl& methodName, BfType* returnType, const BfTypeVector& paramTypes, bool wantStatic);
|
||||||
void FixitAddNamespace(BfAstNode* refNode, const StringImpl& namespacStr);
|
void FixitAddNamespace(BfAstNode* refNode, const StringImpl& namespacStr);
|
||||||
void FixitCheckNamespace(BfTypeDef* activeTypeDef, BfTypeReference* typeRef, BfTokenNode* nextDotToken);
|
void FixitCheckNamespace(BfTypeDef* activeTypeDef, BfAstNode* typeRef, BfTokenNode* nextDotToken);
|
||||||
|
|
||||||
void SetResultStringType(BfType* type);
|
void SetResultStringType(BfType* type);
|
||||||
};
|
};
|
||||||
|
|
|
@ -6759,7 +6759,7 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy
|
||||||
|
|
||||||
while (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(checkTypeRef))
|
while (auto qualifiedTypeRef = BfNodeDynCast<BfQualifiedTypeReference>(checkTypeRef))
|
||||||
{
|
{
|
||||||
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (resolvedTypeRef->IsObjectOrInterface()))
|
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (checkTypeRef == typeRef) && (resolvedTypeRef->IsObjectOrInterface()))
|
||||||
mCompiler->mResolvePassData->mSourceClassifier->SetElementType(qualifiedTypeRef->mRight, resolvedTypeRef->IsInterface() ? BfSourceElementType_Interface : BfSourceElementType_RefType);
|
mCompiler->mResolvePassData->mSourceClassifier->SetElementType(qualifiedTypeRef->mRight, resolvedTypeRef->IsInterface() ? BfSourceElementType_Interface : BfSourceElementType_RefType);
|
||||||
|
|
||||||
StringView leftString = qualifiedTypeRef->mLeft->ToStringView();
|
StringView leftString = qualifiedTypeRef->mLeft->ToStringView();
|
||||||
|
@ -6792,7 +6792,7 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy
|
||||||
auto checkNameNode = namedTypeRef->mNameNode;
|
auto checkNameNode = namedTypeRef->mNameNode;
|
||||||
bool setType = false;
|
bool setType = false;
|
||||||
|
|
||||||
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (resolvedTypeRef->IsObjectOrInterface()))
|
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (checkTypeRef == typeRef) && (resolvedTypeRef->IsObjectOrInterface()))
|
||||||
{
|
{
|
||||||
if (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(checkNameNode))
|
if (auto qualifiedNameNode = BfNodeDynCast<BfQualifiedNameNode>(checkNameNode))
|
||||||
{
|
{
|
||||||
|
@ -6818,7 +6818,17 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy
|
||||||
isNamespace = true;
|
isNamespace = true;
|
||||||
}
|
}
|
||||||
else if ((isValid) && (resolvedTypeInstance->mTypeDef->mNamespace.EndsWith(leftComposite)))
|
else if ((isValid) && (resolvedTypeInstance->mTypeDef->mNamespace.EndsWith(leftComposite)))
|
||||||
|
{
|
||||||
|
if (autoComplete != NULL)
|
||||||
|
{
|
||||||
|
if (autoComplete->CheckFixit(typeRef))
|
||||||
|
autoComplete->FixitCheckNamespace(GetActiveTypeDef(), qualifiedNameNode->mLeft, qualifiedNameNode->mDot);
|
||||||
|
autoComplete->CheckNamespace(qualifiedNameNode->mLeft, resolvedTypeInstance->mTypeDef->mNamespace);
|
||||||
|
}
|
||||||
|
mCompiler->mResolvePassData->HandleNamespaceReference(qualifiedNameNode->mLeft, resolvedTypeInstance->mTypeDef->mNamespace);
|
||||||
|
|
||||||
isNamespace = true;
|
isNamespace = true;
|
||||||
|
}
|
||||||
checkNameNode = qualifiedNameNode->mLeft;
|
checkNameNode = qualifiedNameNode->mLeft;
|
||||||
}
|
}
|
||||||
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) &&
|
if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) &&
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue