parserAstSpans1.ts(44,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(45,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(46,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(47,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(48,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(49,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(50,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(51,1): error TS2454: Variable 'i1_i' is used before being assigned.
parserAstSpans1.ts(111,25): error TS2855: Class field 'c2_p1' defined by the parent class is not accessible in the child class via super.
parserAstSpans1.ts(182,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(183,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(184,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(185,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(186,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(187,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(188,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(189,1): error TS2454: Variable 'i2_i' is used before being assigned.
parserAstSpans1.ts(190,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(191,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(192,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(193,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(194,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(195,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(196,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(197,1): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(199,8): error TS2454: Variable 'i3_i' is used before being assigned.
parserAstSpans1.ts(217,24): error TS2855: Class field 'b' defined by the parent class is not accessible in the child class via super.


==== parserAstSpans1.ts (27 errors) ====
    /** i1 is interface with properties*/
    interface i1 {
        /** i1_p1*/
        i1_p1: number;
        /** i1_f1*/
        i1_f1(): void;
        /** i1_l1*/
        i1_l1: () => void;
        i1_nc_p1: number;
        i1_nc_f1(): void;
        i1_nc_l1: () => void;
        p1: number;
        f1(): void;
        l1: () => void;
        nc_p1: number;
        nc_f1(): void;
        nc_l1: () => void;
    }
    class c1 implements i1 {
        public i1_p1!: number;
        public i1_f1() {
        }
        public i1_l1!: () => void;
        public i1_nc_p1!: number;
        public i1_nc_f1() {
        }
        public i1_nc_l1!: () => void;
        /** c1_p1*/
        public p1!: number;
        /** c1_f1*/
        public f1() {
        }
        /** c1_l1*/
        public l1!: () => void;
        /** c1_nc_p1*/
        public nc_p1!: number;
        /** c1_nc_f1*/
        public nc_f1() {
        }
        /** c1_nc_l1*/
        public nc_l1!: () => void;
    }
    var i1_i: i1;
    i1_i.i1_f1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    i1_i.i1_nc_f1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    i1_i.f1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    i1_i.nc_f1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    i1_i.i1_l1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    i1_i.i1_nc_l1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    i1_i.l1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    i1_i.nc_l1();
    ~~~~
!!! error TS2454: Variable 'i1_i' is used before being assigned.
    var c1_i = new c1();
    c1_i.i1_f1();
    c1_i.i1_nc_f1();
    c1_i.f1();
    c1_i.nc_f1();
    c1_i.i1_l1();
    c1_i.i1_nc_l1();
    c1_i.l1();
    c1_i.nc_l1();
    // assign to interface
    i1_i = c1_i;
    i1_i.i1_f1();
    i1_i.i1_nc_f1();
    i1_i.f1();
    i1_i.nc_f1();
    i1_i.i1_l1();
    i1_i.i1_nc_l1();
    i1_i.l1();
    i1_i.nc_l1();
    
    class c2 {
        /** c2 c2_p1*/
        public c2_p1: number;
        /** c2 c2_f1*/
        public c2_f1() {
        }
        /** c2 c2_prop*/
        public get c2_prop() {
            return 10;
        }
        public c2_nc_p1!: number;
        public c2_nc_f1() {
        }
        public get c2_nc_prop() {
            return 10;
        }
        /** c2 p1*/
        public p1!: number;
        /** c2 f1*/
        public f1() {
        }
        /** c2 prop*/
        public get prop() {
            return 10;
        }
        public nc_p1!: number;
        public nc_f1() {
        }
        public get nc_prop() {
            return 10;
        }
        /** c2 constructor*/
        constructor(a: number) {
            this.c2_p1 = a;
        }
    }
    class c3 extends c2 {
        constructor() {
            super(10);
            this.p1 = super.c2_p1;
                            ~~~~~
!!! error TS2855: Class field 'c2_p1' defined by the parent class is not accessible in the child class via super.
        }
        /** c3 p1*/
        public p1!: number;
        /** c3 f1*/
        public f1() {
        }
        /** c3 prop*/
        public get prop() {
            return 10;
        }
        public nc_p1!: number;
        public nc_f1() {
        }
        public get nc_prop() {
            return 10;
        }
    }
    var c2_i = new c2(10);
    var c3_i = new c3();
    c2_i.c2_f1();
    c2_i.c2_nc_f1();
    c2_i.f1();
    c2_i.nc_f1();
    c3_i.c2_f1();
    c3_i.c2_nc_f1();
    c3_i.f1();
    c3_i.nc_f1();
    // assign
    c2_i = c3_i;
    c2_i.c2_f1();
    c2_i.c2_nc_f1();
    c2_i.f1();
    c2_i.nc_f1();
    class c4 extends c2 {
    }
    var c4_i = new c4(10);
    
    interface i2 {
        /** i2_p1*/
        i2_p1: number;
        /** i2_f1*/
        i2_f1(): void;
        /** i2_l1*/
        i2_l1: () => void;
        i2_nc_p1: number;
        i2_nc_f1(): void;
        i2_nc_l1: () => void;
        /** i2 p1*/
        p1: number;
        /** i2 f1*/
        f1(): void;
        /** i2 l1*/
        l1: () => void;
        nc_p1: number;
        nc_f1(): void;
        nc_l1: () => void;
    }
    interface i3 extends i2 {
        /** i3 p1*/
        p1: number;
        /** i3 f1*/
        f1(): void;
        /** i3 l1*/
        l1: () => void;
        nc_p1: number;
        nc_f1(): void;
        nc_l1: () => void;
    }
    var i2_i: i2;
    var i3_i: i3;
    i2_i.i2_f1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i2_i.i2_nc_f1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i2_i.f1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i2_i.nc_f1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i2_i.i2_l1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i2_i.i2_nc_l1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i2_i.l1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i2_i.nc_l1();
    ~~~~
!!! error TS2454: Variable 'i2_i' is used before being assigned.
    i3_i.i2_f1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i3_i.i2_nc_f1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i3_i.f1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i3_i.nc_f1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i3_i.i2_l1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i3_i.i2_nc_l1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i3_i.l1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i3_i.nc_l1();
    ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    // assign to interface
    i2_i = i3_i;
           ~~~~
!!! error TS2454: Variable 'i3_i' is used before being assigned.
    i2_i.i2_f1();
    i2_i.i2_nc_f1();
    i2_i.f1();
    i2_i.nc_f1();
    i2_i.i2_l1();
    i2_i.i2_nc_l1();
    i2_i.l1();
    i2_i.nc_l1();
    
    /**c5 class*/
    class c5 {
        public b!: number;
    }
    class c6 extends c5 {
        public d!: any;
        constructor() {
            super();
            this.d = super.b;
                           ~
!!! error TS2855: Class field 'b' defined by the parent class is not accessible in the child class via super.
        }
    }