Accepting new baselines

This commit is contained in:
Anders Hejlsberg
2015-09-05 15:46:20 -07:00
parent a0ddd437ef
commit f801420946
18 changed files with 228 additions and 492 deletions

View File

@@ -0,0 +1,17 @@
tests/cases/compiler/declarationEmitDestructuring4.ts(9,22): error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.
==== tests/cases/compiler/declarationEmitDestructuring4.ts (1 errors) ====
// For an array binding pattern with empty elements,
// we will not make any modification and will emit
// the similar binding pattern users' have written
function baz([]) { }
function baz1([] = [1,2,3]) { }
function baz2([[]] = [[1,2,3]]) { }
function baz3({}) { }
function baz4({} = { x: 10 }) { }
~
!!! error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.

View File

@@ -1,21 +0,0 @@
=== tests/cases/compiler/declarationEmitDestructuring4.ts ===
// For an array binding pattern with empty elements,
// we will not make any modification and will emit
// the similar binding pattern users' have written
function baz([]) { }
>baz : Symbol(baz, Decl(declarationEmitDestructuring4.ts, 0, 0))
function baz1([] = [1,2,3]) { }
>baz1 : Symbol(baz1, Decl(declarationEmitDestructuring4.ts, 3, 20))
function baz2([[]] = [[1,2,3]]) { }
>baz2 : Symbol(baz2, Decl(declarationEmitDestructuring4.ts, 4, 31))
function baz3({}) { }
>baz3 : Symbol(baz3, Decl(declarationEmitDestructuring4.ts, 5, 35))
function baz4({} = { x: 10 }) { }
>baz4 : Symbol(baz4, Decl(declarationEmitDestructuring4.ts, 7, 21))
>x : Symbol(x, Decl(declarationEmitDestructuring4.ts, 8, 20))

View File

@@ -1,32 +0,0 @@
=== tests/cases/compiler/declarationEmitDestructuring4.ts ===
// For an array binding pattern with empty elements,
// we will not make any modification and will emit
// the similar binding pattern users' have written
function baz([]) { }
>baz : ([]: any[]) => void
function baz1([] = [1,2,3]) { }
>baz1 : ([]?: number[]) => void
>[1,2,3] : number[]
>1 : number
>2 : number
>3 : number
function baz2([[]] = [[1,2,3]]) { }
>baz2 : ([[]]?: [number[]]) => void
>[[1,2,3]] : [number[]]
>[1,2,3] : number[]
>1 : number
>2 : number
>3 : number
function baz3({}) { }
>baz3 : ({}: {}) => void
function baz4({} = { x: 10 }) { }
>baz4 : ({}?: { x: number; }) => void
>{ x: 10 } : { x: number; }
>x : number
>10 : number

View File

