tests/cases/compiler/capturedParametersInInitializers2.ts(3,20): error TS2373: Parameter 'y' cannot reference identifier 'x' declared after it.
tests/cases/compiler/capturedParametersInInitializers2.ts(4,14): error TS2373: Parameter 'y' cannot reference identifier 'x' declared after it.
tests/cases/compiler/capturedParametersInInitializers2.ts(6,10): error TS2373: Parameter 'y' cannot reference identifier 'z' declared after it.
tests/cases/compiler/capturedParametersInInitializers2.ts(13,26): error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type.
tests/cases/compiler/capturedParametersInInitializers2.ts(13,27): error TS2373: Parameter 'y' cannot reference identifier 'x' declared after it.


==== tests/cases/compiler/capturedParametersInInitializers2.ts (5 errors) ====
    function foo(
        y = class {
            static c = x;
                       ~
!!! error TS2373: Parameter 'y' cannot reference identifier 'x' declared after it.
            get [x]() {return x;}
                 ~
!!! error TS2373: Parameter 'y' cannot reference identifier 'x' declared after it.
            constructor() { x; }
            [z]() { return z; }
             ~
!!! error TS2373: Parameter 'y' cannot reference identifier 'z' declared after it.
        },
        x = 1,
        z = 2
    ) {
        y.c
    }
    function foo2(y = class {[x] = x}, x = 1) {
                             ~~~
!!! error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type.
                              ~
!!! error TS2373: Parameter 'y' cannot reference identifier 'x' declared after it.
    }