Skip to content

Commit 1de5ea8

Browse files
committed
Respond to code review comments
1 parent b6905af commit 1de5ea8

File tree

6 files changed

+66
-8
lines changed

6 files changed

+66
-8
lines changed

src/harness/fourslash.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,7 +1573,8 @@ module FourSlash {
15731573
public goToTypeDefinition(definitionIndex: number) {
15741574
if (definitionIndex === 0) {
15751575
this.scenarioActions.push('<GoToTypeDefinition />');
1576-
} else {
1576+
}
1577+
else {
15771578
this.taoInvalidReason = 'GoToTypeDefinition not supported for non-zero definition indices';
15781579
}
15791580

@@ -1610,8 +1611,18 @@ module FourSlash {
16101611
var assertFn = negative ? assert.notEqual : assert.equal;
16111612

16121613
var definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition);
1614+
var actualCount = definitions && definitions.length || 0;
1615+
1616+
assertFn(actualCount, expectedCount, this.messageAtLastKnownMarker("Definitions Count"));
1617+
}
1618+
1619+
public verifyTypeDefinitionsCount(negative: boolean, expectedCount: number) {
1620+
var assertFn = negative ? assert.notEqual : assert.equal;
1621+
1622+
var definitions = this.languageService.getTypeDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition);
1623+
var actualCount = definitions && definitions.length || 0;
16131624

1614-
assertFn(definitions.length, expectedCount, this.messageAtLastKnownMarker("Definitions Count"));
1625+
assertFn(actualCount, expectedCount, this.messageAtLastKnownMarker("Type definitions Count"));
16151626
}
16161627

16171628
public verifyDefinitionsName(negative: boolean, expectedName: string, expectedContainerName: string) {

src/services/services.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3876,7 +3876,7 @@ module ts {
38763876
};
38773877
}
38783878

3879-
function getDefintionFromSymbol(symbol: Symbol, node: Node): DefinitionInfo[]{
3879+
function getDefinitionFromSymbol(symbol: Symbol, node: Node): DefinitionInfo[] {
38803880
let typeChecker = program.getTypeChecker();
38813881
let result: DefinitionInfo[] = [];
38823882
let declarations = symbol.getDeclarations();
@@ -3939,7 +3939,6 @@ module ts {
39393939

39403940
return false;
39413941
}
3942-
39433942
}
39443943

39453944
/// Goto definition
@@ -4016,7 +4015,7 @@ module ts {
40164015
declaration => createDefinitionInfo(declaration, shorthandSymbolKind, shorthandSymbolName, shorthandContainerName));
40174016
}
40184017

4019-
return getDefintionFromSymbol(symbol, node);
4018+
return getDefinitionFromSymbol(symbol, node);
40204019
}
40214020

40224021
/// Goto type
@@ -4046,7 +4045,7 @@ module ts {
40464045
var result: DefinitionInfo[] = [];
40474046
forEach((<UnionType>type).types, t => {
40484047
if (t.symbol) {
4049-
result.push(...getDefintionFromSymbol(t.symbol, node));
4048+
result.push(...getDefinitionFromSymbol(t.symbol, node));
40504049
}
40514050
});
40524051
return result;
@@ -4056,7 +4055,7 @@ module ts {
40564055
return undefined;
40574056
}
40584057

4059-
return getDefintionFromSymbol(type.symbol, node);
4058+
return getDefinitionFromSymbol(type.symbol, node);
40604059
}
40614060

40624061
function getOccurrencesAtPosition(fileName: string, position: number): ReferenceEntry[] {

src/services/shims.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ module ts {
561561
return this.forwardJSONCall(
562562
"getDefinitionAtPosition('" + fileName + "', " + position + ")",
563563
() => {
564-
return this.languageService.getDefinitionAtPosition(fileName, position);
564+
return this.languageService.getTypeDefinitionAtPosition(fileName, position);
565565
});
566566
}
567567

tests/cases/fourslash/fourslash.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@ module FourSlashInterface {
238238
FourSlash.currentTestState.verifyDefinitionsCount(this.negative, expectedCount);
239239
}
240240

241+
public typeDefinitionCountIs(expectedCount: number) {
242+
FourSlash.currentTestState.verifyTypeDefinitionsCount(this.negative, expectedCount);
243+
}
244+
241245
public definitionLocationExists() {
242246
FourSlash.currentTestState.verifyDefinitionLocationExists(this.negative);
243247
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
// @Filename: goToTypeDefinitioAliases_module1.ts
4+
/////*definition*/module M {
5+
//// export var p;
6+
////}
7+
////var m: typeof M;
8+
9+
// @Filename: goToTypeDefinitioAliases_module3.ts
10+
/////*reference1*/M;
11+
/////*reference2*/m;
12+
13+
goTo.marker('reference1');
14+
goTo.type();
15+
verify.caretAtMarker('definition');
16+
17+
goTo.marker('reference2');
18+
goTo.type();
19+
verify.caretAtMarker('definition');
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
// @Filename: module1.ts
4+
////var w: {a: number};
5+
////var x = "string";
6+
////var y: number | string;
7+
////var z; // any
8+
9+
// @Filename: module2.ts
10+
////w./*reference1*/a;
11+
/////*reference2*/x;
12+
/////*reference3*/y;
13+
/////*reference4*/y;
14+
15+
goTo.marker('reference1');
16+
verify.typeDefinitionCountIs(0);
17+
18+
goTo.marker('reference1');
19+
verify.typeDefinitionCountIs(0);
20+
21+
goTo.marker('reference2');
22+
verify.typeDefinitionCountIs(0);
23+
24+
goTo.marker('reference4');
25+
verify.typeDefinitionCountIs(0);

0 commit comments

Comments
 (0)