More tests

This commit is contained in:
Sheetal Nandi 2019-06-06 09:49:31 -07:00
parent e4a2dd510f
commit 018026ad52
31 changed files with 96 additions and 97 deletions

View file

@ -4,13 +4,12 @@
////declare module "jquery";
// @Filename: user.ts
////import {[|{| "isWriteAccess": true, "isDefinition": true |}x|]} from "jquery";
////[|import {[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}x|]} from "jquery";|]
// @Filename: user2.ts
////import {[|{| "isWriteAccess": true, "isDefinition": true |}x|]} from "jquery";
////[|import {[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}x|]} from "jquery";|]
const ranges = test.ranges();
const [r0, r1] = ranges;
const [r0Def, r0, r1Def, r1] = test.ranges();
// TODO: Want these to be in the same group, but that would require creating a symbol for `x`.
verify.singleReferenceGroup("(alias) module \"jquery\"\nimport x", [r0]);
verify.singleReferenceGroup("(alias) module \"jquery\"\nimport x", [r1]);

View file

@ -7,9 +7,9 @@
////
//// }
////
//// public /**/[|{| "isWriteAccess": true, "isDefinition": true |}start|](){
//// [|public /**/[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}start|](){
//// return this;
//// }
//// }|]
////
//// public stop(){
//// return this;
@ -33,5 +33,5 @@ cancellation.resetCancelled();
checkRefs();
function checkRefs() {
verify.singleReferenceGroup("(method) Test.start(): this");
verify.singleReferenceGroup("(method) Test.start(): this", "start");
}

View file

@ -1,12 +1,12 @@
/// <reference path='fourslash.ts'/>
// @Filename: fileA.ts
//// export function [|__foo|]() {
//// }
//// [|export function [|{| "declarationRangeIndex": 0 |}__foo|]() {
//// }|]
////
// @Filename: fileB.ts
//// import { [|__foo|] as bar } from "./fileA";
//// [|import { [|{| "declarationRangeIndex": 2 |}__foo|] as bar } from "./fileA";|]
////
//// bar();
verify.rangesAreRenameLocations();
verify.rangesWithSameTextAreRenameLocations("__foo");

View file

@ -2,25 +2,25 @@
// @noImplicitReferences: true
// @Filename: /node_modules/a/index.d.ts
////import [|{| "name": "useAX", "isWriteAccess": true, "isDefinition": true |}X|] from "x";
////[|import [|{| "name": "useAX", "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}X|] from "x";|]
////export function a(x: [|X|]): void;
// @Filename: /node_modules/a/node_modules/x/index.d.ts
////export default class /*defAX*/[|{| "isWriteAccess": true, "isDefinition": true |}X|] {
////[|export default class /*defAX*/[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 3 |}X|] {
//// private x: number;
////}
////}|]
// @Filename: /node_modules/a/node_modules/x/package.json
////{ "name": "x", "version": "1.2.3" }
// @Filename: /node_modules/b/index.d.ts
////import [|{| "name": "useBX", "isWriteAccess": true, "isDefinition": true |}X|] from "x";
////[|import [|{| "name": "useBX", "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 5 |}X|] from "x";|]
////export const b: [|X|];
// @Filename: /node_modules/b/node_modules/x/index.d.ts
////export default class /*defBX*/[|{| "isWriteAccess": true, "isDefinition": true |}X|] {
////[|export default class /*defBX*/[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 8 |}X|] {
//// private x: number;
////}
////}|]
// @Filename: /node_modules/b/node_modules/x/package.json
////{ "name": "x", "version": "1.2.3" }
@ -35,7 +35,7 @@ verify.numberOfErrorsInCurrentFile(0);
verify.goToDefinition("useAX", "defAX");
verify.goToDefinition("useBX", "defAX");
const [r0, r1, r2, r3, r4, r5] = test.ranges();
const [r0Def, r0, r1, r2Def, r2, r3Def, r3, r4, r5Def, r5] = test.ranges();
const aImport = { definition: "(alias) class X\nimport X", ranges: [r0, r1] };
const def = { definition: "class X", ranges: [r2] };
const bImport = { definition: "(alias) class X\nimport X", ranges: [r3, r4] };

View file

@ -4,11 +4,11 @@
// @Filename: /abc.d.ts
////declare module "a" {
//// export const [|{| "isWriteAccess": true, "isDefinition": true |}x|]: number;
//// [|export const [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}x|]: number;|]
////}
// @Filename: /b.ts
////import a from "a";
////a.[|x|];
verify.singleReferenceGroup("const x: number");
verify.singleReferenceGroup("const x: number", "x");