@@ -0,0 +1,43 @@
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts(2,13): error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts(2,19): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{}'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts(3,23): error TS2353: Object literal may only specify known properties, and 'y4' does not exist in type '{ x4: any; }'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts(4,16): error TS2353: Object literal may only specify known properties, and 'x5' does not exist in type '{ y5: any; }'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts(6,27): error TS2353: Object literal may only specify known properties, and 'y7' does not exist in type '{ x7: any; }'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts(7,20): error TS2353: Object literal may only specify known properties, and 'x8' does not exist in type '{ y8: any; }'.
==== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts (6 errors) ====
var { } = { x: 5, y: "hello" };
~
!!! error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.
~
!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{}'.
var { x4 } = { x4: 5, y4: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'y4' does not exist in type '{ x4: any; }'.
var { y5 } = { x5: 5, y5: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'x5' does not exist in type '{ y5: any; }'.
var { x6, y6 } = { x6: 5, y6: "hello" };
var { x7: a1 } = { x7: 5, y7: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'y7' does not exist in type '{ x7: any; }'.
var { y8: b1 } = { x8: 5, y8: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'x8' does not exist in type '{ y8: any; }'.
var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
var { a: x11, b: { a: y11, b: { a: z11 }}} = { a: 1, b: { a: "hello", b: { a: true } } };
function f15() {
var a4 = "hello";
var b4 = 1;
var c4 = true;
return { a4, b4, c4 };
}
var { a4, b4, c4 } = f15();
module m {
export var { a4, b4, c4 } = f15();
}

View File

@@ -1,89 +0,0 @@
=== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts ===
var { } = { x: 5, y: "hello" };
>x : Symbol(x, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 1, 11))
>y : Symbol(y, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 1, 17))
var { x4 } = { x4: 5, y4: "hello" };
>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 5))
>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 14))
>y4 : Symbol(y4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 21))
var { y5 } = { x5: 5, y5: "hello" };
>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 5))
>x5 : Symbol(x5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 14))
>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 21))
var { x6, y6 } = { x6: 5, y6: "hello" };
>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 5))
>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 9))
>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 18))
>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 25))
var { x7: a1 } = { x7: 5, y7: "hello" };
>x7 : Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 18))
>a1 : Symbol(a1, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 5))
>x7 : Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 18))
>y7 : Symbol(y7, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 25))
var { y8: b1 } = { x8: 5, y8: "hello" };
>y8 : Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 25))
>b1 : Symbol(b1, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 5))
>x8 : Symbol(x8, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 18))
>y8 : Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 25))
var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
>x9 : Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 26))
>a2 : Symbol(a2, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 5))
>y9 : Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 33))
>b2 : Symbol(b2, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 13))
>x9 : Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 26))
>y9 : Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 33))
var { a: x11, b: { a: y11, b: { a: z11 }}} = { a: 1, b: { a: "hello", b: { a: true } } };
>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 46))
>x11 : Symbol(x11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 5))
>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 52))
>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 57))
>y11 : Symbol(y11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 18))
>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 69))
>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 74))
>z11 : Symbol(z11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 31))
>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 46))
>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 52))
>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 57))
>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 69))
>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 74))
function f15() {
>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89))
var a4 = "hello";
>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 12, 7))
var b4 = 1;
>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 13, 7))
var c4 = true;
>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 14, 7))
return { a4, b4, c4 };
>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 12))
>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 16))
>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 20))
}
var { a4, b4, c4 } = f15();
>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 5))
>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 9))
>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 13))
>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89))
module m {
>m : Symbol(m, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 27))
export var { a4, b4, c4 } = f15();
>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 16))
>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 20))
>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 24))
>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89))
}

View File

@@ -1,122 +0,0 @@
=== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts ===
var { } = { x: 5, y: "hello" };
>{ x: 5, y: "hello" } : { x: number; y: string; }
>x : number
>5 : number
>y : string
>"hello" : string
var { x4 } = { x4: 5, y4: "hello" };
>x4 : number
>{ x4: 5, y4: "hello" } : { x4: number; y4: string; }
>x4 : number
>5 : number
>y4 : string
>"hello" : string
var { y5 } = { x5: 5, y5: "hello" };
>y5 : string
>{ x5: 5, y5: "hello" } : { x5: number; y5: string; }
>x5 : number
>5 : number
>y5 : string
>"hello" : string
var { x6, y6 } = { x6: 5, y6: "hello" };
>x6 : number
>y6 : string
>{ x6: 5, y6: "hello" } : { x6: number; y6: string; }
>x6 : number
>5 : number
>y6 : string
>"hello" : string
var { x7: a1 } = { x7: 5, y7: "hello" };
>x7 : any
>a1 : number
>{ x7: 5, y7: "hello" } : { x7: number; y7: string; }
>x7 : number
>5 : number
>y7 : string
>"hello" : string
var { y8: b1 } = { x8: 5, y8: "hello" };
>y8 : any
>b1 : string
>{ x8: 5, y8: "hello" } : { x8: number; y8: string; }
>x8 : number
>5 : number
>y8 : string
>"hello" : string
var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
>x9 : any
>a2 : number
>y9 : any
>b2 : string
>{ x9: 5, y9: "hello" } : { x9: number; y9: string; }
>x9 : number
>5 : number
>y9 : string
>"hello" : string
var { a: x11, b: { a: y11, b: { a: z11 }}} = { a: 1, b: { a: "hello", b: { a: true } } };
>a : any
>x11 : number
>b : any
>a : any
>y11 : string
>b : any
>a : any
>z11 : boolean
>{ a: 1, b: { a: "hello", b: { a: true } } } : { a: number; b: { a: string; b: { a: boolean; }; }; }
>a : number
>1 : number
>b : { a: string; b: { a: boolean; }; }
>{ a: "hello", b: { a: true } } : { a: string; b: { a: boolean; }; }
>a : string
>"hello" : string
>b : { a: boolean; }
>{ a: true } : { a: boolean; }
>a : boolean
>true : boolean
function f15() {
>f15 : () => { a4: string; b4: number; c4: boolean; }
var a4 = "hello";
>a4 : string
>"hello" : string
var b4 = 1;
>b4 : number
>1 : number
var c4 = true;
>c4 : boolean
>true : boolean
return { a4, b4, c4 };
>{ a4, b4, c4 } : { a4: string; b4: number; c4: boolean; }
>a4 : string
>b4 : number
>c4 : boolean
}
var { a4, b4, c4 } = f15();
>a4 : string
>b4 : number
>c4 : boolean
>f15() : { a4: string; b4: number; c4: boolean; }
>f15 : () => { a4: string; b4: number; c4: boolean; }
module m {
>m : typeof m
export var { a4, b4, c4 } = f15();
>a4 : string
>b4 : number
>c4 : boolean
>f15() : { a4: string; b4: number; c4: boolean; }
>f15 : () => { a4: string; b4: number; c4: boolean; }
}

