Fix bug in importTracker: default and namespace imports are not exclusive (#24965)

This commit is contained in:
Andy
2018-06-15 12:15:39 -07:00
committed by GitHub
parent 581d2e8e96
commit e7e69ad4a2
3 changed files with 46 additions and 39 deletions

View File

@@ -0,0 +1,13 @@
/// <reference path="fourslash.ts" />
// @Filename: /a.ts
////export default function [|{| "isWriteAccess": true, "isDefinition": true |}a|]() {}
// @Filename: /b.ts
////import [|{| "isWriteAccess": true, "isDefinition": true |}a|], * as ns from "./a";
const [r0, r1] = test.ranges();
const a: FourSlashInterface.ReferenceGroup = { definition: "function a(): void", ranges: [r0] };
const b: FourSlashInterface.ReferenceGroup = { definition: "(alias) function a(): void\nimport a", ranges: [r1] };
verify.referenceGroups(r0, [a, b]);
verify.referenceGroups(r1, [b, a]);

View File

@@ -255,7 +255,7 @@ declare namespace FourSlashInterface {
* For each of starts, asserts the ranges that are referenced from there.
* This uses the 'findReferences' command instead of 'getReferencesAtPosition', so references are grouped by their definition.
*/
referenceGroups(starts: ArrayOrSingle<string> | ArrayOrSingle<Range>, parts: Array<{ definition: ReferencesDefinition, ranges: Range[] }>): void;
referenceGroups(starts: ArrayOrSingle<string> | ArrayOrSingle<Range>, parts: Array<FourSlashInterface.ReferenceGroup>): void;
singleReferenceGroup(definition: ReferencesDefinition, ranges?: Range[]): void;
rangesAreOccurrences(isWriteAccess?: boolean): void;
rangesWithSameTextAreRenameLocations(): void;
@@ -511,6 +511,10 @@ declare namespace FourSlashInterface {
text: string;
range: Range;
}
interface ReferenceGroup {
readonly definition: ReferencesDefinition;
readonly ranges: ReadonlyArray<Range>;
}
interface Diagnostic {
message: string;
/** @default `test.ranges()[0]` */