1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 22:34:09 +02:00

Fixed some Go To Definition issues

This commit is contained in:
Brian Fiete 2020-06-14 06:39:29 -07:00
parent f56667ff61
commit 71c020c4a1
2 changed files with 9 additions and 7 deletions

View file

@ -2444,9 +2444,9 @@ void BfAutoComplete::CheckLocalRef(BfAstNode* identifierNode, BfLocalVariable* v
if (IsAutocompleteNode(identifierNode)) if (IsAutocompleteNode(identifierNode))
{ {
if (varDecl->mNameNode != NULL) if (varDecl->mNameNode != NULL)
SetDefinitionLocation(varDecl->mNameNode); SetDefinitionLocation(varDecl->mNameNode, true);
else if (varDecl->mIsThis) else if (varDecl->mIsThis)
SetDefinitionLocation(mModule->mCurTypeInstance->mTypeDef->GetRefNode()); SetDefinitionLocation(mModule->mCurTypeInstance->mTypeDef->GetRefNode(), true);
} }
} }
else if (mResolveType == BfResolveType_GetSymbolInfo) else if (mResolveType == BfResolveType_GetSymbolInfo)

View file

@ -4093,6 +4093,8 @@ BfTypedValue BfExprEvaluator::LookupField(BfAstNode* targetSrc, BfTypedValue tar
resolvePassData->HandlePropertyReference(targetSrc, baseTypeInst->mTypeDef, basePropDef); resolvePassData->HandlePropertyReference(targetSrc, baseTypeInst->mTypeDef, basePropDef);
if ((autoComplete != NULL) && (autoComplete->IsAutocompleteNode(targetSrc))) if ((autoComplete != NULL) && (autoComplete->IsAutocompleteNode(targetSrc)))
{ {
if (autoComplete->mIsGetDefinition)
autoComplete->SetDefinitionLocation(basePropDef->GetRefNode(), true);
autoComplete->mDefProp = basePropDef; autoComplete->mDefProp = basePropDef;
autoComplete->mDefType = baseTypeInst->mTypeDef; autoComplete->mDefType = baseTypeInst->mTypeDef;
} }
@ -6768,7 +6770,7 @@ BfTypedValue BfExprEvaluator::MatchMethod(BfAstNode* targetSrc, BfMethodBoundExp
auto autoComplete = GetAutoComplete(); auto autoComplete = GetAutoComplete();
if ((autoComplete != NULL) && (autoComplete->IsAutocompleteNode(identifierNode))) if ((autoComplete != NULL) && (autoComplete->IsAutocompleteNode(identifierNode)))
{ {
autoComplete->SetDefinitionLocation(methodDef->GetRefNode()); autoComplete->SetDefinitionLocation(methodDef->GetRefNode(), true);
if (autoComplete->mDefType == NULL) if (autoComplete->mDefType == NULL)
{ {
autoComplete->mDefMethod = mModule->mCurMethodState->GetRootMethodState()->mMethodInstance->mMethodDef; autoComplete->mDefMethod = mModule->mCurMethodState->GetRootMethodState()->mMethodInstance->mMethodDef;
@ -7498,7 +7500,7 @@ BfTypedValue BfExprEvaluator::MatchMethod(BfAstNode* targetSrc, BfMethodBoundExp
auto autoComplete = GetAutoComplete(); auto autoComplete = GetAutoComplete();
if ((autoComplete != NULL) && (autoComplete->IsAutocompleteNode(identifierNode))) if ((autoComplete != NULL) && (autoComplete->IsAutocompleteNode(identifierNode)))
{ {
autoComplete->SetDefinitionLocation(methodDef->GetRefNode()); autoComplete->SetDefinitionLocation(methodDef->GetRefNode(), true);
int virtualIdx = moduleMethodInstance.mMethodInstance->mVirtualTableIdx; int virtualIdx = moduleMethodInstance.mMethodInstance->mVirtualTableIdx;
if ((autoComplete->mResolveType == BfResolveType_GoToDefinition) && if ((autoComplete->mResolveType == BfResolveType_GoToDefinition) &&