tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(16,9): error TS2459: Type '{}' has no property 's1' and no string index signature.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(22,9): error TS2459: Type '{}' has no property 's1' and no string index signature.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(40,9): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(46,12): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(72,5): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(77,8): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(82,5): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(82,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.ts(87,8): error TS2322: Type 'number' is not assignable to type 'string'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(87,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.ts(113,12): error TS2304: Cannot find name 's'.
tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts(113,14): error TS1312: '=' can only be used in an object literal property inside a destructuring assignment.


==== tests/cases/compiler/shorthandPropertyAssignmentsInDestructuring.ts (12 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 'number' is not assignable to type 'string'.
    	}
    });
    
    (function() {
    	var s3: string;
    	for ({ s3:s3 = 5 } of [{ s3: "" }]) {
    	          ~~
!!! error TS2322: Type 'number' 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 'number' is not assignable to type 'string'.
    });
    
    (function() {
    	let y1: string;
    	({ y1:y1 = 5 } = {})
    	      ~~
!!! 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 '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 y2: string, y3: { x: string };
    	({ y2:y2 = 5, y3:y3 = { x: 1 } } = {})
    	      ~~
!!! 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 }}) {
    }