==== tests/cases/compiler/super1.ts (5 errors) ====
    // Case 1
    class Base1 {
        public foo() {
            return "base";
        }
    }
    
    class Sub1 extends Base1 {
        public bar() {
            return "base";
        }
    }
    
    class SubSub1 extends Sub1 {
        public bar() {
            return super.super.foo;
                         ~~~~~
!!! super1.ts(16,22): error TS2094: The property 'super' does not exist on value of type 'Sub1'.
        }
    }
    
    // Case 2
    class Base2 {
        public foo() {
            return "base";
        }
    }
    
    class SubE2 extends Base2 {
        public bar() {
            return super.prototype.foo = null;
                         ~~~~~~~~~
!!! super1.ts(29,22): error TS2094: The property 'prototype' does not exist on value of type 'Base2'.
        }
    }
    
    // Case 3
    class Base3 {
        public foo() {
            return "base";
        }
    }
    
    class SubE3 extends Base3 {
        public bar() {
            return super.bar();
                         ~~~
!!! super1.ts(42,22): error TS2094: The property 'bar' does not exist on value of type 'Base3'.
        }
    }
    
    // Case 4
    module Base4 {
        class Sub4 {
            public x(){
                return "hello";
            }
        }
        
        export class SubSub4 extends Sub4{
                                     ~~~~
!!! super1.ts(54,34): error TS2018: Exported class 'SubSub4' extends private class 'Sub4'.
            public x(){
                return super.x();
            }
        }
        
        export class Sub4E {
            public x() {
                return super.x();
                       ~~~~~
!!! super1.ts(62,20): error TS2103: 'super' cannot be referenced in non-derived classes.
            }
        }
    }
    