tests/cases/compiler/privacyClassExtendsClauseDeclFile_GlobalFile.ts(16,67): error TS4020: 'extends' clause of exported class 'publicClassExtendingPrivateClassInModule' has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(16,67): error TS4020: 'extends' clause of exported class 'publicClassExtendingPrivateClassInModule' has or is using private name 'privateClassInPublicModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(19,77): error TS2449: Class 'publicClassInPrivateModule' used before its declaration.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(21,69): error TS4020: 'extends' clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(21,83): error TS2449: Class 'publicClassInPrivateModule' used before its declaration.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(63,55): error TS4020: 'extends' clause of exported class 'publicClassExtendingPrivateClass' has or is using private name 'privateClass'.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(68,65): error TS4020: 'extends' clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.


==== tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts (6 errors) ====
    export module publicModule {
        export class publicClassInPublicModule {
            private f1() {
            }
        }
    
        class privateClassInPublicModule {
        }
    
        class privateClassExtendingPublicClassInModule extends publicClassInPublicModule {
        }
        class privateClassExtendingPrivateClassInModule extends privateClassInPublicModule {
        }
        export class publicClassExtendingPublicClassInModule extends publicClassInPublicModule {
        }
        export class publicClassExtendingPrivateClassInModule extends privateClassInPublicModule { // Should error
                                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4020: 'extends' clause of exported class 'publicClassExtendingPrivateClassInModule' has or is using private name 'privateClassInPublicModule'.
        }
    
        class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2449: Class 'publicClassInPrivateModule' used before its declaration.
        }
        export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
                                                                        ~~~~~~~~~~~~~
!!! error TS4020: 'extends' clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.
                                                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2449: Class 'publicClassInPrivateModule' used before its declaration.
        }
    }
    
    module privateModule {
        export class publicClassInPrivateModule {
            private f1() {
            }
        }
    
        class privateClassInPrivateModule {
        }
    
        class privateClassExtendingPublicClassInModule extends publicClassInPrivateModule {
        }
        class privateClassExtendingPrivateClassInModule extends privateClassInPrivateModule {
        }
        export class publicClassExtendingPublicClassInModule extends publicClassInPrivateModule {
        }
        export class publicClassExtendingPrivateClassInModule extends privateClassInPrivateModule { 
        }
    
        class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
        }
        export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
        }
    }
    
    export class publicClass {
        private f1() {
        }
    }
    
    class privateClass {
    }
    
    class privateClassExtendingPublicClass extends publicClass {
    }
    class privateClassExtendingPrivateClassInModule extends privateClass {
    }
    export class publicClassExtendingPublicClass extends publicClass {
    }
    export class publicClassExtendingPrivateClass extends privateClass { // Should error
                                                          ~~~~~~~~~~~~
!!! error TS4020: 'extends' clause of exported class 'publicClassExtendingPrivateClass' has or is using private name 'privateClass'.
    }
    
    class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
    }
    export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
                                                                    ~~~~~~~~~~~~~
!!! error TS4020: 'extends' clause of exported class 'publicClassExtendingFromPrivateModuleClass' has or is using private name 'privateModule'.
    }
    
==== tests/cases/compiler/privacyClassExtendsClauseDeclFile_GlobalFile.ts (1 errors) ====
    module publicModuleInGlobal {
        export class publicClassInPublicModule {
            private f1() {
            }
        }
    
        class privateClassInPublicModule {
        }
    
        class privateClassExtendingPublicClassInModule extends publicClassInPublicModule {
        }
        class privateClassExtendingPrivateClassInModule extends privateClassInPublicModule {
        }
        export class publicClassExtendingPublicClassInModule extends publicClassInPublicModule {
        }
        export class publicClassExtendingPrivateClassInModule extends privateClassInPublicModule { // Should error
                                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4020: 'extends' clause of exported class 'publicClassExtendingPrivateClassInModule' has or is using private name 'privateClassInPublicModule'.
        }
    }
    class publicClassInGlobal {
    }
    class publicClassExtendingPublicClassInGlobal extends publicClassInGlobal {
    }
    