==== tests/cases/compiler/errorSuperCalls.ts (15 errors) ====
    //super call in class constructor with no base type
    class NoBase {
        constructor() {
            super();
            ~~~~~
!!! errorSuperCalls.ts(4,9): error TS2103: 'super' cannot be referenced in non-derived classes.
        }
    
        //super call in class member function with no base type
        fn() {
            super();
            ~~~~~
!!! errorSuperCalls.ts(9,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
        }
    
        //super call in class accessor (get and set) with no base type
        get foo() {
            super();
            ~~~~~
!!! errorSuperCalls.ts(14,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
            return null;
        }
        set foo(v) {
            super();
            ~~~~~
!!! errorSuperCalls.ts(18,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
        }
    
        //super call in class member initializer with no base type
        p = super();
            ~~~~~
!!! errorSuperCalls.ts(22,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
    
        //super call in static class member function with no base type
        static fn() {
            super();
            ~~~~~
!!! errorSuperCalls.ts(26,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
        }
    
        //super call in static class member initializer with no base type
        static k = super();
                   ~~~~~
!!! errorSuperCalls.ts(30,16): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
    
        //super call in static class accessor (get and set) with no base type
        static get q() {
            super();
            ~~~~~
!!! errorSuperCalls.ts(34,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
            return null;
        }
        static set q(n) {
            super();
            ~~~~~
!!! errorSuperCalls.ts(38,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
        }
    }
    
    class Base<T> { private n: T; }
    class Derived<T> extends Base<T> {
        //super call with type arguments 
        constructor() {
            super<string>();
                 ~
!!! errorSuperCalls.ts(46,14): error TS1005: '.' expected.
                 
!!! errorSuperCalls.ts(46,14): error TS2158: Untyped function calls may not accept type arguments.
            super();
        }
    }
    
    
    class OtherBase {
        private n: string;
    }
    
    class OtherDerived extends OtherBase {
        //super call in class member initializer of derived type
        t = super();
            ~~~~~
!!! errorSuperCalls.ts(58,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
    
        fn() {
            //super call in class member function of derived type
            super();
            ~~~~~
!!! errorSuperCalls.ts(62,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
        }
    
        //super call in class accessor (get and set) of derived type
        get foo() {
            super();
            ~~~~~
!!! errorSuperCalls.ts(67,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
            return null;
        }
        set foo(n) {
            super();
            ~~~~~
!!! errorSuperCalls.ts(71,9): error TS2106: Super calls are not permitted outside constructors or in nested functions inside constructors.
        }
    }
    