View File

@@ -0,0 +1,29 @@
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts(2,13): error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts(2,19): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{}'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts(3,23): error TS2353: Object literal may only specify known properties, and 'y4' does not exist in type '{ x4: any; }'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts(4,16): error TS2353: Object literal may only specify known properties, and 'x5' does not exist in type '{ y5: any; }'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts(6,27): error TS2353: Object literal may only specify known properties, and 'y7' does not exist in type '{ x7: any; }'.
tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts(7,20): error TS2353: Object literal may only specify known properties, and 'x8' does not exist in type '{ y8: any; }'.
==== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts (6 errors) ====
var { } = { x: 5, y: "hello" };
~
!!! error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.
~
!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{}'.
var { x4 } = { x4: 5, y4: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'y4' does not exist in type '{ x4: any; }'.
var { y5 } = { x5: 5, y5: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'x5' does not exist in type '{ y5: any; }'.
var { x6, y6 } = { x6: 5, y6: "hello" };
var { x7: a1 } = { x7: 5, y7: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'y7' does not exist in type '{ x7: any; }'.
var { y8: b1 } = { x8: 5, y8: "hello" };
~~
!!! error TS2353: Object literal may only specify known properties, and 'x8' does not exist in type '{ y8: any; }'.
var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };

View File

@@ -1,42 +0,0 @@
=== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts ===
var { } = { x: 5, y: "hello" };
>x : Symbol(x, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 1, 11))
>y : Symbol(y, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 1, 17))
var { x4 } = { x4: 5, y4: "hello" };
>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 5))
>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 14))
>y4 : Symbol(y4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 21))
var { y5 } = { x5: 5, y5: "hello" };
>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 5))
>x5 : Symbol(x5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 14))
>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 21))
var { x6, y6 } = { x6: 5, y6: "hello" };
>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 5))
>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 9))
>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 18))
>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 25))
var { x7: a1 } = { x7: 5, y7: "hello" };
>x7 : Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 18))
>a1 : Symbol(a1, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 5))
>x7 : Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 18))
>y7 : Symbol(y7, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 25))
var { y8: b1 } = { x8: 5, y8: "hello" };
>y8 : Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 25))
>b1 : Symbol(b1, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 5))
>x8 : Symbol(x8, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 18))
>y8 : Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 25))
var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
>x9 : Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 26))
>a2 : Symbol(a2, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 5))
>y9 : Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 33))
>b2 : Symbol(b2, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 13))
>x9 : Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 26))
>y9 : Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 33))

View File

