invalidModuleWithStatementsOfEveryKind.ts(4,5): error TS1044: 'public' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(4,22): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(6,5): error TS1044: 'public' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(7,9): error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(12,5): error TS1044: 'public' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(12,26): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(13,5): error TS1044: 'public' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(15,5): error TS1044: 'public' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(15,54): error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(19,5): error TS1044: 'public' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(20,19): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(25,5): error TS1044: 'public' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(29,5): error TS1044: 'private' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(29,23): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(31,5): error TS1044: 'private' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(32,9): error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(37,5): error TS1044: 'private' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(37,27): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(38,5): error TS1044: 'private' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(40,5): error TS1044: 'private' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(40,55): error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(44,5): error TS1044: 'private' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(45,19): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(50,5): error TS1044: 'private' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(55,5): error TS1044: 'static' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(55,22): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(57,5): error TS1044: 'static' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(58,9): error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(63,5): error TS1044: 'static' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(63,26): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(64,5): error TS1044: 'static' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(66,5): error TS1044: 'static' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(66,54): error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(70,5): error TS1044: 'static' modifier cannot appear on a module or namespace element.
invalidModuleWithStatementsOfEveryKind.ts(71,19): error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
invalidModuleWithStatementsOfEveryKind.ts(76,5): error TS1044: 'static' modifier cannot appear on a module or namespace element.


==== invalidModuleWithStatementsOfEveryKind.ts (36 errors) ====
    // All of these should be an error
    
    namespace Y {
        public class A { s: string }
        ~~~~~~
!!! error TS1044: 'public' modifier cannot appear on a module or namespace element.
                         ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
    
        public class BB<T> extends A {
        ~~~~~~
!!! error TS1044: 'public' modifier cannot appear on a module or namespace element.
            id: number;
            ~~
!!! error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
        }
    }
    
    namespace Y2 {
        public class AA<T> { s: T }
        ~~~~~~
!!! error TS1044: 'public' modifier cannot appear on a module or namespace element.
                             ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
        public interface I { id: number }
        ~~~~~~
!!! error TS1044: 'public' modifier cannot appear on a module or namespace element.
    
        public class B extends AA<string> implements I { id: number }
        ~~~~~~
!!! error TS1044: 'public' modifier cannot appear on a module or namespace element.
                                                         ~~
!!! error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
    }
    
    namespace Y3 {
        public namespace Module {
        ~~~~~~
!!! error TS1044: 'public' modifier cannot appear on a module or namespace element.
            class A { s: string }
                      ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
        }
    }
    
    namespace Y4 {
        public enum Color { Blue, Red }
        ~~~~~~
!!! error TS1044: 'public' modifier cannot appear on a module or namespace element.
    }
    
    namespace YY {
        private class A { s: string }
        ~~~~~~~
!!! error TS1044: 'private' modifier cannot appear on a module or namespace element.
                          ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
    
        private class BB<T> extends A {
        ~~~~~~~
!!! error TS1044: 'private' modifier cannot appear on a module or namespace element.
            id: number;
            ~~
!!! error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
        }
    }
    
    namespace YY2 {
        private class AA<T> { s: T }
        ~~~~~~~
!!! error TS1044: 'private' modifier cannot appear on a module or namespace element.
                              ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
        private interface I { id: number }
        ~~~~~~~
!!! error TS1044: 'private' modifier cannot appear on a module or namespace element.
    
        private class B extends AA<string> implements I { id: number }
        ~~~~~~~
!!! error TS1044: 'private' modifier cannot appear on a module or namespace element.
                                                          ~~
!!! error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
    }
    
    namespace YY3 {
        private namespace Module {
        ~~~~~~~
!!! error TS1044: 'private' modifier cannot appear on a module or namespace element.
            class A { s: string }
                      ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
        }
    }
    
    namespace YY4 {
        private enum Color { Blue, Red }
        ~~~~~~~
!!! error TS1044: 'private' modifier cannot appear on a module or namespace element.
    }
    
    
    namespace YYY {
        static class A { s: string }
        ~~~~~~
!!! error TS1044: 'static' modifier cannot appear on a module or namespace element.
                         ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
    
        static class BB<T> extends A {
        ~~~~~~
!!! error TS1044: 'static' modifier cannot appear on a module or namespace element.
            id: number;
            ~~
!!! error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
        }
    }
    
    namespace YYY2 {
        static class AA<T> { s: T }
        ~~~~~~
!!! error TS1044: 'static' modifier cannot appear on a module or namespace element.
                             ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
        static interface I { id: number }
        ~~~~~~
!!! error TS1044: 'static' modifier cannot appear on a module or namespace element.
    
        static class B extends AA<string> implements I { id: number }
        ~~~~~~
!!! error TS1044: 'static' modifier cannot appear on a module or namespace element.
                                                         ~~
!!! error TS2564: Property 'id' has no initializer and is not definitely assigned in the constructor.
    }
    
    namespace YYY3 {
        static namespace Module {
        ~~~~~~
!!! error TS1044: 'static' modifier cannot appear on a module or namespace element.
            class A { s: string }
                      ~
!!! error TS2564: Property 's' has no initializer and is not definitely assigned in the constructor.
        }
    }
    
    namespace YYY4 {
        static enum Color { Blue, Red }
        ~~~~~~
!!! error TS1044: 'static' modifier cannot appear on a module or namespace element.
    }
    