From 6104a5cccbd36f4a96eae1d06b4cf79ecf2a596f Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Mon, 14 Mar 2022 16:02:42 -0700 Subject: [PATCH] Fix tests --- src/server/session.ts | 7 ++++--- tests/cases/fourslash/fourslash.ts | 2 +- .../fourslash/server/goToSource10_mapFromAtTypes3.ts | 6 +++--- .../fourslash/server/goToSource4_sameAsGoToDef1.ts | 8 -------- ...sameAsGoToDef2.ts => goToSource5_sameAsGoToDef1.ts} | 0 ...sameAsGoToDef3.ts => goToSource6_sameAsGoToDef2.ts} | 0 .../fourslash/server/goToSource9_mapFromAtTypes2.ts | 10 +++++----- 7 files changed, 13 insertions(+), 20 deletions(-) delete mode 100644 tests/cases/fourslash/server/goToSource4_sameAsGoToDef1.ts rename tests/cases/fourslash/server/{goToSource5_sameAsGoToDef2.ts => goToSource5_sameAsGoToDef1.ts} (100%) rename tests/cases/fourslash/server/{goToSource6_sameAsGoToDef3.ts => goToSource6_sameAsGoToDef2.ts} (100%) diff --git a/src/server/session.ts b/src/server/session.ts index 133961ba351..9f4cad83e66 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1319,11 +1319,12 @@ namespace ts.server { } const auxiliaryProgram = auxiliaryProject.getLanguageService().getProgram()!; const fileToSearch = Debug.checkDefined(auxiliaryProgram.getSourceFile(fileNameToSearch!)); - const matches = FindAllReferences.Core.getTopMostDeclarationsInFile(candidate.name, fileToSearch); + const matches = FindAllReferences.Core.getTopMostDeclarationNamesInFile(candidate.name, fileToSearch); for (const match of matches) { const symbol = match.symbol || auxiliaryProgram.getTypeChecker().getSymbolAtLocation(match); - if (symbol) { - pushIfUnique(definitions, GoToDefinition.createDefinitionInfo(match, auxiliaryProgram.getTypeChecker(), symbol, match)); + const decl = getDeclarationFromName(match); + if (symbol && decl) { + pushIfUnique(definitions, GoToDefinition.createDefinitionInfo(decl, auxiliaryProgram.getTypeChecker(), symbol, match)); } } } diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 8990c6615a2..ba1163683d9 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -317,7 +317,7 @@ declare namespace FourSlashInterface { goToDefinition(startsAndEnds: { [startMarkerName: string]: ArrayOrSingle }): void; /** Verifies goToDefinition for each `${markerName}Reference` -> `${markerName}Definition` */ goToDefinitionForMarkers(...markerNames: string[]): void; - goToSourceDefinition(startMarkerNames: ArrayOrSingle, fileResult: { file: string }): void; + goToSourceDefinition(startMarkerNames: ArrayOrSingle, fileResult: { file: string, unverified?: boolean }): void; goToSourceDefinition(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle): void; goToType(startsAndEnds: { [startMarkerName: string]: ArrayOrSingle }): void; goToType(startMarkerNames: ArrayOrSingle, endMarkerNames: ArrayOrSingle): void; diff --git a/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts b/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts index be26ec1da25..b7adebebd3f 100644 --- a/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts +++ b/tests/cases/fourslash/server/goToSource10_mapFromAtTypes3.ts @@ -22,12 +22,12 @@ //// * _.add(6, 4); //// * // => 10 //// */ -//// var [|add|] = createMathOperation(function(augend, addend) { +//// var [|/*variable*/add|] = createMathOperation(function(augend, addend) { //// return augend + addend; //// }, 0); //// //// function lodash(value) {} -//// lodash.[|add|] = add; +//// lodash.[|/*property*/add|] = add; //// //// /** Detect free variable `global` from Node.js. */ //// var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; @@ -66,4 +66,4 @@ // @Filename: /index.ts //// import { /*start*/add } from 'lodash'; -verify.allRangesAppearInImplementationList("start"); +verify.goToSourceDefinition("start", ["variable", "property"]); diff --git a/tests/cases/fourslash/server/goToSource4_sameAsGoToDef1.ts b/tests/cases/fourslash/server/goToSource4_sameAsGoToDef1.ts deleted file mode 100644 index dc8f9a47abc..00000000000 --- a/tests/cases/fourslash/server/goToSource4_sameAsGoToDef1.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -// @Filename: /index.ts -//// import { a/*end*/ } from "./a"; -//// [|a/*start*/|] - -verify.goToDefinition("start", "end"); -verify.goToSourceDefinition("start", "end"); diff --git a/tests/cases/fourslash/server/goToSource5_sameAsGoToDef2.ts b/tests/cases/fourslash/server/goToSource5_sameAsGoToDef1.ts similarity index 100% rename from tests/cases/fourslash/server/goToSource5_sameAsGoToDef2.ts rename to tests/cases/fourslash/server/goToSource5_sameAsGoToDef1.ts diff --git a/tests/cases/fourslash/server/goToSource6_sameAsGoToDef3.ts b/tests/cases/fourslash/server/goToSource6_sameAsGoToDef2.ts similarity index 100% rename from tests/cases/fourslash/server/goToSource6_sameAsGoToDef3.ts rename to tests/cases/fourslash/server/goToSource6_sameAsGoToDef2.ts diff --git a/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts b/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts index 24da3624397..0c68d4922f2 100644 --- a/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts +++ b/tests/cases/fourslash/server/goToSource9_mapFromAtTypes2.ts @@ -6,7 +6,7 @@ //// { "name": "lodash", "version": "4.17.15", "main": "./lodash.js" } // @Filename: /node_modules/lodash/lodash.js -//// [||];(function() { +//// ;(function() { //// /** //// * Adds two numbers. //// * @@ -72,8 +72,8 @@ //// } // @Filename: /index.ts -//// import /*defaultImport*/_, { /*unresolvableNamedImport*/foo } from /*moduleSpecifier*/'lodash'; +//// import [|/*defaultImport*/_|], { [|/*unresolvableNamedImport*/foo|] } from [|/*moduleSpecifier*/'lodash'|]; -verify.allRangesAppearInImplementationList("defaultImport"); -verify.allRangesAppearInImplementationList("unresolvableNamedImport"); -verify.allRangesAppearInImplementationList("moduleSpecifier"); +verify.goToSourceDefinition("defaultImport", { file: "/node_modules/lodash/lodash.js", unverified: true }); +verify.goToSourceDefinition("unresolvableNamedImport", { file: "/node_modules/lodash/lodash.js", unverified: true }); +verify.goToSourceDefinition("moduleSpecifier", { file: "/node_modules/lodash/lodash.js", unverified: true });