Test isDefinition
This commit is contained in:
parent
5a7f7469ea
commit
ac9e617e5e
|
@ -728,7 +728,7 @@ namespace FourSlash {
|
|||
}
|
||||
}
|
||||
|
||||
public verifyReferencesAtPositionListContains(fileName: string, start: number, end: number, isWriteAccess?: boolean) {
|
||||
public verifyReferencesAtPositionListContains(fileName: string, start: number, end: number, isWriteAccess?: boolean, isDefinition?: boolean) {
|
||||
const references = this.getReferencesAtCaret();
|
||||
|
||||
if (!references || references.length === 0) {
|
||||
|
@ -741,11 +741,14 @@ namespace FourSlash {
|
|||
if (typeof isWriteAccess !== "undefined" && reference.isWriteAccess !== isWriteAccess) {
|
||||
this.raiseError(`verifyReferencesAtPositionListContains failed - item isWriteAccess value does not match, actual: ${reference.isWriteAccess}, expected: ${isWriteAccess}.`);
|
||||
}
|
||||
if (typeof isDefinition !== "undefined" && reference.isDefinition !== isDefinition) {
|
||||
this.raiseError(`verifyReferencesAtPositionListContains failed - item isDefinition value does not match, actual: ${reference.isDefinition}, expected: ${isDefinition}.`);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const missingItem = { fileName: fileName, start: start, end: end, isWriteAccess: isWriteAccess };
|
||||
const missingItem = { fileName, start, end, isWriteAccess, isDefinition };
|
||||
this.raiseError(`verifyReferencesAtPositionListContains failed - could not find the item: ${stringify(missingItem)} in the returned list: (${stringify(references)})`);
|
||||
}
|
||||
|
||||
|
@ -2835,8 +2838,8 @@ namespace FourSlashInterface {
|
|||
this.state.verifyReferencesCountIs(count, /*localFilesOnly*/ false);
|
||||
}
|
||||
|
||||
public referencesAtPositionContains(range: FourSlash.Range, isWriteAccess?: boolean) {
|
||||
this.state.verifyReferencesAtPositionListContains(range.fileName, range.start, range.end, isWriteAccess);
|
||||
public referencesAtPositionContains(range: FourSlash.Range, isWriteAccess?: boolean, isDefinition?: boolean) {
|
||||
this.state.verifyReferencesAtPositionListContains(range.fileName, range.start, range.end, isWriteAccess, isDefinition);
|
||||
}
|
||||
|
||||
public signatureHelpPresent() {
|
||||
|
|
|
@ -125,7 +125,7 @@ declare namespace FourSlashInterface {
|
|||
completionListAllowsNewIdentifier(): void;
|
||||
memberListIsEmpty(): void;
|
||||
referencesCountIs(count: number): void;
|
||||
referencesAtPositionContains(range: Range, isWriteAccess?: boolean): void;
|
||||
referencesAtPositionContains(range: Range, isWriteAccess?: boolean, isDefinition?: boolean): void;
|
||||
signatureHelpPresent(): void;
|
||||
errorExistsBetweenMarkers(startMarker: string, endMarker: string): void;
|
||||
errorExistsAfterMarker(markerName?: string): void;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////var [|{| "isDefinition": true |}f|] = x => x + 1;
|
||||
////[|{| "isDefinition": false |}f|](12);
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
13
tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts
Normal file
13
tests/cases/fourslash/getOccurrencesIsDefinitionOfClass.ts
Normal file
|
@ -0,0 +1,13 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////class [|{| "isDefinition": true |}C|] {
|
||||
//// n: number;
|
||||
//// constructor() {
|
||||
//// this.n = 12;
|
||||
//// }
|
||||
////}
|
||||
////let c = new [|{| "isDefinition": false |}C|]();
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
11
tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts
Normal file
11
tests/cases/fourslash/getOccurrencesIsDefinitionOfEnum.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////enum [|{| "isDefinition": true |}E|] {
|
||||
//// First,
|
||||
//// Second
|
||||
////}
|
||||
////let first = [|{| "isDefinition": false |}E|].First;
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
|
@ -0,0 +1,9 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////function [|{| "isDefinition": true |}func|](x: number) {
|
||||
////}
|
||||
////[|{| "isDefinition": false |}func|](x)
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
|
@ -0,0 +1,10 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////interface [|{| "isDefinition": true |}I|] {
|
||||
//// p: number;
|
||||
////}
|
||||
////let i: [|{| "isDefinition": false |}I|] = { p: 12 };
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
|
@ -0,0 +1,19 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////interface [|{| "isDefinition": true |}Numbers|] {
|
||||
//// p: number;
|
||||
////}
|
||||
////interface [|{| "isDefinition": true |}Numbers|] {
|
||||
//// m: number;
|
||||
////}
|
||||
////class [|{| "isDefinition": true |}Numbers|] {
|
||||
//// f(n: number) {
|
||||
//// return this.p + this.m + n;
|
||||
//// }
|
||||
////}
|
||||
////let i: [|{| "isDefinition": false |}Numbers|] = new [|{| "isDefinition": false |}Numbers|]();
|
||||
////let x = i.f(i.p + i.m);
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
|
@ -0,0 +1,10 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////namespace [|{| "isDefinition": true |}Numbers|] {
|
||||
//// export var n = 12;
|
||||
////}
|
||||
////let x = [|{| "isDefinition": false |}Numbers|].n + 1;
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
|
@ -0,0 +1,9 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////function f([|{| "isDefinition": true |}x|]: number) {
|
||||
//// return [|{| "isDefinition": false |}x|] + 1
|
||||
////}
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
|
@ -0,0 +1,8 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////type [|{| "isDefinition": true |}Alias|]= number;
|
||||
////let n: [|{| "isDefinition": false |}Alias|] = 12;
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
|
@ -0,0 +1,23 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
////var [|{| "isDefinition": true |}x|] = 0;
|
||||
////var assignmentRightHandSide = [|{| "isDefinition": false |}x|];
|
||||
////var assignmentRightHandSide2 = 1 + [|{| "isDefinition": false |}x|];
|
||||
////
|
||||
////[|{| "isDefinition": false |}x|] = 1;
|
||||
////[|{| "isDefinition": false |}x|] = [|{| "isDefinition": false |}x|] + [|{| "isDefinition": false |}x|];
|
||||
////
|
||||
////[|{| "isDefinition": false |}x|] == 1;
|
||||
////[|{| "isDefinition": false |}x|] <= 1;
|
||||
////
|
||||
////var preIncrement = ++[|{| "isDefinition": false |}x|];
|
||||
////var postIncrement = [|{| "isDefinition": false |}x|]++;
|
||||
////var preDecrement = --[|{| "isDefinition": false |}x|];
|
||||
////var postDecrement = [|{| "isDefinition": false |}x|]--;
|
||||
////
|
||||
////[|{| "isDefinition": false |}x|] += 1;
|
||||
////[|{| "isDefinition": false |}x|] <<= 1;
|
||||
var firstRange = test.ranges()[0];
|
||||
goTo.position(firstRange.start, firstRange.fileName);
|
||||
test.ranges().forEach(range => {
|
||||
verify.referencesAtPositionContains(range, undefined, range.marker.data.isDefinition);
|
||||
});
|
Loading…
Reference in a new issue