tests/cases/compiler/convertKeywordsYes.ts(175,12): error TS18006: Classes may not have a field named 'constructor'.
tests/cases/compiler/convertKeywordsYes.ts(292,11): error TS1213: Identifier expected. 'implements' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(293,11): error TS1213: Identifier expected. 'interface' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(294,11): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(296,11): error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(297,11): error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(298,11): error TS1213: Identifier expected. 'protected' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(299,11): error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(301,11): error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
tests/cases/compiler/convertKeywordsYes.ts(303,11): error TS1213: Identifier expected. 'yield' is a reserved word in strict mode. Class definitions are automatically in strict mode.


==== tests/cases/compiler/convertKeywordsYes.ts (10 errors) ====
    // reserved ES5 future in strict mode
    
    var constructor = 0;
    var any = 0;
    var boolean = 0;
    var implements = 0;
    var interface = 0;
    var let = 0;
    var module = 0;
    var number = 0;
    var package = 0;
    var private = 0;
    var protected = 0;
    var public = 0;
    var set = 0;
    var static = 0;
    var string = 0;
    var get = 0;
    var yield = 0;
    var declare = 0;
    
    function bigGeneric<
        constructor,
        implements ,
        interface ,
        let,
        module ,
        package,
        private ,
        protected,
        public ,
        set ,
        static ,
        get ,
        yield,
        declare
        >(c: constructor,
        a: any,
        b2: boolean,
        i: implements ,
        i2: interface ,
        l: let,
        m: module ,
        n: number,
        p: package,
        p2: private ,
        p3: protected,
        p4: public ,
        s: set ,
        s2: static ,
        s3: string,
        g: get ,
        y: yield,
        d: declare ) { }
    
    var bigObject = {
        constructor: 0,
        any: 0,
        boolean: 0,
        implements: 0,
        interface: 0,
        let: 0,
        module: 0,
        number: 0,
        package: 0,
        private: 0,
        protected: 0,
        public: 0,
        set: 0,
        static: 0,
        string: 0,
        get: 0,
        yield: 0,
        break: 0,
        case: 0,
        catch: 0,
        class: 0,
        continue: 0,
        const: 0,
    
        debugger: 0,
        declare: 0,
        default: 0,
        delete: 0,
        do: 0,
        else: 0,
        enum: 0,
        export: 0,
        extends: 0,
        false: 0,
        finally: 0,
        for: 0,
        function: 0,
        if: 0,
    
        import: 0,
        in: 0,
        instanceof: 0,
        new: 0,
        null: 0,
        return: 0,
        super: 0,
        switch: 0,
        this: 0,
        throw: 0,
        true: 0,
        try: 0,
        typeof: 0,
        var: 0,
        void: 0,
        while: 0,
        with: 0,
    };
    
    interface bigInterface {
        constructor;
        any;
        boolean;
        implements;
        interface;
        let;
        module;
        number;
        package;
        private;
        protected;
        public;
        set;
        static;
        string;
        get;
        yield;
        break;
        case;
        catch;
        class;
        continue;
        const;
    
        debugger;
        declare;
        default;
        delete;
        do;
        else;
        enum;
        export;
        extends;
        false;
        finally;
        for;
        function;
        if;
    
        import;
        in;
        instanceof;
        new;
        null;
        return;
        super;
        switch;
        this;
        throw;
        true;
        try;
        typeof;
        var;
        void;
        while;
        with;
    }
    
    class bigClass {
        public "constructor" = 0;
               ~~~~~~~~~~~~~
!!! error TS18006: Classes may not have a field named 'constructor'.
        public any = 0;
        public boolean = 0;
        public implements = 0;
        public interface = 0;
        public let = 0;
        public module = 0;
        public number = 0;
        public package = 0;
        public private = 0;
        public protected = 0;
        public public = 0;
        public set = 0;
        public static = 0;
        public string = 0;
        public get = 0;
        public yield = 0;
        public break = 0;
        public case = 0;
        public catch = 0;
        public class = 0;
        public continue = 0;
        public const = 0;
        public debugger = 0;
        public declare = 0;
        public default = 0;
        public delete = 0;
        public do = 0;
        public else = 0;
        public enum = 0;
        public export = 0;
        public extends = 0;
        public false = 0;
        public finally = 0;
        public for = 0;
        public function = 0;
        public if = 0;
        public import = 0;
        public in = 0;
        public instanceof = 0;
        public new = 0;
        public null = 0;
        public return = 0;
        public super = 0;
        public switch = 0;
        public this = 0;
        public throw = 0;
        public true = 0;
        public try = 0;
        public typeof = 0;
        public var = 0;
        public void = 0;
        public while = 0;
        public with = 0;
    }
    
    enum bigEnum {
        constructor,
        any,
        boolean,
        implements,
        interface,
        let,
        module,
        number,
        package,
        private,
        protected,
        public,
        set,
        static,
        string,
        get,
        yield,
        break,
        case,
        catch,
        class,
        continue,
        const,
    
        debugger,
        declare,
        default,
        delete,
        do,
        else,
        enum,
        export,
        extends,
        false,
        finally,
        for,
        function,
        if,
    
        import,
        in,
        instanceof,
        new,
        null,
        return,
        super,
        switch,
        this,
        throw,
        true,
        try,
        typeof,
        var,
        void,
        while,
        with,
    }
    
    module bigModule {
        class constructor { }
        class implements { }
              ~~~~~~~~~~
!!! error TS1213: Identifier expected. 'implements' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class interface { }
              ~~~~~~~~~
!!! error TS1213: Identifier expected. 'interface' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class let { }
              ~~~
!!! error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class module { }
        class package { }
              ~~~~~~~
!!! error TS1213: Identifier expected. 'package' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class private { }
              ~~~~~~~
!!! error TS1213: Identifier expected. 'private' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class protected { }
              ~~~~~~~~~
!!! error TS1213: Identifier expected. 'protected' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class public { }
              ~~~~~~
!!! error TS1213: Identifier expected. 'public' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class set { }
        class static { }
              ~~~~~~
!!! error TS1213: Identifier expected. 'static' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class get { }
        class yield { }
              ~~~~~
!!! error TS1213: Identifier expected. 'yield' is a reserved word in strict mode. Class definitions are automatically in strict mode.
        class declare { }
    }