tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(14,9): error TS2459: Type '{}' has no property 's1' and no string index signature.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(20,9): error TS2459: Type '{}' has no property 's1' and no string index signature.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(38,9): error TS2322: Type '5' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(44,12): error TS2322: Type '5' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(70,5): error TS2322: Type '5' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(75,8): error TS2322: Type '5' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(75,8): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(80,5): error TS2322: Type '5' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(80,13): error TS2322: Type '{ x: number; }' is not assignable to type '{ x: string; }'.
  Types of property 'x' are incompatible.
    Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(85,8): error TS2322: Type '5' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(85,8): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(85,19): error TS2322: Type '{ x: number; }' is not assignable to type '{ x: string; }'.
  Types of property 'x' are incompatible.
    Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(111,12): error TS2304: Cannot find name 's'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts(111,14): error TS1312: '=' can only be used in an object literal property inside a destructuring assignment.


==== tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring_ES6.ts (14 errors) ====
    (function() {
    	var s0;
    	for ({ s0 = 5 } of [{ s0: 1 }]) {
    	}
    });
    (function() {
    	var s0;
    	for ({ s0:s0 = 5 } of [{ s0: 1 }]) {
    	}
    });
    
    (function() {
    	var s1;
    	for ({ s1 = 5 } of [{}]) {
    	       ~~
!!! error TS2459: Type '{}' has no property 's1' and no string index signature.
    	}
    });
    
    (function() {
    	var s1;
    	for ({ s1:s1 = 5 } of [{}]) {
    	       ~~
!!! error TS2459: Type '{}' has no property 's1' and no string index signature.
    	}
    });
    
    (function() {
    	var s2;
    	for ({ s2 = 5 } of [{ s2: "" }]) {
    	}
    });
    
    (function() {
    	var s2;
    	for ({ s2:s2 = 5 } of [{ s2: "" }]) {
    	}
    });
    
    (function() {
    	var s3: string;
    	for ({ s3 = 5 } of [{ s3: "" }]) {
    	       ~~
!!! error TS2322: Type '5' is not assignable to type 'string'.
    	}
    });
    
    (function() {
    	var s3: string;
    	for ({ s3:s3 = 5 } of [{ s3: "" }]) {
    	          ~~
!!! error TS2322: Type '5' is not assignable to type 'string'.
    	}
    });
    
    (function() {
    	let y;
    	({ y = 5 } = { y: 1 })
    });
    
    (function() {
    	let y;
    	({ y:y = 5 } = { y: 1 })
    });
    
    (function() {
    	let y0: number;
    	({ y0 = 5 } = { y0: 1 })
    });
    
    (function() {
    	let y0: number;
    	({ y0:y0 = 5 } = { y0: 1 })
    });
    
    (function() {
    	let y1: string;
    	({ y1 = 5 } = {})
    	   ~~
!!! error TS2322: Type '5' is not assignable to type 'string'.
    });
    
    (function() {
    	let y1: string;
    	({ y1:y1 = 5 } = {})
    	      ~~
!!! error TS2322: Type '5' is not assignable to type 'string'.
    	      ~~
!!! error TS2322: Type 'number' is not assignable to type 'string'.
    });
    
    (function() {
    	let y2: string, y3: { x: string };
    	({ y2 = 5, y3 = { x: 1 } } = {})
    	   ~~
!!! error TS2322: Type '5' is not assignable to type 'string'.
    	           ~~
!!! error TS2322: Type '{ x: number; }' is not assignable to type '{ x: string; }'.
!!! error TS2322:   Types of property 'x' are incompatible.
!!! error TS2322:     Type 'number' is not assignable to type 'string'.
    });
    
    (function() {
    	let y2: string, y3: { x: string };
    	({ y2:y2 = 5, y3:y3 = { x: 1 } } = {})
    	      ~~
!!! error TS2322: Type '5' is not assignable to type 'string'.
    	      ~~
!!! error TS2322: Type 'number' is not assignable to type 'string'.
    	                 ~~
!!! error TS2322: Type '{ x: number; }' is not assignable to type '{ x: string; }'.
!!! error TS2322:   Types of property 'x' are incompatible.
!!! error TS2322:     Type 'number' is not assignable to type 'string'.
    });
    
    (function() {
    	let y4: number, y5: { x: number };
    	({ y4 = 5, y5 = { x: 1 } } = {})
    });
    
    (function() {
    	let y4: number, y5: { x: number };
    	({ y4:y4 = 5, y5:y5 = { x: 1 } } = {})
    });
    
    
    (function() {
    	let z;
    	({ z = { x: 5 } } = { z: { x: 1 } });
    });
    
    
    (function() {
    	let z;
    	({ z:z = { x: 5 } } = { z: { x: 1 } });
    });
    
    (function() {
    	let a = { s = 5 };
    	          ~
!!! error TS2304: Cannot find name 's'.
    	            ~
!!! error TS1312: '=' can only be used in an object literal property inside a destructuring assignment.
    });
    
    function foo({a = 4, b = { x: 5 }}) {
    }