TypeScript/tests/baselines/reference/localTypes1.js
2018-09-24 16:12:24 -04:00

332 lines
7.1 KiB
TypeScript

//// [localTypes1.ts]
function f1() {
enum E {
A, B, C
}
class C {
x: E;
}
interface I {
x: E;
}
type A = I[];
let a: A = [new C()];
a[0].x = E.B;
return a;
}
function f2() {
function g() {
enum E {
A, B, C
}
class C {
x: E;
}
interface I {
x: E;
}
type A = I[];
let a: A = [new C()];
a[0].x = E.B;
return a;
}
return g();
}
function f3(b: boolean) {
if (true) {
enum E {
A, B, C
}
if (b) {
class C {
x: E;
}
interface I {
x: E;
}
type A = I[];
let a: A = [new C()];
a[0].x = E.B;
return a;
}
else {
class A {
x: E;
}
interface J {
x: E;
}
type C = J[];
let c: C = [new A()];
c[0].x = E.B;
return c;
}
}
}
function f5() {
var z1 = function () {
enum E {
A, B, C
}
class C {
x: E;
}
return new C();
}
var z2 = () => {
enum E {
A, B, C
}
class C {
x: E;
}
return new C();
}
}
class A {
constructor() {
enum E {
A, B, C
}
class C {
x: E;
}
}
m() {
enum E {
A, B, C
}
class C {
x: E;
}
return new C();
}
get p() {
enum E {
A, B, C
}
class C {
x: E;
}
return new C();
}
}
function f6() {
class A {
a: string;
}
function g() {
class B extends A {
b: string;
}
function h() {
class C extends B {
c: string;
}
var x = new C();
x.a = "a";
x.b = "b";
x.c = "c";
return x;
}
return h();
}
return g();
}
//// [localTypes1.js]
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
function f1() {
var E;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
var C = /** @class */ (function () {
function C() {
}
return C;
}());
var a = [new C()];
a[0].x = E.B;
return a;
}
function f2() {
function g() {
var E;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
var C = /** @class */ (function () {
function C() {
}
return C;
}());
var a = [new C()];
a[0].x = E.B;
return a;
}
return g();
}
function f3(b) {
if (true) {
var E = void 0;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
if (b) {
var C = /** @class */ (function () {
function C() {
}
return C;
}());
var a = [new C()];
a[0].x = E.B;
return a;
}
else {
var A_1 = /** @class */ (function () {
function A() {
}
return A;
}());
var c = [new A_1()];
c[0].x = E.B;
return c;
}
}
}
function f5() {
var z1 = function () {
var E;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
var C = /** @class */ (function () {
function C() {
}
return C;
}());
return new C();
};
var z2 = function () {
var E;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
var C = /** @class */ (function () {
function C() {
}
return C;
}());
return new C();
};
}
var A = /** @class */ (function () {
function A() {
var E;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
var C = /** @class */ (function () {
function C() {
}
return C;
}());
}
A.prototype.m = function () {
var E;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
var C = /** @class */ (function () {
function C() {
}
return C;
}());
return new C();
};
Object.defineProperty(A.prototype, "p", {
get: function () {
var E;
(function (E) {
E[E["A"] = 0] = "A";
E[E["B"] = 1] = "B";
E[E["C"] = 2] = "C";
})(E || (E = {}));
var C = /** @class */ (function () {
function C() {
}
return C;
}());
return new C();
},
enumerable: true,
configurable: true
});
return A;
}());
function f6() {
var A = /** @class */ (function () {
function A() {
}
return A;
}());
function g() {
var B = /** @class */ (function (_super) {
__extends(B, _super);
function B() {
return _super !== null && _super.apply(this, arguments) || this;
}
return B;
}(A));
function h() {
var C = /** @class */ (function (_super) {
__extends(C, _super);
function C() {
return _super !== null && _super.apply(this, arguments) || this;
}
return C;
}(B));
var x = new C();
x.a = "a";
x.b = "b";
x.c = "c";
return x;
}
return h();
}
return g();
}