@@ -1,63 +0,0 @@
=== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts ===
var { } = { x: 5, y: "hello" };
>{ x: 5, y: "hello" } : { x: number; y: string; }
>x : number
>5 : number
>y : string
>"hello" : string
var { x4 } = { x4: 5, y4: "hello" };
>x4 : number
>{ x4: 5, y4: "hello" } : { x4: number; y4: string; }
>x4 : number
>5 : number
>y4 : string
>"hello" : string
var { y5 } = { x5: 5, y5: "hello" };
>y5 : string
>{ x5: 5, y5: "hello" } : { x5: number; y5: string; }
>x5 : number
>5 : number
>y5 : string
>"hello" : string
var { x6, y6 } = { x6: 5, y6: "hello" };
>x6 : number
>y6 : string
>{ x6: 5, y6: "hello" } : { x6: number; y6: string; }
>x6 : number
>5 : number
>y6 : string
>"hello" : string
var { x7: a1 } = { x7: 5, y7: "hello" };
>x7 : any
>a1 : number
>{ x7: 5, y7: "hello" } : { x7: number; y7: string; }
>x7 : number
>5 : number
>y7 : string
>"hello" : string
var { y8: b1 } = { x8: 5, y8: "hello" };
>y8 : any
>b1 : string
>{ x8: 5, y8: "hello" } : { x8: number; y8: string; }
>x8 : number
>5 : number
>y8 : string
>"hello" : string
var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" };
>x9 : any
>a2 : number
>y9 : any
>b2 : string
>{ x9: 5, y9: "hello" } : { x9: number; y9: string; }
>x9 : number
>5 : number
>y9 : string
>"hello" : string

View File

