TypeScript/tests/baselines/reference/capturedLetConstInLoop5.types
2016-01-06 10:53:27 -08:00

951 lines
15 KiB
Text

=== tests/cases/compiler/capturedLetConstInLoop5.ts ===
declare function use(a: any);
>use : (a: any) => any
>a : any
//====let
function foo0(x) {
>foo0 : (x: any) => void
>x : any
for (let x of []) {
>x : any
>[] : undefined[]
var v = x;
>v : any
>x : any
(function() { return x + v });
>(function() { return x + v }) : () => any
>function() { return x + v } : () => any
>x + v : any
>x : any
>v : any
(() => x + v);
>(() => x + v) : () => any
>() => x + v : () => any
>x + v : any
>x : any
>v : any
if (x == 1) {
>x == 1 : boolean
>x : any
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : any
}
function foo00(x) {
>foo00 : (x: any) => void
>x : any
for (let x in []) {
>x : string
>[] : undefined[]
var v = x;
>v : string
>x : string
(function() { return x + v });
>(function() { return x + v }) : () => string
>function() { return x + v } : () => string
>x + v : string
>x : string
>v : string
(() => x + v);
>(() => x + v) : () => string
>() => x + v : () => string
>x + v : string
>x : string
>v : string
if (x == "1") {
>x == "1" : boolean
>x : string
>"1" : string
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : string
}
function foo1(x) {
>foo1 : (x: any) => void
>x : any
for (let x = 0; x < 1; ++x) {
>x : number
>0 : number
>x < 1 : boolean
>x : number
>1 : number
>++x : number
>x : number
var v = x;
>v : number
>x : number
(function() { return x + v });
>(function() { return x + v }) : () => number
>function() { return x + v } : () => number
>x + v : number
>x : number
>v : number
(() => x + v);
>(() => x + v) : () => number
>() => x + v : () => number
>x + v : number
>x : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo2(x) {
>foo2 : (x: any) => void
>x : any
while (1 === 1) {
>1 === 1 : boolean
>1 : number
>1 : number
let x = 1;
>x : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + v });
>(function() { return x + v }) : () => number
>function() { return x + v } : () => number
>x + v : number
>x : number
>v : number
(() => x + v);
>(() => x + v) : () => number
>() => x + v : () => number
>x + v : number
>x : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo3(x) {
>foo3 : (x: any) => void
>x : any
do {
let x;
>x : any
var v;
>v : any
(function() { return x + v });
>(function() { return x + v }) : () => any
>function() { return x + v } : () => any
>x + v : any
>x : any
>v : any
(() => x + v);
>(() => x + v) : () => any
>() => x + v : () => any
>x + v : any
>x : any
>v : any
if (x == 1) {
>x == 1 : boolean
>x : any
>1 : number
return;
}
} while (1 === 1)
>1 === 1 : boolean
>1 : number
>1 : number
use(v);
>use(v) : any
>use : (a: any) => any
>v : any
}
function foo4(x) {
>foo4 : (x: any) => void
>x : any
for (let y = 0; y < 1; ++y) {
>y : number
>0 : number
>y < 1 : boolean
>y : number
>1 : number
>++y : number
>y : number
var v = y;
>v : number
>y : number
let x = 1;
>x : number
>1 : number
(function() { return x + v });
>(function() { return x + v }) : () => number
>function() { return x + v } : () => number
>x + v : number
>x : number
>v : number
(() => x + v);
>(() => x + v) : () => number
>() => x + v : () => number
>x + v : number
>x : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo5(x) {
>foo5 : (x: any) => void
>x : any
for (let x = 0, y = 1; x < 1; ++x) {
>x : number
>0 : number
>y : number
>1 : number
>x < 1 : boolean
>x : number
>1 : number
>++x : number
>x : number
var v = x;
>v : number
>x : number
(function() { return x + y + v });
>(function() { return x + y + v }) : () => number
>function() { return x + y + v } : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
(() => x + y + v);
>(() => x + y + v) : () => number
>() => x + y + v : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo6(x) {
>foo6 : (x: any) => void
>x : any
while (1 === 1) {
>1 === 1 : boolean
>1 : number
>1 : number
let x, y;
>x : any
>y : any
var v = x;
>v : any
>x : any
(function() { return x + y + v });
>(function() { return x + y + v }) : () => any
>function() { return x + y + v } : () => any
>x + y + v : any
>x + y : any
>x : any
>y : any
>v : any
(() => x + y + v);
>(() => x + y + v) : () => any
>() => x + y + v : () => any
>x + y + v : any
>x + y : any
>x : any
>y : any
>v : any
if (x == 1) {
>x == 1 : boolean
>x : any
>1 : number
return;
}
};
use(v)
>use(v) : any
>use : (a: any) => any
>v : any
}
function foo7(x) {
>foo7 : (x: any) => void
>x : any
do {
let x, y;
>x : any
>y : any
var v = x;
>v : any
>x : any
(function() { return x + y + v });
>(function() { return x + y + v }) : () => any
>function() { return x + y + v } : () => any
>x + y + v : any
>x + y : any
>x : any
>y : any
>v : any
(() => x + y + v);
>(() => x + y + v) : () => any
>() => x + y + v : () => any
>x + y + v : any
>x + y : any
>x : any
>y : any
>v : any
if (x == 1) {
>x == 1 : boolean
>x : any
>1 : number
return;
}
} while (1 === 1);
>1 === 1 : boolean
>1 : number
>1 : number
use(v);
>use(v) : any
>use : (a: any) => any
>v : any
}
function foo8(x) {
>foo8 : (x: any) => void
>x : any
for (let y = 0; y < 1; ++y) {
>y : number
>0 : number
>y < 1 : boolean
>y : number
>1 : number
>++y : number
>y : number
let x = 1;
>x : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + y + v });
>(function() { return x + y + v }) : () => number
>function() { return x + y + v } : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
(() => x + y + v);
>(() => x + y + v) : () => number
>() => x + y + v : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
//====const
function foo0_c(x) {
>foo0_c : (x: any) => void
>x : any
for (const x of []) {
>x : any
>[] : undefined[]
var v = x;
>v : any
>x : any
(function() { return x + v });
>(function() { return x + v }) : () => any
>function() { return x + v } : () => any
>x + v : any
>x : any
>v : any
(() => x + v);
>(() => x + v) : () => any
>() => x + v : () => any
>x + v : any
>x : any
>v : any
if (x == 1) {
>x == 1 : boolean
>x : any
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : any
}
function foo00_c(x) {
>foo00_c : (x: any) => void
>x : any
for (const x in []) {
>x : string
>[] : undefined[]
var v = x;
>v : string
>x : string
(function() { return x + v });
>(function() { return x + v }) : () => string
>function() { return x + v } : () => string
>x + v : string
>x : string
>v : string
(() => x + v);
>(() => x + v) : () => string
>() => x + v : () => string
>x + v : string
>x : string
>v : string
if (x == "1") {
>x == "1" : boolean
>x : string
>"1" : string
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : string
}
function foo1_c(x) {
>foo1_c : (x: any) => void
>x : any
for (const x = 0; x < 1;) {
>x : number
>0 : number
>x < 1 : boolean
>x : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + v });
>(function() { return x + v }) : () => number
>function() { return x + v } : () => number
>x + v : number
>x : number
>v : number
(() => x + v);
>(() => x + v) : () => number
>() => x + v : () => number
>x + v : number
>x : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo2_c(x) {
>foo2_c : (x: any) => void
>x : any
while (1 === 1) {
>1 === 1 : boolean
>1 : number
>1 : number
const x = 1;
>x : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + v });
>(function() { return x + v }) : () => number
>function() { return x + v } : () => number
>x + v : number
>x : number
>v : number
(() => x + v);
>(() => x + v) : () => number
>() => x + v : () => number
>x + v : number
>x : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo3_c(x) {
>foo3_c : (x: any) => void
>x : any
do {
const x = 1;
>x : number
>1 : number
var v;
>v : any
(function() { return x + v });
>(function() { return x + v }) : () => any
>function() { return x + v } : () => any
>x + v : any
>x : number
>v : any
(() => x + v);
>(() => x + v) : () => any
>() => x + v : () => any
>x + v : any
>x : number
>v : any
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
} while (1 === 1)
>1 === 1 : boolean
>1 : number
>1 : number
use(v);
>use(v) : any
>use : (a: any) => any
>v : any
}
function foo4_c(x) {
>foo4_c : (x: any) => void
>x : any
for (const y = 0; y < 1;) {
>y : number
>0 : number
>y < 1 : boolean
>y : number
>1 : number
var v = y;
>v : number
>y : number
let x = 1;
>x : number
>1 : number
(function() { return x + v });
>(function() { return x + v }) : () => number
>function() { return x + v } : () => number
>x + v : number
>x : number
>v : number
(() => x + v);
>(() => x + v) : () => number
>() => x + v : () => number
>x + v : number
>x : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo5_c(x) {
>foo5_c : (x: any) => void
>x : any
for (const x = 0, y = 1; x < 1;) {
>x : number
>0 : number
>y : number
>1 : number
>x < 1 : boolean
>x : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + y + v });
>(function() { return x + y + v }) : () => number
>function() { return x + y + v } : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
(() => x + y + v);
>(() => x + y + v) : () => number
>() => x + y + v : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo6_c(x) {
>foo6_c : (x: any) => void
>x : any
while (1 === 1) {
>1 === 1 : boolean
>1 : number
>1 : number
const x = 1, y = 1;
>x : number
>1 : number
>y : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + y + v });
>(function() { return x + y + v }) : () => number
>function() { return x + y + v } : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
(() => x + y + v);
>(() => x + y + v) : () => number
>() => x + y + v : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v)
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo7_c(x) {
>foo7_c : (x: any) => void
>x : any
do {
const x = 1, y = 1;
>x : number
>1 : number
>y : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + y + v });
>(function() { return x + y + v }) : () => number
>function() { return x + y + v } : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
(() => x + y + v);
>(() => x + y + v) : () => number
>() => x + y + v : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
} while (1 === 1)
>1 === 1 : boolean
>1 : number
>1 : number
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}
function foo8_c(x) {
>foo8_c : (x: any) => void
>x : any
for (const y = 0; y < 1;) {
>y : number
>0 : number
>y < 1 : boolean
>y : number
>1 : number
const x = 1;
>x : number
>1 : number
var v = x;
>v : number
>x : number
(function() { return x + y + v });
>(function() { return x + y + v }) : () => number
>function() { return x + y + v } : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
(() => x + y + v);
>(() => x + y + v) : () => number
>() => x + y + v : () => number
>x + y + v : number
>x + y : number
>x : number
>y : number
>v : number
if (x == 1) {
>x == 1 : boolean
>x : number
>1 : number
return;
}
}
use(v);
>use(v) : any
>use : (a: any) => any
>v : number
}