TypeScript/tests/cases/fourslash/transitiveExportImports2.ts
Andy da37457c72
When renaming an imported symbol, rename only in current file (#28406)
* When renaming an imported symbol, rename only in current file

* Improve re-export references

* Remember to use 'range' in for loop

* Uncomment tests
2018-11-14 09:09:00 -08:00

32 lines
1.1 KiB
TypeScript

/// <reference path='fourslash.ts'/>
// @Filename: a.ts
////namespace [|{| "isWriteAccess": true, "isDefinition": true |}A|] {
//// export const x = 0;
////}
// @Filename: b.ts
////export import [|{| "isWriteAccess": true, "isDefinition": true |}B|] = [|A|];
////[|B|].x;
// @Filename: c.ts
////import { [|{| "isWriteAccess": true, "isDefinition": true |}B|] } from "./b";
verify.noErrors();
const [A0, B0, A1, B1, B2] = test.ranges();
const aRanges = [A0, A1];
const bRanges = [B0, B1];
const cRanges = [B2];
const aGroup = { definition: "namespace A", ranges: aRanges };
const bGroup = { definition: "(alias) namespace B\nimport B = A", ranges: bRanges };
const cGroup = { definition: "(alias) namespace B\nimport B", ranges: cRanges };
verify.referenceGroups(aRanges, [aGroup, bGroup, cGroup]);
verify.referenceGroups(bRanges, [bGroup, cGroup]);
verify.referenceGroups(cRanges, [cGroup, bGroup]);
verify.rangesAreRenameLocations(aRanges);
verify.renameLocations([B0, B1], [...bRanges, ...cRanges]);
verify.renameLocations(B2, [{ range: B2, prefixText: "B as " }]);