@@ -1,4 +1,9 @@
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(6,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'z' must be of type 'any', but here has type 'number'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(22,17): error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(22,23): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{}'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(23,25): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{ x: any; }'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(24,19): error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{ y: any; }'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(28,28): error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{ x: any; }'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(29,22): error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{ y: any; }'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(56,17): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(67,9): error TS2461: Type '{ [x: number]: undefined; }' is not an array type.
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(68,9): error TS2461: Type '{ [x: number]: number; 0: number; 1: number; }' is not an array type.
@@ -16,15 +21,13 @@ tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(138,6):
tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(138,9): error TS2322: Type 'number' is not assignable to type 'string'.
==== tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts (11 errors) ====
==== tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts (16 errors) ====
function f0() {
var [] = [1, "hello"];
var [x] = [1, "hello"];
var [x, y] = [1, "hello"];
var [x, y, z] = [1, "hello"]; // Error
var [,, z] = [0, 1, 2];
~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'z' must be of type 'any', but here has type 'number'.
var [x, y, z] = [1, "hello"];
var [,, x] = [0, 1, 2];
var x: number;
var y: string;
}
@@ -40,14 +43,26 @@ tests/cases/conformance/es6/destructuring/declarationsAndAssignments.ts(138,9):
}
function f2() {
var { } = { x: 5, y: "hello" };
var { x } = { x: 5, y: "hello" };
var { y } = { x: 5, y: "hello" };
var { } = { x: 5, y: "hello" }; // Error, no x and y in target
~
!!! error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{}'.
~
!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{}'.
var { x } = { x: 5, y: "hello" }; // Error, no y in target
~
!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{ x: any; }'.
var { y } = { x: 5, y: "hello" }; // Error, no x in target
~
!!! error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{ y: any; }'.
var { x, y } = { x: 5, y: "hello" };
var x: number;
var y: string;
var { x: a } = { x: 5, y: "hello" };
var { y: b } = { x: 5, y: "hello" };
var { x: a } = { x: 5, y: "hello" }; // Error, no y in target
~
!!! error TS2353: Object literal may only specify known properties, and 'y' does not exist in type '{ x: any; }'.
var { y: b } = { x: 5, y: "hello" }; // Error, no x in target
~
!!! error TS2353: Object literal may only specify known properties, and 'x' does not exist in type '{ y: any; }'.
var { x: a, y: b } = { x: 5, y: "hello" };
var a: number;
var b: string;

View File

@@ -3,8 +3,8 @@ function f0() {
var [] = [1, "hello"];
var [x] = [1, "hello"];
var [x, y] = [1, "hello"];
var [x, y, z] = [1, "hello"]; // Error
var [,, z] = [0, 1, 2];
var [x, y, z] = [1, "hello"];
var [,, x] = [0, 1, 2];
var x: number;
var y: string;
}
@@ -20,14 +20,14 @@ function f1() {
}
function f2() {
var { } = { x: 5, y: "hello" };
var { x } = { x: 5, y: "hello" };
var { y } = { x: 5, y: "hello" };
var { } = { x: 5, y: "hello" }; // Error, no x and y in target
var { x } = { x: 5, y: "hello" }; // Error, no y in target
var { y } = { x: 5, y: "hello" }; // Error, no x in target
var { x, y } = { x: 5, y: "hello" };
var x: number;
var y: string;
var { x: a } = { x: 5, y: "hello" };
var { y: b } = { x: 5, y: "hello" };
var { x: a } = { x: 5, y: "hello" }; // Error, no y in target
var { y: b } = { x: 5, y: "hello" }; // Error, no x in target
var { x: a, y: b } = { x: 5, y: "hello" };
var a: number;
var b: string;
@@ -185,8 +185,8 @@ function f0() {
var _a = [1, "hello"];
var x = [1, "hello"][0];
var _b = [1, "hello"], x = _b[0], y = _b[1];
var _c = [1, "hello"], x = _c[0], y = _c[1], z = _c[2]; // Error
var _d = [0, 1, 2], z = _d[2];
var _c = [1, "hello"], x = _c[0], y = _c[1], z = _c[2];
var _d = [0, 1, 2], x = _d[2];
var x;
var y;
}
@@ -200,14 +200,14 @@ function f1() {
var z;
}
function f2() {
var _a = { x: 5, y: "hello" };
var x = { x: 5, y: "hello" }.x;
var y = { x: 5, y: "hello" }.y;
var _a = { x: 5, y: "hello" }; // Error, no x and y in target
var x = { x: 5, y: "hello" }.x; // Error, no y in target
var y = { x: 5, y: "hello" }.y; // Error, no x in target
var _b = { x: 5, y: "hello" }, x = _b.x, y = _b.y;
var x;
var y;
var a = { x: 5, y: "hello" }.x;
var b = { x: 5, y: "hello" }.y;
var a = { x: 5, y: "hello" }.x; // Error, no y in target
var b = { x: 5, y: "hello" }.y; // Error, no x in target
var _c = { x: 5, y: "hello" }, a = _c.x, b = _c.y;
var a;
var b;

View File

@@ -4,13 +4,17 @@ tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAs
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(3,6): error TS2459: Type 'string | number' has no property 'i' and no string index signature.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(4,6): error TS2459: Type 'string | number | {}' has no property 'i1' and no string index signature.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(5,12): error TS2459: Type '{ f212: string; }' has no property 'f21' and no string index signature.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(5,21): error TS2353: Object literal may only specify known properties, and 'f212' does not exist in type '{ f21: any; }'.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(6,7): error TS1180: Property destructuring pattern expected.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(7,5): error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{ d1: any; }'.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(7,11): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type '{ d1: any; }'.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(7,24): error TS2353: Object literal may only specify known properties, and 'e' does not exist in type '{ d1: any; }'.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(9,7): error TS1005: ':' expected.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(9,15): error TS1005: ':' expected.
tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(10,12): error TS1005: ':' expected.
==== tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts (9 errors) ====
==== tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts (13 errors) ====
// Error
var {h?} = { h?: 1 };
~
@@ -27,10 +31,18 @@ tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAs
var { f2: {f21} = { f212: "string" } }: any = undefined;
~~~
!!! error TS2459: Type '{ f212: string; }' has no property 'f21' and no string index signature.
~~~~
!!! error TS2353: Object literal may only specify known properties, and 'f212' does not exist in type '{ f21: any; }'.
var { ...d1 } = {
~~~
!!! error TS1180: Property destructuring pattern expected.
a: 1, b: 1, d1: 9, e: 10
~
!!! error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{ d1: any; }'.
~
!!! error TS2353: Object literal may only specify known properties, and 'b' does not exist in type '{ d1: any; }'.
~
!!! error TS2353: Object literal may only specify known properties, and 'e' does not exist in type '{ d1: any; }'.
}
var {1} = { 1 };
~

View File

@@ -3,6 +3,7 @@
function f1({ x, y }) { }
f1({ x: 1, y: 1 });
// (arg: { x: any, y?: number }) => void
function f2({ x, y = 0 }) { }
f2({ x: 1 });
f2({ x: 1, y: 1 });
@@ -58,6 +59,7 @@ function f1(_a) {
var x = _a.x, y = _a.y;
}
f1({ x: 1, y: 1 });
// (arg: { x: any, y?: number }) => void
function f2(_a) {
var x = _a.x, _b = _a.y, y = _b === void 0 ? 0 : _b;
}

View File

@@ -10,141 +10,142 @@ f1({ x: 1, y: 1 });
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 2, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 2, 10))
// (arg: { x: any, y?: number }) => void
function f2({ x, y = 0 }) { }
>f2 : Symbol(f2, Decl(destructuringWithLiteralInitializers.ts, 2, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 4, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 4, 16))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 5, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 5, 16))
f2({ x: 1 });
>f2 : Symbol(f2, Decl(destructuringWithLiteralInitializers.ts, 2, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 5, 4))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 6, 4))
f2({ x: 1, y: 1 });
>f2 : Symbol(f2, Decl(destructuringWithLiteralInitializers.ts, 2, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 6, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 6, 10))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 7, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 7, 10))
// (arg: { x?: number, y?: number }) => void
function f3({ x = 0, y = 0 }) { }
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 6, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 9, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 9, 20))
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 7, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 10, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 10, 20))
f3({});
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 6, 19))
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 7, 19))
f3({ x: 1 });
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 6, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 11, 4))
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 7, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 12, 4))
f3({ y: 1 });
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 6, 19))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 12, 4))
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 7, 19))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 13, 4))
f3({ x: 1, y: 1 });
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 6, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 13, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 13, 10))
>f3 : Symbol(f3, Decl(destructuringWithLiteralInitializers.ts, 7, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 14, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 14, 10))
// (arg?: { x: number, y: number }) => void
function f4({ x, y } = { x: 0, y: 0 }) { }
>f4 : Symbol(f4, Decl(destructuringWithLiteralInitializers.ts, 13, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 16, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 16, 16))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 16, 24))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 16, 30))
>f4 : Symbol(f4, Decl(destructuringWithLiteralInitializers.ts, 14, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 17, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 17, 16))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 17, 24))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 17, 30))
f4();
>f4 : Symbol(f4, Decl(destructuringWithLiteralInitializers.ts, 13, 19))
>f4 : Symbol(f4, Decl(destructuringWithLiteralInitializers.ts, 14, 19))
f4({ x: 1, y: 1 });
>f4 : Symbol(f4, Decl(destructuringWithLiteralInitializers.ts, 13, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 18, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 18, 10))
>f4 : Symbol(f4, Decl(destructuringWithLiteralInitializers.ts, 14, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 19, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 19, 10))
// (arg?: { x: number, y?: number }) => void
function f5({ x, y = 0 } = { x: 0 }) { }
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 18, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 21, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 21, 16))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 21, 28))
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 19, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 22, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 22, 16))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 22, 28))
f5();
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 18, 19))
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 19, 19))
f5({ x: 1 });
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 18, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 23, 4))
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 19, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 24, 4))
f5({ x: 1, y: 1 });
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 18, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 24, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 24, 10))
>f5 : Symbol(f5, Decl(destructuringWithLiteralInitializers.ts, 19, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 25, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 25, 10))
// (arg?: { x?: number, y?: number }) => void
function f6({ x = 0, y = 0 } = {}) { }
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 24, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 27, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 27, 20))
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 25, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 28, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 28, 20))
f6();
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 24, 19))
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 25, 19))
f6({});
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 24, 19))
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 25, 19))
f6({ x: 1 });
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 24, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 30, 4))
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 25, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 31, 4))
f6({ y: 1 });
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 24, 19))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 31, 4))
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 25, 19))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 32, 4))
f6({ x: 1, y: 1 });
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 24, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 32, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 32, 10))
>f6 : Symbol(f6, Decl(destructuringWithLiteralInitializers.ts, 25, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 33, 4))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 33, 10))
// (arg: [any, any]) => void
function g1([x, y]) { }
>g1 : Symbol(g1, Decl(destructuringWithLiteralInitializers.ts, 32, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 35, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 35, 15))
>g1 : Symbol(g1, Decl(destructuringWithLiteralInitializers.ts, 33, 19))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 36, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 36, 15))
g1([1, 1]);
>g1 : Symbol(g1, Decl(destructuringWithLiteralInitializers.ts, 32, 19))
>g1 : Symbol(g1, Decl(destructuringWithLiteralInitializers.ts, 33, 19))
// (arg: [number, number]) => void
function g2([x = 0, y = 0]) { }
>g2 : Symbol(g2, Decl(destructuringWithLiteralInitializers.ts, 36, 11))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 39, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 39, 19))
>g2 : Symbol(g2, Decl(destructuringWithLiteralInitializers.ts, 37, 11))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 40, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 40, 19))
g2([1, 1]);
>g2 : Symbol(g2, Decl(destructuringWithLiteralInitializers.ts, 36, 11))
>g2 : Symbol(g2, Decl(destructuringWithLiteralInitializers.ts, 37, 11))
// (arg?: [any, any]) => void
function g3([x, y] = []) { }
>g3 : Symbol(g3, Decl(destructuringWithLiteralInitializers.ts, 40, 11))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 43, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 43, 15))
>g3 : Symbol(g3, Decl(destructuringWithLiteralInitializers.ts, 41, 11))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 44, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 44, 15))
g3();
>g3 : Symbol(g3, Decl(destructuringWithLiteralInitializers.ts, 40, 11))
>g3 : Symbol(g3, Decl(destructuringWithLiteralInitializers.ts, 41, 11))
g3([1, 1]);
>g3 : Symbol(g3, Decl(destructuringWithLiteralInitializers.ts, 40, 11))
>g3 : Symbol(g3, Decl(destructuringWithLiteralInitializers.ts, 41, 11))
// (arg?: [number, number]) => void
function g4([x, y] = [0, 0]) { }
>g4 : Symbol(g4, Decl(destructuringWithLiteralInitializers.ts, 45, 11))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 48, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 48, 15))
>g4 : Symbol(g4, Decl(destructuringWithLiteralInitializers.ts, 46, 11))
>x : Symbol(x, Decl(destructuringWithLiteralInitializers.ts, 49, 13))
>y : Symbol(y, Decl(destructuringWithLiteralInitializers.ts, 49, 15))
g4();
>g4 : Symbol(g4, Decl(destructuringWithLiteralInitializers.ts, 45, 11))
>g4 : Symbol(g4, Decl(destructuringWithLiteralInitializers.ts, 46, 11))
g4([1, 1]);
>g4 : Symbol(g4, Decl(destructuringWithLiteralInitializers.ts, 45, 11))
>g4 : Symbol(g4, Decl(destructuringWithLiteralInitializers.ts, 46, 11))

