tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(19,77): error TS2449: Class 'publicClassInPrivateModule' used before its declaration.
tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts(21,83): error TS2449: Class 'publicClassInPrivateModule' used before its declaration.


==== tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts (2 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
        }
    
        class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2449: Class 'publicClassInPrivateModule' used before its declaration.
!!! related TS2728 tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts:26:18: 'publicClassInPrivateModule' is declared here.
        }
        export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
                                                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2449: Class 'publicClassInPrivateModule' used before its declaration.
!!! related TS2728 tests/cases/compiler/privacyClassExtendsClauseDeclFile_externalModule.ts:26:18: 'publicClassInPrivateModule' is declared here.
        }
    }
    
    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
    }
    
    class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
    }
    export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
    }
    
==== tests/cases/compiler/privacyClassExtendsClauseDeclFile_GlobalFile.ts (0 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
        }
    }
    class publicClassInGlobal {
    }
    class publicClassExtendingPublicClassInGlobal extends publicClassInGlobal {
    }
    