tests/cases/compiler/dynamicNamesErrors.ts(5,5): error TS2718: Duplicate declaration '[c0]'.
tests/cases/compiler/dynamicNamesErrors.ts(6,5): error TS2718: Duplicate declaration '[c0]'.
tests/cases/compiler/dynamicNamesErrors.ts(19,5): error TS2717: Subsequent property declarations must have the same type.  Property '[c1]' must be of type 'number', but here has type 'string'.
tests/cases/compiler/dynamicNamesErrors.ts(24,1): error TS2322: Type 'T2' is not assignable to type 'T1'.
  Types of property '[c0]' are incompatible.
    Type 'string' is not assignable to type 'number'.
tests/cases/compiler/dynamicNamesErrors.ts(25,1): error TS2322: Type 'T1' is not assignable to type 'T2'.
  Types of property '[c0]' are incompatible.
    Type 'number' is not assignable to type 'string'.
tests/cases/compiler/dynamicNamesErrors.ts(33,6): error TS4033: Property '[x]' of exported interface has or is using private name 'x'.
tests/cases/compiler/dynamicNamesErrors.ts(34,6): error TS4102: Method '[y]' of exported interface has or is using private name 'y'.
tests/cases/compiler/dynamicNamesErrors.ts(38,13): error TS4028: Public static property '[x]' of exported class has or is using private name 'x'.
tests/cases/compiler/dynamicNamesErrors.ts(39,13): error TS4097: Public static method '[y]' of exported class has or is using private name 'y'.
tests/cases/compiler/dynamicNamesErrors.ts(40,17): error TS4028: Public static property '[z]' of exported class has or is using private name 'z'.
tests/cases/compiler/dynamicNamesErrors.ts(41,17): error TS4028: Public static property '[w]' of exported class has or is using private name 'w'.
tests/cases/compiler/dynamicNamesErrors.ts(43,6): error TS4031: Public property '[x]' of exported class has or is using private name 'x'.
tests/cases/compiler/dynamicNamesErrors.ts(44,6): error TS4100: Public method '[y]' of exported class has or is using private name 'y'.
tests/cases/compiler/dynamicNamesErrors.ts(45,10): error TS4031: Public property '[z]' of exported class has or is using private name 'z'.
tests/cases/compiler/dynamicNamesErrors.ts(46,10): error TS4031: Public property '[w]' of exported class has or is using private name 'w'.
tests/cases/compiler/dynamicNamesErrors.ts(50,6): error TS4033: Property '[x]' of exported interface has or is using private name 'x'.
tests/cases/compiler/dynamicNamesErrors.ts(51,6): error TS4102: Method '[y]' of exported interface has or is using private name 'y'.
tests/cases/compiler/dynamicNamesErrors.ts(54,14): error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'w'.
tests/cases/compiler/dynamicNamesErrors.ts(54,14): error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'x'.
tests/cases/compiler/dynamicNamesErrors.ts(54,14): error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'y'.
tests/cases/compiler/dynamicNamesErrors.ts(54,14): error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'z'.


==== tests/cases/compiler/dynamicNamesErrors.ts (21 errors) ====
    const c0 = "1";
    const c1 = 1;
    
    interface T0 {
        [c0]: number;
        ~~~~
!!! error TS2718: Duplicate declaration '[c0]'.
        1: number;
        ~
!!! error TS2718: Duplicate declaration '[c0]'.
    }
    
    interface T1 {
        [c0]: number;
    }
    
    interface T2 {
        [c0]: string;
    }
    
    interface T3 {
        [c0]: number;
        [c1]: string;
        ~~~~
!!! error TS2717: Subsequent property declarations must have the same type.  Property '[c1]' must be of type 'number', but here has type 'string'.
    }
    
    let t1: T1;
    let t2: T2;
    t1 = t2;
    ~~
!!! error TS2322: Type 'T2' is not assignable to type 'T1'.
!!! error TS2322:   Types of property '[c0]' are incompatible.
!!! error TS2322:     Type 'string' is not assignable to type 'number'.
    t2 = t1;
    ~~
!!! error TS2322: Type 'T1' is not assignable to type 'T2'.
!!! error TS2322:   Types of property '[c0]' are incompatible.
!!! error TS2322:     Type 'number' is not assignable to type 'string'.
    
    const x = Symbol();
    const y = Symbol();
    const z = Symbol();
    const w = Symbol();
    
    export interface InterfaceMemberVisibility {
        [x]: number;
         ~
!!! error TS4033: Property '[x]' of exported interface has or is using private name 'x'.
        [y](): number;
         ~
!!! error TS4102: Method '[y]' of exported interface has or is using private name 'y'.
    }
    
    export class ClassMemberVisibility {
        static [x]: number;
                ~
!!! error TS4028: Public static property '[x]' of exported class has or is using private name 'x'.
        static [y](): number { return 0; }
                ~
!!! error TS4097: Public static method '[y]' of exported class has or is using private name 'y'.
        static get [z](): number { return 0; }
                    ~
!!! error TS4028: Public static property '[z]' of exported class has or is using private name 'z'.
        static set [w](value: number) { }
                    ~
!!! error TS4028: Public static property '[w]' of exported class has or is using private name 'w'.
    
        [x]: number;
         ~
!!! error TS4031: Public property '[x]' of exported class has or is using private name 'x'.
        [y](): number { return 0; }
         ~
!!! error TS4100: Public method '[y]' of exported class has or is using private name 'y'.
        get [z](): number { return 0; }
             ~
!!! error TS4031: Public property '[z]' of exported class has or is using private name 'z'.
        set [w](value: number) { }
             ~
!!! error TS4031: Public property '[w]' of exported class has or is using private name 'w'.
    }
    
    export type ObjectTypeVisibility = {
        [x]: number;
         ~
!!! error TS4033: Property '[x]' of exported interface has or is using private name 'x'.
        [y](): number;
         ~
!!! error TS4102: Method '[y]' of exported interface has or is using private name 'y'.
    };
    
    export const ObjectLiteralVisibility = {
                 ~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'w'.
                 ~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'x'.
                 ~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'y'.
                 ~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4025: Exported variable 'ObjectLiteralVisibility' has or is using private name 'z'.
        [x]: 0,
        [y](): number { return 0; },
        get [z](): number { return 0; },
        set [w](value: number) { },
    };