View File

@@ -14,6 +14,7 @@ f1({ x: 1, y: 1 });
>y : number
>1 : number
// (arg: { x: any, y?: number }) => void
function f2({ x, y = 0 }) { }
>f2 : ({ x, y = 0 }: { x: any; y?: number; }) => void
>x : any

View File

@@ -0,0 +1,17 @@
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(3,18): error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{}'.
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(3,24): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type '{}'.
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(3,32): error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{}'.
==== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts (3 errors) ====
function f({} = {a: 1, b: "2", c: true}) {
~
!!! error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{}'.
~
!!! error TS2353: Object literal may only specify known properties, and 'b' does not exist in type '{}'.
~
!!! error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{}'.
var x, y, z;
}

View File

@@ -1,14 +0,0 @@
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts ===
function f({} = {a: 1, b: "2", c: true}) {
>f : Symbol(f, Decl(emptyObjectBindingPatternParameter04.ts, 0, 0))
>a : Symbol(a, Decl(emptyObjectBindingPatternParameter04.ts, 2, 17))
>b : Symbol(b, Decl(emptyObjectBindingPatternParameter04.ts, 2, 22))
>c : Symbol(c, Decl(emptyObjectBindingPatternParameter04.ts, 2, 30))
var x, y, z;
>x : Symbol(x, Decl(emptyObjectBindingPatternParameter04.ts, 3, 7))
>y : Symbol(y, Decl(emptyObjectBindingPatternParameter04.ts, 3, 10))
>z : Symbol(z, Decl(emptyObjectBindingPatternParameter04.ts, 3, 13))
}

View File

@@ -1,18 +0,0 @@
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts ===
function f({} = {a: 1, b: "2", c: true}) {
>f : ({}?: { a: number; b: string; c: boolean; }) => void
>{a: 1, b: "2", c: true} : { a: number; b: string; c: boolean; }
>a : number
>1 : number
>b : string
>"2" : string
>c : boolean
>true : boolean
var x, y, z;
>x : any
>y : any
>z : any
}