Accepting new baselines

This commit is contained in:
Anders Hejlsberg 2016-04-08 15:10:10 -07:00
parent f13c92f036
commit b03d087e79
3 changed files with 215 additions and 0 deletions

View file

@ -0,0 +1,53 @@
//// [assignmentTypeNarrowing.ts]
let x: string | number | boolean | RegExp;
x = "";
x; // string
[x] = [true];
x; // boolean
[x = ""] = [1];
x; // string | number
({x} = {x: true});
x; // boolean
({y: x} = {y: 1});
x; // number
({x = ""} = {x: true});
x; // string | boolean
({y: x = /a/} = {y: 1});
x; // number | RegExp
let a: string[];
for (x of a) {
x; // string
}
//// [assignmentTypeNarrowing.js]
var x;
x = "";
x; // string
x = [true][0];
x; // boolean
_a = [1][0], x = _a === void 0 ? "" : _a;
x; // string | number
(_b = { x: true }, x = _b.x, _b);
x; // boolean
(_c = { y: 1 }, x = _c.y, _c);
x; // number
(_d = { x: true }, _e = _d.x, x = _e === void 0 ? "" : _e, _d);
x; // string | boolean
(_f = { y: 1 }, _g = _f.y, x = _g === void 0 ? /a/ : _g, _f);
x; // number | RegExp
var a;
for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {
x = a_1[_i];
x; // string
}
var _a, _b, _c, _d, _e, _f, _g;

View file

@ -0,0 +1,64 @@
=== tests/cases/conformance/expressions/assignmentOperator/assignmentTypeNarrowing.ts ===
let x: string | number | boolean | RegExp;
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
>RegExp : Symbol(RegExp, Decl(lib.d.ts, --, --), Decl(lib.d.ts, --, --))
x = "";
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
x; // string
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
[x] = [true];
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
x; // boolean
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
[x = ""] = [1];
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
x; // string | number
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
({x} = {x: true});
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 11, 2))
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 11, 8))
x; // boolean
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
({y: x} = {y: 1});
>y : Symbol(y, Decl(assignmentTypeNarrowing.ts, 14, 2))
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
>y : Symbol(y, Decl(assignmentTypeNarrowing.ts, 14, 11))
x; // number
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
({x = ""} = {x: true});
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 17, 2))
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 17, 13))
x; // string | boolean
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
({y: x = /a/} = {y: 1});
>y : Symbol(y, Decl(assignmentTypeNarrowing.ts, 20, 2))
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
>y : Symbol(y, Decl(assignmentTypeNarrowing.ts, 20, 17))
x; // number | RegExp
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
let a: string[];
>a : Symbol(a, Decl(assignmentTypeNarrowing.ts, 23, 3))
for (x of a) {
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
>a : Symbol(a, Decl(assignmentTypeNarrowing.ts, 23, 3))
x; // string
>x : Symbol(x, Decl(assignmentTypeNarrowing.ts, 0, 3))
}

View file

@ -0,0 +1,98 @@
=== tests/cases/conformance/expressions/assignmentOperator/assignmentTypeNarrowing.ts ===
let x: string | number | boolean | RegExp;
>x : string | number | boolean | RegExp
>RegExp : RegExp
x = "";
>x = "" : string
>x : string | number | boolean | RegExp
>"" : string
x; // string
>x : string
[x] = [true];
>[x] = [true] : [boolean]
>[x] : [string | number | boolean | RegExp]
>x : string | number | boolean | RegExp
>[true] : [boolean]
>true : boolean
x; // boolean
>x : boolean
[x = ""] = [1];
>[x = ""] = [1] : [number]
>[x = ""] : [string]
>x = "" : string
>x : string | number | boolean | RegExp
>"" : string
>[1] : [number]
>1 : number
x; // string | number
>x : string | number
({x} = {x: true});
>({x} = {x: true}) : { x: boolean; }
>{x} = {x: true} : { x: boolean; }
>{x} : { x: string | number | boolean | RegExp; }
>x : string | number | boolean | RegExp
>{x: true} : { x: boolean; }
>x : boolean
>true : boolean
x; // boolean
>x : boolean
({y: x} = {y: 1});
>({y: x} = {y: 1}) : { y: number; }
>{y: x} = {y: 1} : { y: number; }
>{y: x} : { y: string | number | boolean | RegExp; }
>y : string | number | boolean | RegExp
>x : string | number | boolean | RegExp
>{y: 1} : { y: number; }
>y : number
>1 : number
x; // number
>x : number
({x = ""} = {x: true});
>({x = ""} = {x: true}) : { x?: boolean; }
>{x = ""} = {x: true} : { x?: boolean; }
>{x = ""} : { x?: string | number | boolean | RegExp; }
>x : string | number | boolean | RegExp
>{x: true} : { x?: boolean; }
>x : boolean
>true : boolean
x; // string | boolean
>x : string | boolean
({y: x = /a/} = {y: 1});
>({y: x = /a/} = {y: 1}) : { y?: number; }
>{y: x = /a/} = {y: 1} : { y?: number; }
>{y: x = /a/} : { y?: RegExp; }
>y : RegExp
>x = /a/ : RegExp
>x : string | number | boolean | RegExp
>/a/ : RegExp
>{y: 1} : { y?: number; }
>y : number
>1 : number
x; // number | RegExp
>x : number | RegExp
let a: string[];
>a : string[]
for (x of a) {
>x : string | number | boolean | RegExp
>a : string[]
x; // string
>x : string
}