View file

@ -6,10 +6,10 @@
// @Filename: /a.d.ts
////export as namespace abc;
////export const [|{| "isWriteAccess": true, "isDefinition": true |}x|]: number;
////[|export const [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}x|]: number;|]
// @Filename: /b.ts
////import a from "./a";
////a.[|x|];
verify.singleReferenceGroup('const x: number');
verify.singleReferenceGroup('const x: number', "x");

View file

@ -2,9 +2,9 @@
//// class B {}
//// function foo() {
//// return {[|{| "isWriteAccess": true, "isDefinition": true |}B|]: B};
//// return {[|[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}B|]: B|]};
//// }
//// class C extends (foo()).[|B|] {}
//// class C1 extends foo().[|B|] {}
verify.singleReferenceGroup("(property) B: typeof B");
verify.singleReferenceGroup("(property) B: typeof B", "B");

View file

@ -1,12 +1,12 @@
/// <reference path='fourslash.ts' />
// @Filename: foo.ts
//// export function [|{| "isWriteAccess": true, "isDefinition": true |}bar|]() { return "bar"; }
//// [|export function [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}bar|]() { return "bar"; }|]
//// var x = import("./foo");
//// x.then(foo => {
//// foo.[|bar|]();
//// })
verify.singleReferenceGroup("function bar(): string");
verify.rangesAreRenameLocations();
verify.singleReferenceGroup("function bar(): string", "bar");
verify.rangesWithSameTextAreRenameLocations("bar");

View file

