diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.js b/tests/baselines/reference/substitutionTypePassedToExtends.js new file mode 100644 index 0000000000000..13460c28e5f35 --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.js @@ -0,0 +1,10 @@ +//// [substitutionTypePassedToExtends.ts] +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +type Bar1 = T + +type Foo2 = Set extends Set ? Bar2> : 'else' +type Bar2> = T + + +//// [substitutionTypePassedToExtends.js] +"use strict"; diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.symbols b/tests/baselines/reference/substitutionTypePassedToExtends.symbols new file mode 100644 index 0000000000000..b4ff138a915b9 --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/substitutionTypePassedToExtends.ts === +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +>Foo1 : Symbol(Foo1, Decl(substitutionTypePassedToExtends.ts, 0, 0)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) +>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10)) +>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12)) + +type Bar1 = T +>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10)) + +type Foo2 = Set extends Set ? Bar2> : 'else' +>Foo2 : Symbol(Foo2, Decl(substitutionTypePassedToExtends.ts, 1, 36)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10)) + +type Bar2> = T +>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10)) + diff --git a/tests/baselines/reference/substitutionTypePassedToExtends.types b/tests/baselines/reference/substitutionTypePassedToExtends.types new file mode 100644 index 0000000000000..80ed20dfc5fd0 --- /dev/null +++ b/tests/baselines/reference/substitutionTypePassedToExtends.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/substitutionTypePassedToExtends.ts === +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +>Foo1 : Foo1 + +type Bar1 = T +>Bar1 : T + +type Foo2 = Set extends Set ? Bar2> : 'else' +>Foo2 : Foo2 + +type Bar2> = T +>Bar2 : T + diff --git a/tests/cases/compiler/substitutionTypePassedToExtends.ts b/tests/cases/compiler/substitutionTypePassedToExtends.ts new file mode 100644 index 0000000000000..e969208e5a0f9 --- /dev/null +++ b/tests/cases/compiler/substitutionTypePassedToExtends.ts @@ -0,0 +1,8 @@ +// @strict: true +// @target: esnext + +type Foo1 = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else' +type Bar1 = T + +type Foo2 = Set extends Set ? Bar2> : 'else' +type Bar2> = T