//// [invalidModuleWithStatementsOfEveryKind.ts]
// All of these should be an error

module Y {
    public class A { s: string }

    public class BB<T> extends A {
        id: number;
    }
}

module Y2 {
    public class AA<T> { s: T }
    public interface I { id: number }

    public class B extends AA<string> implements I { id: number }
}

module Y3 {
    public module Module {
        class A { s: string }
    }
}

module Y4 {
    public enum Color { Blue, Red }
}

module YY {
    private class A { s: string }

    private class BB<T> extends A {
        id: number;
    }
}

module YY2 {
    private class AA<T> { s: T }
    private interface I { id: number }

    private class B extends AA<string> implements I { id: number }
}

module YY3 {
    private module Module {
        class A { s: string }
    }
}

module YY4 {
    private enum Color { Blue, Red }
}


module YYY {
    static class A { s: string }

    static class BB<T> extends A {
        id: number;
    }
}

module YYY2 {
    static class AA<T> { s: T }
    static interface I { id: number }

    static class B extends AA<string> implements I { id: number }
}

module YYY3 {
    static module Module {
        class A { s: string }
    }
}

module YYY4 {
    static enum Color { Blue, Red }
}


//// [invalidModuleWithStatementsOfEveryKind.js]
// All of these should be an error
var __extends = (this && this.__extends) || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var Y;
(function (Y) {
    var A = (function () {
        function A() {
        }
        return A;
    })();
    var BB = (function (_super) {
        __extends(BB, _super);
        function BB() {
            _super.apply(this, arguments);
        }
        return BB;
    })(A);
})(Y || (Y = {}));
var Y2;
(function (Y2) {
    var AA = (function () {
        function AA() {
        }
        return AA;
    })();
    var B = (function (_super) {
        __extends(B, _super);
        function B() {
            _super.apply(this, arguments);
        }
        return B;
    })(AA);
})(Y2 || (Y2 = {}));
var Y3;
(function (Y3) {
    var Module;
    (function (Module) {
        var A = (function () {
            function A() {
            }
            return A;
        })();
    })(Module || (Module = {}));
})(Y3 || (Y3 = {}));
var Y4;
(function (Y4) {
    var Color;
    (function (Color) {
        Color[Color["Blue"] = 0] = "Blue";
        Color[Color["Red"] = 1] = "Red";
    })(Color || (Color = {}));
})(Y4 || (Y4 = {}));
var YY;
(function (YY) {
    var A = (function () {
        function A() {
        }
        return A;
    })();
    var BB = (function (_super) {
        __extends(BB, _super);
        function BB() {
            _super.apply(this, arguments);
        }
        return BB;
    })(A);
})(YY || (YY = {}));
var YY2;
(function (YY2) {
    var AA = (function () {
        function AA() {
        }
        return AA;
    })();
    var B = (function (_super) {
        __extends(B, _super);
        function B() {
            _super.apply(this, arguments);
        }
        return B;
    })(AA);
})(YY2 || (YY2 = {}));
var YY3;
(function (YY3) {
    var Module;
    (function (Module) {
        var A = (function () {
            function A() {
            }
            return A;
        })();
    })(Module || (Module = {}));
})(YY3 || (YY3 = {}));
var YY4;
(function (YY4) {
    var Color;
    (function (Color) {
        Color[Color["Blue"] = 0] = "Blue";
        Color[Color["Red"] = 1] = "Red";
    })(Color || (Color = {}));
})(YY4 || (YY4 = {}));
var YYY;
(function (YYY) {
    var A = (function () {
        function A() {
        }
        return A;
    })();
    var BB = (function (_super) {
        __extends(BB, _super);
        function BB() {
            _super.apply(this, arguments);
        }
        return BB;
    })(A);
})(YYY || (YYY = {}));
var YYY2;
(function (YYY2) {
    var AA = (function () {
        function AA() {
        }
        return AA;
    })();
    var B = (function (_super) {
        __extends(B, _super);
        function B() {
            _super.apply(this, arguments);
        }
        return B;
    })(AA);
})(YYY2 || (YYY2 = {}));
var YYY3;
(function (YYY3) {
    var Module;
    (function (Module) {
        var A = (function () {
            function A() {
            }
            return A;
        })();
    })(Module || (Module = {}));
})(YYY3 || (YYY3 = {}));
var YYY4;
(function (YYY4) {
    var Color;
    (function (Color) {
        Color[Color["Blue"] = 0] = "Blue";
        Color[Color["Red"] = 1] = "Red";
    })(Color || (Color = {}));
})(YYY4 || (YYY4 = {}));
