diff --git a/tests/baselines/reference/switchWithConstrainedTypeVariable.js b/tests/baselines/reference/switchWithConstrainedTypeVariable.js new file mode 100644 index 00000000000..8e6bbe07fe1 --- /dev/null +++ b/tests/baselines/reference/switchWithConstrainedTypeVariable.js @@ -0,0 +1,28 @@ +//// [switchWithConstrainedTypeVariable.ts] +// Repro from #20840 + +function function1(key: T) { + switch (key) { + case 'a': + key.toLowerCase(); + break; + default: + key.toLowerCase(); + break; + } +} + + +//// [switchWithConstrainedTypeVariable.js] +"use strict"; +// Repro from #20840 +function function1(key) { + switch (key) { + case 'a': + key.toLowerCase(); + break; + default: + key.toLowerCase(); + break; + } +} diff --git a/tests/baselines/reference/switchWithConstrainedTypeVariable.symbols b/tests/baselines/reference/switchWithConstrainedTypeVariable.symbols new file mode 100644 index 00000000000..76a3e1c818f --- /dev/null +++ b/tests/baselines/reference/switchWithConstrainedTypeVariable.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/controlFlow/switchWithConstrainedTypeVariable.ts === +// Repro from #20840 + +function function1(key: T) { +>function1 : Symbol(function1, Decl(switchWithConstrainedTypeVariable.ts, 0, 0)) +>T : Symbol(T, Decl(switchWithConstrainedTypeVariable.ts, 2, 19)) +>key : Symbol(key, Decl(switchWithConstrainedTypeVariable.ts, 2, 40)) +>T : Symbol(T, Decl(switchWithConstrainedTypeVariable.ts, 2, 19)) + + switch (key) { +>key : Symbol(key, Decl(switchWithConstrainedTypeVariable.ts, 2, 40)) + + case 'a': + key.toLowerCase(); +>key.toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, --, --)) +>key : Symbol(key, Decl(switchWithConstrainedTypeVariable.ts, 2, 40)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, --, --)) + + break; + default: + key.toLowerCase(); +>key.toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, --, --)) +>key : Symbol(key, Decl(switchWithConstrainedTypeVariable.ts, 2, 40)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, --, --)) + + break; + } +} + diff --git a/tests/baselines/reference/switchWithConstrainedTypeVariable.types b/tests/baselines/reference/switchWithConstrainedTypeVariable.types new file mode 100644 index 00000000000..be7cc59f348 --- /dev/null +++ b/tests/baselines/reference/switchWithConstrainedTypeVariable.types @@ -0,0 +1,33 @@ +=== tests/cases/conformance/controlFlow/switchWithConstrainedTypeVariable.ts === +// Repro from #20840 + +function function1(key: T) { +>function1 : (key: T) => void +>T : T +>key : T +>T : T + + switch (key) { +>key : T + + case 'a': +>'a' : "a" + + key.toLowerCase(); +>key.toLowerCase() : string +>key.toLowerCase : () => string +>key : T +>toLowerCase : () => string + + break; + default: + key.toLowerCase(); +>key.toLowerCase() : string +>key.toLowerCase : () => string +>key : T +>toLowerCase : () => string + + break; + } +} +