mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-30 15:15:38 -05:00
Adding regression test
This commit is contained in:
@@ -105,6 +105,29 @@ function h3() {
|
||||
}
|
||||
x; // string | number
|
||||
}
|
||||
// Repro for #8418
|
||||
function foo(x: number): number { return 1; }
|
||||
function test1() {
|
||||
let x: number | undefined;
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
x = foo(x);
|
||||
}
|
||||
}
|
||||
x = 1;
|
||||
}
|
||||
}
|
||||
// Repro for #8418
|
||||
function test2() {
|
||||
let x: number | undefined;
|
||||
x = 1;
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
x = foo(x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//// [controlFlowWhileStatement.js]
|
||||
@@ -214,3 +237,26 @@ function h3() {
|
||||
}
|
||||
x; // string | number
|
||||
}
|
||||
// Repro for #8418
|
||||
function foo(x) { return 1; }
|
||||
function test1() {
|
||||
var x;
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
x = foo(x);
|
||||
}
|
||||
}
|
||||
x = 1;
|
||||
}
|
||||
}
|
||||
// Repro for #8418
|
||||
function test2() {
|
||||
var x;
|
||||
x = 1;
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
x = foo(x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,4 +254,57 @@ function h3() {
|
||||
x; // string | number
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 98, 7))
|
||||
}
|
||||
// Repro for #8418
|
||||
function foo(x: number): number { return 1; }
|
||||
>foo : Symbol(foo, Decl(controlFlowWhileStatement.ts, 105, 1))
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 107, 13))
|
||||
|
||||
function test1() {
|
||||
>test1 : Symbol(test1, Decl(controlFlowWhileStatement.ts, 107, 45))
|
||||
|
||||
let x: number | undefined;
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 109, 7))
|
||||
|
||||
while (cond) {
|
||||
>cond : Symbol(cond, Decl(controlFlowWhileStatement.ts, 0, 3))
|
||||
|
||||
while (cond) {
|
||||
>cond : Symbol(cond, Decl(controlFlowWhileStatement.ts, 0, 3))
|
||||
|
||||
while (cond) {
|
||||
>cond : Symbol(cond, Decl(controlFlowWhileStatement.ts, 0, 3))
|
||||
|
||||
x = foo(x);
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 109, 7))
|
||||
>foo : Symbol(foo, Decl(controlFlowWhileStatement.ts, 105, 1))
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 109, 7))
|
||||
}
|
||||
}
|
||||
x = 1;
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 109, 7))
|
||||
}
|
||||
}
|
||||
// Repro for #8418
|
||||
function test2() {
|
||||
>test2 : Symbol(test2, Decl(controlFlowWhileStatement.ts, 118, 1))
|
||||
|
||||
let x: number | undefined;
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 121, 7))
|
||||
|
||||
x = 1;
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 121, 7))
|
||||
|
||||
while (cond) {
|
||||
>cond : Symbol(cond, Decl(controlFlowWhileStatement.ts, 0, 3))
|
||||
|
||||
while (cond) {
|
||||
>cond : Symbol(cond, Decl(controlFlowWhileStatement.ts, 0, 3))
|
||||
|
||||
x = foo(x);
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 121, 7))
|
||||
>foo : Symbol(foo, Decl(controlFlowWhileStatement.ts, 105, 1))
|
||||
>x : Symbol(x, Decl(controlFlowWhileStatement.ts, 121, 7))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -307,4 +307,66 @@ function h3() {
|
||||
x; // string | number
|
||||
>x : string | number
|
||||
}
|
||||
// Repro for #8418
|
||||
function foo(x: number): number { return 1; }
|
||||
>foo : (x: number) => number
|
||||
>x : number
|
||||
>1 : number
|
||||
|
||||
function test1() {
|
||||
>test1 : () => void
|
||||
|
||||
let x: number | undefined;
|
||||
>x : number
|
||||
|
||||
while (cond) {
|
||||
>cond : boolean
|
||||
|
||||
while (cond) {
|
||||
>cond : boolean
|
||||
|
||||
while (cond) {
|
||||
>cond : boolean
|
||||
|
||||
x = foo(x);
|
||||
>x = foo(x) : number
|
||||
>x : number
|
||||
>foo(x) : number
|
||||
>foo : (x: number) => number
|
||||
>x : number
|
||||
}
|
||||
}
|
||||
x = 1;
|
||||
>x = 1 : number
|
||||
>x : number
|
||||
>1 : number
|
||||
}
|
||||
}
|
||||
// Repro for #8418
|
||||
function test2() {
|
||||
>test2 : () => void
|
||||
|
||||
let x: number | undefined;
|
||||
>x : number
|
||||
|
||||
x = 1;
|
||||
>x = 1 : number
|
||||
>x : number
|
||||
>1 : number
|
||||
|
||||
while (cond) {
|
||||
>cond : boolean
|
||||
|
||||
while (cond) {
|
||||
>cond : boolean
|
||||
|
||||
x = foo(x);
|
||||
>x = foo(x) : number
|
||||
>x : number
|
||||
>foo(x) : number
|
||||
>foo : (x: number) => number
|
||||
>x : number
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -104,3 +104,26 @@ function h3() {
|
||||
}
|
||||
x; // string | number
|
||||
}
|
||||
// Repro for #8418
|
||||
function foo(x: number): number { return 1; }
|
||||
function test1() {
|
||||
let x: number | undefined;
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
x = foo(x);
|
||||
}
|
||||
}
|
||||
x = 1;
|
||||
}
|
||||
}
|
||||
// Repro for #8418
|
||||
function test2() {
|
||||
let x: number | undefined;
|
||||
x = 1;
|
||||
while (cond) {
|
||||
while (cond) {
|
||||
x = foo(x);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user