@ -1,10 +1,10 @@
/// <reference path='fourslash.ts' />
// @Filename: foo.ts
////export function [|{| "isWriteAccess": true, "isDefinition": true |}bar|]() { return "bar"; }
////import('./foo').then(({ [|{| "isWriteAccess": true, "isDefinition": true |}bar|] }) => undefined);
////[|export function [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}bar|]() { return "bar"; }|]
////import('./foo').then(([|{ [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}bar|] }|]) => undefined);
const [r0, r1] = test.ranges();
const [r0Def, r0, r1Def, r1] = test.ranges();
verify.referenceGroups(r0, [{ definition: "function bar(): string", ranges: [r0, r1] }]);
verify.referenceGroups(r1, [
{ definition: "function bar(): string", ranges: [r0] },

View file

@ -1,8 +1,8 @@
///<reference path="fourslash.ts" />
// @allowJs: true
// @Filename: Foo.js
/////** @type {function ([|{|"isWriteAccess": true, "isDefinition": true|}new|]: string, string): string} */
/////** @type {function ([|[|{|"isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0|}new|]: string|], string): string} */
////var f;
const [a0] = test.ranges();
const [a0Def, a0] = test.ranges();
verify.singleReferenceGroup("(parameter) new: string", [a0]);

View file

@ -2,9 +2,9 @@
// @Filename: a.ts
////export class C {
//// [|constructor|](n: number);
//// [|constructor|]();
//// [|constructor|](n?: number){}
//// [|[|{| "declarationRangeIndex": 0 |}constructor|](n: number);|]
//// [|[|{| "declarationRangeIndex": 2 |}constructor|]();|]
//// [|[|{| "declarationRangeIndex": 4 |}constructor|](n?: number){}|]
//// static f() {
//// this.f();
//// new [|this|]();
@ -40,8 +40,7 @@
////new a.[|C|]();
////class d extends a.C { constructor() { [|super|](); }
const ranges = test.ranges();
const [a0, a1, a2, a3, a4, b0, c0, d0, d1] = ranges;
const [a0Def, a0, a1Def, a1, a2Def, a2, a3, a4, b0, c0, d0, d1] = test.ranges();
verify.referenceGroups([a0, a2], defs("class C"));
verify.referenceGroups(a1, defs("class C"));

View file

@ -1,8 +1,8 @@
/// <reference path="fourslash.ts" />
////class C {
//// [|constructor|](n: number);
//// [|constructor|](){}
//// [|[|{| "declarationRangeIndex": 0 |}constructor|](n: number);|]
//// [|[|{| "declarationRangeIndex": 2 |}constructor|](){}|]
////}
verify.singleReferenceGroup("class C");
verify.singleReferenceGroup("class C", "constructor");

View file

@ -5,10 +5,10 @@
// @esModuleInterop: true
// @Filename: /foo.ts
////import [|{| "isWriteAccess": true, "isDefinition": true |}settings|] from "./settings.json";
////[|import [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}settings|] from "./settings.json";|]
////[|settings|];
// @Filename: /settings.json
//// {}
verify.singleReferenceGroup("import settings");
verify.singleReferenceGroup("import settings", "settings");

View file

@ -9,12 +9,12 @@
// @Filename: /node_modules/@types/three/index.d.ts
////export * from "./three-core";
////export as namespace [|{| "isWriteAccess": true, "isDefinition": true |}THREE|];
////[|export as namespace [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}THREE|];|]
// @Filename: /typings/global.d.ts
////import * as _THREE from '[|three|]';
////declare global {
//// const [|{| "isWriteAccess": true, "isDefinition": true |}THREE|]: typeof _THREE;
//// [|const [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 3 |}THREE|]: typeof _THREE;|]
////}
// @Filename: /src/index.ts
@ -38,7 +38,8 @@
//// "files": ["/src/index.ts", "typings/global.d.ts"]
////}
const [r0Def, r0, r1, r2Def, ...rest] = test.ranges();
// GH#29533
// TODO:: this should be var THREE: typeof import instead of module name as var but thats existing issue and repros with quickInfo too.
verify.singleReferenceGroup(`module "/node_modules/@types/three/index"
var "/node_modules/@types/three/index": typeof import("/node_modules/@types/three/index")`);
var "/node_modules/@types/three/index": typeof import("/node_modules/@types/three/index")`, [r0, r1, ...rest]);

View file

@ -1,7 +1,7 @@
/// <reference path='fourslash.ts'/>
////import { [|ab|] as [|{| "isWriteAccess": true, "isDefinition": true |}cd|] } from "doesNotExist";
////[|import { [|{| "declarationRangeIndex": 0 |}ab|] as [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}cd|] } from "doesNotExist";|]
const [r0, r1] = test.ranges();
const [r0Def, r0, r1] = test.ranges();
verify.referenceGroups(r0, undefined);
verify.singleReferenceGroup("import cd", [r1]);

View file

@ -1,15 +1,15 @@
/// <reference path='fourslash.ts' />
// @Filename: /a.ts
////export = class [|{| "isWriteAccess": true, "isDefinition": true |}A|] {
////export = [|class [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}A|] {
//// m() { [|A|]; }
////};
////}|];
// @Filename: /b.ts
////import [|{| "isWriteAccess": true, "isDefinition": true |}A|] = require("./a");
////[|import [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 3 |}A|] = require("./a");|]
////[|A|];
const [r0, r1, r2, r3] = test.ranges();
const [r0Def, r0, r1, r2Def, r2, r3] = test.ranges();
const defs = { definition: "(local class) A", ranges: [r0, r1] };
const imports = { definition: '(alias) (local class) A\nimport A = require("./a")', ranges: [r2, r3] };
verify.referenceGroups([r0, r1], [defs, imports]);

View file

@ -3,13 +3,13 @@
// @allowJs: true
// @Filename: /a.js
////module.exports = class [|{| "isWriteAccess": true, "isDefinition": true |}A|] {};
////module.exports = [|class [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}A|] {}|];
// @Filename: /b.js
////import [|{| "isWriteAccess": true, "isDefinition": true |}A|] = require("./a");
////[|import [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}A|] = require("./a");|]
////[|A|];
const [r0, r1, r2] = test.ranges();
const [r0Def, r0, r1Def, r1, r2] = test.ranges();
const defs = { definition: "(local class) A", ranges: [r0] };
const imports = { definition: '(alias) (local class) A\nimport A = require("./a")', ranges: [r1, r2] };
verify.referenceGroups([r0], [defs, imports]);

View file

@ -3,13 +3,13 @@
// @allowJs: true
// @Filename: /a.js
////exports.[|{| "isWriteAccess": true, "isDefinition": true |}A|] = class {};
////[|exports.[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}A|] = class {};|]
// @Filename: /b.js
////import { [|{| "isWriteAccess": true, "isDefinition": true |}A|] } from "./a";
////[|import { [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}A|] } from "./a";|]
////[|A|];
const [r0, r1, r2] = test.ranges();
const [r0Def, r0, r1Def, r1, r2] = test.ranges();
const defs = { definition: "class A\n(property) A: typeof A", ranges: [r0] };
const imports = { definition: "(alias) class A\n(alias) (property) A: typeof A\nimport A", ranges: [r1, r2] };
verify.referenceGroups([r0], [defs, imports]);

View file

@ -1,6 +1,6 @@
/// <reference path="fourslash.ts" />
////class [|{| "isWriteAccess": true, "isDefinition": true |}C|] {
////[|class [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}C|] {
//// static s() {
//// [|this|];
//// }
@ -10,9 +10,9 @@
//// function inner() { this; }
//// class Inner { x = this; }
//// }
////}
////}|]
const [r0, r1, r2] = test.ranges();
const [r0Def, r0, r1, r2] = test.ranges();
verify.referenceGroups(r0, [{ definition: "class C", ranges: [r0, r1, r2] }]);
verify.singleReferenceGroup("this: typeof C", [r1, r2]);

View file

@ -4,11 +4,11 @@
// @Filename: /a.js
////function f() {
//// this.[|{| "isWriteAccess": true, "isDefinition": true |}x|] = 0;
//// [|this.[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}x|] = 0;|]
////}
////f.prototype.setX = function() {
//// this.[|{| "isWriteAccess": true, "isDefinition": true |}x|] = 1;
//// [|this.[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}x|] = 1;|]
////}
////f.prototype.useX = function() { this.[|x|]; }
verify.singleReferenceGroup("(property) f.x: number");
verify.singleReferenceGroup("(property) f.x: number", "x");

View file

@ -1,7 +1,7 @@
/// <reference path="fourslash.ts" />
////declare class [|{| "isWriteAccess": true, "isDefinition": true |}C|] {
////[|declare class [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}C|] {
//// static m(): void;
////}
////}|]
verify.singleReferenceGroup("class C");
verify.singleReferenceGroup("class C", "C");

View file

@ -1,12 +1,12 @@
/// <reference path="fourslash.ts" />
// @Filename: /a.ts
////export default function [|{| "isWriteAccess": true, "isDefinition": true |}a|]() {}
////[|export default function [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}a|]() {}|]
// @Filename: /b.ts
////import [|{| "isWriteAccess": true, "isDefinition": true |}a|], * as ns from "./a";
////[|import [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}a|], * as ns from "./a";|]
const [r0, r1] = test.ranges();
const [r0Def, r0, r1Def, 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]);

View file

@ -1,7 +1,7 @@
/// <reference path='fourslash.ts' />
// @Filename: /a.ts
////export [|{| "isWriteAccess": true, "isDefinition": true |}default|] function [|{| "isWriteAccess": true, "isDefinition": true |}f|]() {}
////[|export [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}default|] function [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}f|]() {}|]
// @Filename: /b.ts
////export import a = require("./a");
@ -10,10 +10,10 @@
////import { a } from "./b";
////a.[|default|]();
////
////declare const x: { [|{| "isWriteAccess": true, "isDefinition": true |}default|]: number };
////declare const x: { [|[|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 4 |}default|]: number|] };
////x.[|default|];
const [r0, r1, r2, r3, r4] = test.ranges();
const [r0Def, r0, r1, r2, r3Def, r3, r4] = test.ranges();
verify.referenceGroups([r0], [{ definition: "function f(): void", ranges: [r0, r2] }]);
verify.singleReferenceGroup("function f(): void", [r1, r2]);

View file

@ -1,9 +1,9 @@
/// <reference path='fourslash.ts' />
////const [|{| "isWriteAccess": true, "isDefinition": true |}x|] = 0;
////[|const [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}x|] = 0;|]
////[|x|];
const ranges = test.ranges();
const ranges = test.rangesByText().get("x");
verify.referenceGroups(ranges, [
{
definition: { text: "const x: 0", range: ranges[0] },

View file

@ -1,12 +1,12 @@
/// <reference path='fourslash.ts' />
////interface I<T> {
//// [|{| "isDefinition": true |}x|]: boolean;
//// [|[|{| "isDefinition": true, "declarationRangeIndex": 0 |}x|]: boolean;|]
////}
////declare const i: I<number>;
////const { [|{| "isWriteAccess": true, "isDefinition": true |}x|] } = i;
////[|const { [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}x|] } = i;|]
const [r0, r1] = test.ranges();
const [r0Def, r0, r1Def, r1] = test.ranges();
verify.referenceGroups(r0, [{ definition: "(property) I<T>.x: boolean", ranges: [r0, r1] }]);
verify.referenceGroups(r1, [

View file

@ -1,14 +1,14 @@
/// <reference path="fourslash.ts" />
////class Test {
//// get [|{| "isDefinition": true, "isWriteAccess": true |}x|]() { return 0; }
//// [|get [|{| "isDefinition": true, "isWriteAccess": true, "declarationRangeIndex": 0 |}x|]() { return 0; }|]
////
//// set [|{| "isDefinition": true, "isWriteAccess": true |}y|](a: number) {}
//// [|set [|{| "isDefinition": true, "isWriteAccess": true, "declarationRangeIndex": 2 |}y|](a: number) {}|]
////}
////const { [|{| "isDefinition": true, "isWriteAccess": true |}x|], [|{| "isDefinition": true, "isWriteAccess": true |}y|] } = new Test();
////[|const { [|{| "isDefinition": true, "isWriteAccess": true, "declarationRangeIndex": 4 |}x|], [|{| "isDefinition": true, "isWriteAccess": true, "declarationRangeIndex": 4 |}y|] } = new Test();|]
////[|x|]; [|y|];
const [x0, y0, x1, y1, x2, y2] = test.ranges();
const [x0Def, x0, y0Def, y0, xy1Def, x1, y1, x2, y2] = test.ranges();
verify.referenceGroups(x0, [{ definition: "(property) Test.x: number", ranges: [x0, x1] }]);
verify.referenceGroups(x1, [
{ definition: "(property) Test.x: number", ranges: [x0] },

View file

@ -4,13 +4,13 @@
// @Filename: /a.ts
////class C {
//// get [|{| "isWriteAccess": true, "isDefinition": true |}g|](): number { return 0; }
//// [|get [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}g|](): number { return 0; }|]
////
//// set [|{| "isWriteAccess": true, "isDefinition": true |}s|](value: number) {}
//// [|set [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 2 |}s|](value: number) {}|]
////}
////const { [|{| "isWriteAccess": true, "isDefinition": true |}g|], [|{| "isWriteAccess": true, "isDefinition": true |}s|] } = new C();
////[|const { [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 4 |}g|], [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 4 |}s|] } = new C();|]
const [g0, s0, g1, s1] = test.ranges();
const [g0Def, g0, s0Def, s0, gs1Def, g1, s1] = test.ranges();
verify.quickInfoAt(g0, "(property) C.g: number");
verify.referenceGroups(g0, [{ definition: "(property) C.g: number", ranges: [g0, g1] }]);
verify.referenceGroups(g1, [

View file

@ -7,9 +7,9 @@
////
//// }
////
//// public [|{| "isWriteAccess": true, "isDefinition": true |}start|](){
//// [|public [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}start|](){
//// return this;
//// }
//// }|]
////
//// public stop(){
//// return this;
@ -23,4 +23,4 @@
////second.[|start|]();
////second.stop();
verify.singleReferenceGroup("(method) Test.start(): this");
verify.singleReferenceGroup("(method) Test.start(): this", "start");

View file

@ -2,9 +2,9 @@
///////<reference path="./Bar.ts" />
////function [|Bar|]() {
////[|function [|{| "declarationRangeIndex": 0 |}Bar|]() {
//// // This is a reference to Bar in a comment.
//// "this is a reference to Bar in a string"
////}
////}|]
verify.rangesAreRenameLocations();
verify.rangesWithSameTextAreRenameLocations("Bar");

View file

@ -7,9 +7,9 @@
////
//// }
////
//// public [|{| "isWriteAccess": true, "isDefinition": true |}start|](){
//// [|public [|{| "isWriteAccess": true, "isDefinition": true, "declarationRangeIndex": 0 |}start|](){
//// return this;
//// }
//// }|]
////
//// public stop(){
//// return this;
@ -23,4 +23,4 @@
////second.[|start|]();
////second.stop();
verify.singleReferenceGroup("(method) Test.start(): this");
verify.singleReferenceGroup("(method) Test.start(): this", "start");

View file

@ -2,9 +2,9 @@
///////<reference path="./Bar.ts" />
////function [|Bar|]() {
////[|function [|{| "declarationRangeIndex": 0 |}Bar|]() {
//// // This is a reference to Bar in a comment.
//// "this is a reference to Bar in a string"
////}
////}|]
verify.rangesAreRenameLocations();
verify.rangesWithSameTextAreRenameLocations("Bar");