Accepted baselines.

This commit is contained in:
Daniel Rosenwasser 2017-12-29 12:25:56 -08:00
parent ea94a3430d
commit b899c4921e
4 changed files with 169 additions and 0 deletions

View File

@ -0,0 +1,36 @@
tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts(2,25): error TS2450: Enum 'Enum' used before its declaration.
tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts(2,30): error TS2448: Block-scoped variable 'A' used before its declaration.
tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts(3,31): error TS2448: Block-scoped variable 'ObjLiteral' used before its declaration.
tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts(3,42): error TS2448: Block-scoped variable 'A' used before its declaration.
tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts(4,40): error TS2448: Block-scoped variable 'A' used before its declaration.
==== tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts (5 errors) ====
class Foo {
static enumMember = Enum.A;
~~~~
!!! error TS2450: Enum 'Enum' used before its declaration.
~
!!! error TS2448: Block-scoped variable 'A' used before its declaration.
static objLiteralMember = ObjLiteral.A;
~~~~~~~~~~
!!! error TS2448: Block-scoped variable 'ObjLiteral' used before its declaration.
~
!!! error TS2448: Block-scoped variable 'A' used before its declaration.
static namespaceMember = Namespace.A;
~
!!! error TS2448: Block-scoped variable 'A' used before its declaration.
}
enum Enum {
A
}
const ObjLiteral = {
A: 0
};
namespace Namespace {
export let A = 0
}

View File

@ -0,0 +1,40 @@
//// [classStaticInitializersUsePropertiesBeforeDeclaration.ts]
class Foo {
static enumMember = Enum.A;
static objLiteralMember = ObjLiteral.A;
static namespaceMember = Namespace.A;
}
enum Enum {
A
}
const ObjLiteral = {
A: 0
};
namespace Namespace {
export let A = 0
}
//// [classStaticInitializersUsePropertiesBeforeDeclaration.js]
var Foo = /** @class */ (function () {
function Foo() {
}
Foo.enumMember = Enum.A;
Foo.objLiteralMember = ObjLiteral.A;
Foo.namespaceMember = Namespace.A;
return Foo;
}());
var Enum;
(function (Enum) {
Enum[Enum["A"] = 0] = "A";
})(Enum || (Enum = {}));
var ObjLiteral = {
A: 0
};
var Namespace;
(function (Namespace) {
Namespace.A = 0;
})(Namespace || (Namespace = {}));

View File

@ -0,0 +1,45 @@
=== tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts ===
class Foo {
>Foo : Symbol(Foo, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 0, 0))
static enumMember = Enum.A;
>enumMember : Symbol(Foo.enumMember, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 0, 11))
>Enum.A : Symbol(Enum.A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 6, 11))
>Enum : Symbol(Enum, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 4, 1))
>A : Symbol(Enum.A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 6, 11))
static objLiteralMember = ObjLiteral.A;
>objLiteralMember : Symbol(Foo.objLiteralMember, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 1, 31))
>ObjLiteral.A : Symbol(A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 10, 20))
>ObjLiteral : Symbol(ObjLiteral, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 10, 5))
>A : Symbol(A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 10, 20))
static namespaceMember = Namespace.A;
>namespaceMember : Symbol(Foo.namespaceMember, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 2, 43))
>Namespace.A : Symbol(Namespace.A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 15, 14))
>Namespace : Symbol(Namespace, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 12, 2))
>A : Symbol(Namespace.A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 15, 14))
}
enum Enum {
>Enum : Symbol(Enum, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 4, 1))
A
>A : Symbol(Enum.A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 6, 11))
}
const ObjLiteral = {
>ObjLiteral : Symbol(ObjLiteral, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 10, 5))
A: 0
>A : Symbol(A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 10, 20))
};
namespace Namespace {
>Namespace : Symbol(Namespace, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 12, 2))
export let A = 0
>A : Symbol(A, Decl(classStaticInitializersUsePropertiesBeforeDeclaration.ts, 15, 14))
}

View File

@ -0,0 +1,48 @@
=== tests/cases/compiler/classStaticInitializersUsePropertiesBeforeDeclaration.ts ===
class Foo {
>Foo : Foo
static enumMember = Enum.A;
>enumMember : Enum
>Enum.A : Enum
>Enum : typeof Enum
>A : Enum
static objLiteralMember = ObjLiteral.A;
>objLiteralMember : number
>ObjLiteral.A : number
>ObjLiteral : { A: number; }
>A : number
static namespaceMember = Namespace.A;
>namespaceMember : number
>Namespace.A : number
>Namespace : typeof Namespace
>A : number
}
enum Enum {
>Enum : Enum
A
>A : Enum
}
const ObjLiteral = {
>ObjLiteral : { A: number; }
>{ A: 0} : { A: number; }
A: 0
>A : number
>0 : 0
};
namespace Namespace {
>Namespace : typeof Namespace
export let A = 0
>A : number
>0 : 0
}