Skip to content

Commit 82897a0

Browse files
Node builder scope traversal improvements (microsoft#58063)
Co-authored-by: Titian Cernicova-Dragomir <[email protected]>
1 parent f52f7b9 commit 82897a0

File tree

99 files changed

+477
-379
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+477
-379
lines changed

src/compiler/checker.ts

Lines changed: 142 additions & 50 deletions
Large diffs are not rendered by default.

tests/baselines/reference/anyAssignabilityInInheritance.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ var r3 = foo3(a); // any
236236
>a : any
237237

238238
declare function foo13(x: <T>(x: T) => T): <T>(x: T) => T;
239-
>foo13 : { (x: <T>(x: T) => T): <T_1>(x: T_1) => T_1; (x: any): any; }
240-
> : ^^^^^^^ ^^^^^ ^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
239+
>foo13 : { (x: <T>(x: T) => T): <T>(x: T) => T; (x: any): any; }
240+
> : ^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^
241241
>x : <T>(x: T) => T
242242
> : ^ ^^^^^ ^^^^^
243243
>x : T

tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.types

Lines changed: 4 additions & 4 deletions
Large diffs are not rendered by default.

tests/baselines/reference/assignmentCompatWithCallSignatures4.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@ module Errors {
155155
}): boolean[];
156156
};
157157
var a17: {
158-
>a17 : { (x: { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }): any[]; (x: { <T_2 extends Derived2>(a: T_2): T_2; <T_3 extends Base>(a: T_3): T_3; }): any[]; }
159-
> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
158+
>a17 : { (x: { <T extends Derived>(a: T): T; <T extends Base>(a: T): T; }): any[]; (x: { <T extends Derived2>(a: T): T; <T extends Base>(a: T): T; }): any[]; }
159+
> : ^^^^^^ ^^^ ^^^^^^ ^^^ ^^^
160160

161161
(x: {
162162
>x : { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }

tests/baselines/reference/assignmentCompatWithCallSignatures5.types

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ var a17: {
127127

128128
};
129129
var a18: {
130-
>a18 : { (x: { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }): any[]; (x: { <T_2 extends Derived2>(a: T_2): T_2; <T_3 extends Base>(a: T_3): T_3; }): any[]; }
131-
> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
130+
>a18 : { (x: { <T extends Derived>(a: T): T; <T extends Base>(a: T): T; }): any[]; (x: { <T extends Derived2>(a: T): T; <T extends Base>(a: T): T; }): any[]; }
131+
> : ^^^^^^ ^^^ ^^^^^^ ^^^ ^^^
132132

133133
(x: {
134134
>x : { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }
@@ -404,7 +404,7 @@ b17 = a17; // ok
404404

405405
var b18: (x: <T>(a: T) => T) => any[];
406406
>b18 : (x: <T>(a: T) => T) => any[]
407-
> : ^^^^^ ^^^^^ ^^^^^ ^^^^^
407+
> : ^^^^ ^^^^^
408408
>x : <T>(a: T) => T
409409
> : ^ ^^^^^ ^^^^^
410410
>a : T

tests/baselines/reference/assignmentCompatWithConstructSignatures4.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@ module Errors {
155155
}): boolean[];
156156
};
157157
var a17: {
158-
>a17 : { new (x: { new <T extends Derived>(a: T): T; new <T_1 extends Base>(a: T_1): T_1; }): any[]; new (x: { new <T_2 extends Derived2>(a: T_2): T_2; new <T_3 extends Base>(a: T_3): T_3; }): any[]; }
159-
> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
158+
>a17 : { new (x: { new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }): any[]; new (x: { new <T extends Derived2>(a: T): T; new <T extends Base>(a: T): T; }): any[]; }
159+
> : ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^
160160

161161
new (x: {
162162
>x : { new <T extends Derived>(a: T): T; new <T_1 extends Base>(a: T_1): T_1; }

tests/baselines/reference/assignmentCompatWithConstructSignatures5.types

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ var a17: {
127127

128128
};
129129
var a18: {
130-
>a18 : { new (x: { new <T extends Derived>(a: T): T; new <T_1 extends Base>(a: T_1): T_1; }): any[]; new (x: { new <T_2 extends Derived2>(a: T_2): T_2; new <T_3 extends Base>(a: T_3): T_3; }): any[]; }
131-
> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
130+
>a18 : { new (x: { new <T extends Derived>(a: T): T; new <T extends Base>(a: T): T; }): any[]; new (x: { new <T extends Derived2>(a: T): T; new <T extends Base>(a: T): T; }): any[]; }
131+
> : ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^
132132

133133
new (x: {
134134
>x : { new <T extends Derived>(a: T): T; new <T_1 extends Base>(a: T_1): T_1; }
@@ -404,7 +404,7 @@ b17 = a17; // ok
404404

405405
var b18: new (x: new <T>(a: T) => T) => any[];
406406
>b18 : new (x: new <T>(a: T) => T) => any[]
407-
> : ^^^^^^^^^^^^^ ^^^^^ ^^^^^ ^^^^^
407+
> : ^^^^^^^^ ^^^^^
408408
>x : new <T>(a: T) => T
409409
> : ^^^^^ ^^^^^ ^^^^^
410410
>a : T

tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ interface I<T, S> {
1515

1616
var g: <T>(x: T) => <S>(y: S) => I<T, S>
1717
>g : <T>(x: T) => <S>(y: S) => I<T, S>
18-
> : ^ ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^
18+
> : ^ ^^^^^ ^^^^^
1919
>x : T
2020
> : ^
2121
>y : S
2222
> : ^
2323

2424
var h: <T>(x: T) => <S>(y: S) => { <U>(f: (x: T) => (y: S) => U): U }
25-
>h : <T>(x: T) => <S>(y: S) => <U>(f: (x: T) => (y: S) => U) => U
26-
> : ^ ^^^^^ ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
25+
>h : <T>(x: T) => <S>(y: S) => { <U>(f: (x: T) => (y: S) => U): U; }
26+
> : ^ ^^^^^ ^^^^^
2727
>x : T
2828
> : ^
2929
>y : S

tests/baselines/reference/callSignatureAssignabilityInInheritance3.types

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,8 @@ module Errors {
155155
}): boolean[];
156156
};
157157
a17: {
158-
>a17 : { (x: { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }): any[]; (x: { <T_2 extends Derived2>(a: T_2): T_2; <T_3 extends Base>(a: T_3): T_3; }): any[]; }
159-
> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
158+
>a17 : { (x: { <T extends Derived>(a: T): T; <T extends Base>(a: T): T; }): any[]; (x: { <T extends Derived2>(a: T): T; <T extends Base>(a: T): T; }): any[]; }
159+
> : ^^^^^^ ^^^ ^^^^^^ ^^^ ^^^
160160

161161
(x: {
162162
>x : { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }

tests/baselines/reference/callSignatureAssignabilityInInheritance4.types

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ interface A { // T
129129

130130
};
131131
a18: {
132-
>a18 : { (x: { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }): any[]; (x: { <T_2 extends Derived2>(a: T_2): T_2; <T_3 extends Base>(a: T_3): T_3; }): any[]; }
133-
> : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^
132+
>a18 : { (x: { <T extends Derived>(a: T): T; <T extends Base>(a: T): T; }): any[]; (x: { <T extends Derived2>(a: T): T; <T extends Base>(a: T): T; }): any[]; }
133+
> : ^^^^^^ ^^^ ^^^^^^ ^^^ ^^^
134134

135135
(x: {
136136
>x : { <T extends Derived>(a: T): T; <T_1 extends Base>(a: T_1): T_1; }
@@ -250,7 +250,7 @@ interface I extends A {
250250

251251
a18: (x: <T>(a: T) => T) => any[]; // ok
252252
>a18 : (x: <T>(a: T) => T) => any[]
253-
> : ^^^^^ ^^^^^ ^^^^^ ^^^^^
253+
> : ^^^^ ^^^^^
254254
>x : <T>(a: T) => T
255255
> : ^ ^^^^^ ^^^^^
256256
>a : T

0 commit comments

Comments
 (0)