tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(2,31): error TS1187: A parameter property may not be declared using a binding pattern.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(3,59): error TS2339: Property 'b' does not exist on type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(3,83): error TS2339: Property 'c' does not exist on type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(4,18): error TS2339: Property 'a' does not exist on type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(9,21): error TS2339: Property 'a' does not exist on type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(13,21): error TS2339: Property 'b' does not exist on type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(17,21): error TS2339: Property 'c' does not exist on type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(22,24): error TS2684: The 'this' context of type 'C1<number, boolean, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
  Type 'number' is not assignable to type 'T'.
    'T' could be instantiated with an arbitrary type which could be unrelated to 'number'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(22,34): error TS2684: The 'this' context of type 'C1<number, boolean, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(22,44): error TS2684: The 'this' context of type 'C1<number, boolean, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(25,24): error TS2684: The 'this' context of type 'C1<number, boolean, boolean>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
  Type 'number' is not assignable to type 'T'.
    'T' could be instantiated with an arbitrary type which could be unrelated to 'number'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(25,34): error TS2684: The 'this' context of type 'C1<number, boolean, boolean>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(25,44): error TS2684: The 'this' context of type 'C1<number, boolean, boolean>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(28,24): error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
  Type 'number' is not assignable to type 'T'.
    'T' could be instantiated with an arbitrary type which could be unrelated to 'number'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(28,34): error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(28,44): error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(31,24): error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(31,34): error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts(31,44): error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.


==== tests/cases/conformance/es6/destructuring/destructuringParameterProperties3.ts (19 errors) ====
    class C1<T, U, V> {
        constructor(private k: T, private [a, b, c]: [T,U,V]) {
                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1187: A parameter property may not be declared using a binding pattern.
            if ((b === undefined && c === undefined) || (this.b === undefined && this.c === undefined)) {
                                                              ~
!!! error TS2339: Property 'b' does not exist on type 'C1<T, U, V>'.
                                                                                      ~
!!! error TS2339: Property 'c' does not exist on type 'C1<T, U, V>'.
                this.a = a || k;
                     ~
!!! error TS2339: Property 'a' does not exist on type 'C1<T, U, V>'.
            }
        }
    
        public getA() {
            return this.a
                        ~
!!! error TS2339: Property 'a' does not exist on type 'C1<T, U, V>'.
        }
    
        public getB() {
            return this.b
                        ~
!!! error TS2339: Property 'b' does not exist on type 'C1<T, U, V>'.
        }
    
        public getC() {
            return this.c;
                        ~
!!! error TS2339: Property 'c' does not exist on type 'C1<T, U, V>'.
        }
    }
    
    var x = new C1(undefined, [0, true, ""]);
    var [x_a, x_b, x_c] = [x.getA(), x.getB(), x.getC()];
                           ~
!!! error TS2684: The 'this' context of type 'C1<number, boolean, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
!!! error TS2684:   Type 'number' is not assignable to type 'T'.
!!! error TS2684:     'T' could be instantiated with an arbitrary type which could be unrelated to 'number'.
                                     ~
!!! error TS2684: The 'this' context of type 'C1<number, boolean, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
                                               ~
!!! error TS2684: The 'this' context of type 'C1<number, boolean, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
    
    var y = new C1(10, [0, true, true]);
    var [y_a, y_b, y_c] = [y.getA(), y.getB(), y.getC()];
                           ~
!!! error TS2684: The 'this' context of type 'C1<number, boolean, boolean>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
!!! error TS2684:   Type 'number' is not assignable to type 'T'.
!!! error TS2684:     'T' could be instantiated with an arbitrary type which could be unrelated to 'number'.
                                     ~
!!! error TS2684: The 'this' context of type 'C1<number, boolean, boolean>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
                                               ~
!!! error TS2684: The 'this' context of type 'C1<number, boolean, boolean>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
    
    var z = new C1(10, [undefined, "", ""]);
    var [z_a, z_b, z_c] = [z.getA(), z.getB(), z.getC()];
                           ~
!!! error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
!!! error TS2684:   Type 'number' is not assignable to type 'T'.
!!! error TS2684:     'T' could be instantiated with an arbitrary type which could be unrelated to 'number'.
                                     ~
!!! error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
                                               ~
!!! error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
    
    var w = new C1(10, [undefined, undefined, undefined]);
    var [z_a, z_b, z_c] = [z.getA(), z.getB(), z.getC()];
                           ~
!!! error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
                                     ~
!!! error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
                                               ~
!!! error TS2684: The 'this' context of type 'C1<10, string, string>' is not assignable to method's 'this' of type 'C1<T, U, V>'.
    