1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Fixed Self renaming issue

This commit is contained in:
Brian Fiete 2024-10-30 13:31:16 -04:00
parent 2c630a5ba9
commit 6c66d27ff4
5 changed files with 47 additions and 20 deletions

View file

@ -4666,10 +4666,12 @@ void BfCompiler::ProcessAutocompleteTempType()
if ((typeInst->IsUnspecializedType()) || (!typeInst->IsGenericTypeInstance()))
{
auto autoComplete = mResolvePassData->mAutoComplete;
if (autoComplete->IsAutocompleteNode(tempTypeDef->mTypeDeclaration->mNameNode))
{
BfIdentifierNode* nameNode;
nameNode = tempTypeDef->mTypeDeclaration->mNameNode;
BfAstNode* nameNode = tempTypeDef->mTypeDeclaration->mNameNode;
BfAstNode* refNode = nameNode;
if (refNode == NULL)
refNode = tempTypeDef->mTypeDeclaration->mStaticSpecifier;
if (autoComplete->IsAutocompleteNode(refNode))
{
if ((actualTypeDef->mIsCombinedPartial) && (tempTypeDef->mTypeCode == BfTypeCode_Extension))
{
autoComplete->AddTopLevelNamespaces(tempTypeDef->mTypeDeclaration->mNameNode);
@ -4677,15 +4679,19 @@ void BfCompiler::ProcessAutocompleteTempType()
autoComplete->SetDefinitionLocation(actualTypeDef->mTypeDeclaration->mNameNode);
}
else
autoComplete->SetDefinitionLocation(nameNode);
autoComplete->SetDefinitionLocation(refNode);
autoComplete->mDefType = actualTypeDef;
autoComplete->mInsertStartIdx = nameNode->GetSrcStart();
autoComplete->mInsertEndIdx = nameNode->GetSrcEnd();
if (nameNode != NULL)
{
autoComplete->mInsertStartIdx = nameNode->GetSrcStart();
autoComplete->mInsertEndIdx = nameNode->GetSrcEnd();
}
if (autoComplete->mResolveType == BfResolveType_GetResultString)
{
autoComplete->mResultString = ":";
autoComplete->mResultString += module->TypeToString(typeInst, (BfTypeNameFlags)(BfTypeNameFlag_ExtendedInfo | BfTypeNameFlag_ResolveGenericParamNames));
autoComplete->mResultString += module->TypeToString(typeInst, (BfTypeNameFlags)(BfTypeNameFlag_ExtendedInfo | BfTypeNameFlag_ResolveGenericParamNames));
}
}
}