Skip to content

Commit 2aceeea

Browse files
committed
Fixes goto definitions for type predicates
1 parent 72aeb3c commit 2aceeea

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/compiler/checker.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11925,6 +11925,10 @@ namespace ts {
1192511925
return resolveEntityName(<EntityName>entityName, meaning);
1192611926
}
1192711927

11928+
if (entityName.parent.kind === SyntaxKind.TypePredicate) {
11929+
return resolveEntityName(<Identifier>entityName, /* meanings */ SymbolFlags.Variable);
11930+
}
11931+
1192811932
// Do we want to return undefined here?
1192911933
return undefined;
1193011934
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/// <reference path='fourslash.ts'/>
2+
3+
//// /*classDeclaration*/class A {}
4+
//// function f(/*parameterDeclaration*/parameter: any): /*parameterName*/parameter is /*typeReference*/A {
5+
//// return typeof parameter === "string";
6+
//// }
7+
8+
goTo.marker('parameterName');
9+
10+
goTo.definition();
11+
verify.caretAtMarker('parameterDeclaration');
12+
13+
goTo.marker('typeReference');
14+
15+
goTo.definition();
16+
verify.caretAtMarker('classDeclaration');

0 commit comments

Comments
 (0)