From fa96bd4b01605b9dea8ce97d326af8e99bc589c8 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Tue, 21 Nov 2017 15:03:44 -0800 Subject: [PATCH] More tests and update baselines --- .../typeFromPropertyAssignment.symbols | 4 +-- .../typeFromPropertyAssignment2.symbols | 4 +-- .../typeFromPropertyAssignment3.symbols | 4 +-- .../typeFromPropertyAssignment4.symbols | 25 +++++++++++++++ .../typeFromPropertyAssignment4.types | 32 +++++++++++++++++++ .../salsa/typeFromPropertyAssignment4.ts | 15 +++++++++ 6 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 tests/baselines/reference/typeFromPropertyAssignment4.symbols create mode 100644 tests/baselines/reference/typeFromPropertyAssignment4.types create mode 100644 tests/cases/conformance/salsa/typeFromPropertyAssignment4.ts diff --git a/tests/baselines/reference/typeFromPropertyAssignment.symbols b/tests/baselines/reference/typeFromPropertyAssignment.symbols index e3ae842571d..56237a1358b 100644 --- a/tests/baselines/reference/typeFromPropertyAssignment.symbols +++ b/tests/baselines/reference/typeFromPropertyAssignment.symbols @@ -1,6 +1,6 @@ === tests/cases/conformance/salsa/a.js === var Outer = class O { ->Outer : Symbol(Outer, Decl(a.js, 0, 3)) +>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 2, 1)) >O : Symbol(O, Decl(a.js, 0, 11)) m(x, y) { } @@ -10,7 +10,7 @@ var Outer = class O { } Outer.Inner = class I { >Outer.Inner : Symbol(O.Inner, Decl(a.js, 2, 1)) ->Outer : Symbol(Outer, Decl(a.js, 0, 3)) +>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 2, 1)) >Inner : Symbol(O.Inner, Decl(a.js, 2, 1)) >I : Symbol(I, Decl(a.js, 3, 13)) diff --git a/tests/baselines/reference/typeFromPropertyAssignment2.symbols b/tests/baselines/reference/typeFromPropertyAssignment2.symbols index 64b7be31a32..8b73ba10d3c 100644 --- a/tests/baselines/reference/typeFromPropertyAssignment2.symbols +++ b/tests/baselines/reference/typeFromPropertyAssignment2.symbols @@ -1,13 +1,13 @@ === tests/cases/conformance/salsa/a.js === function Outer() { ->Outer : Symbol(Outer, Decl(a.js, 0, 0)) +>Outer : Symbol(Outer, Decl(a.js, 0, 0), Decl(a.js, 2, 1)) this.y = 2 >y : Symbol(Outer.y, Decl(a.js, 0, 18)) } Outer.Inner = class I { >Outer.Inner : Symbol(Outer.Inner, Decl(a.js, 2, 1)) ->Outer : Symbol(Outer, Decl(a.js, 0, 0)) +>Outer : Symbol(Outer, Decl(a.js, 0, 0), Decl(a.js, 2, 1)) >Inner : Symbol(Outer.Inner, Decl(a.js, 2, 1)) >I : Symbol(I, Decl(a.js, 3, 13)) diff --git a/tests/baselines/reference/typeFromPropertyAssignment3.symbols b/tests/baselines/reference/typeFromPropertyAssignment3.symbols index e8af814862e..bd78393be05 100644 --- a/tests/baselines/reference/typeFromPropertyAssignment3.symbols +++ b/tests/baselines/reference/typeFromPropertyAssignment3.symbols @@ -1,6 +1,6 @@ === tests/cases/conformance/salsa/a.js === var Outer = function O() { ->Outer : Symbol(Outer, Decl(a.js, 0, 3)) +>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 2, 1)) >O : Symbol(O, Decl(a.js, 0, 11)) this.y = 2 @@ -8,7 +8,7 @@ var Outer = function O() { } Outer.Inner = class I { >Outer.Inner : Symbol(O.Inner, Decl(a.js, 2, 1)) ->Outer : Symbol(Outer, Decl(a.js, 0, 3)) +>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 2, 1)) >Inner : Symbol(O.Inner, Decl(a.js, 2, 1)) >I : Symbol(I, Decl(a.js, 3, 13)) diff --git a/tests/baselines/reference/typeFromPropertyAssignment4.symbols b/tests/baselines/reference/typeFromPropertyAssignment4.symbols new file mode 100644 index 00000000000..85031c97a6b --- /dev/null +++ b/tests/baselines/reference/typeFromPropertyAssignment4.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/salsa/a.js === +var Common = {}; +>Common : Symbol(Common, Decl(a.js, 0, 3), Decl(a.js, 0, 16)) + +Common.Outer = class { +>Common : Symbol(Common, Decl(a.js, 0, 3), Decl(a.js, 0, 16)) + + constructor() { + /** @type {number} */ + this.y = 12 +>this.y : Symbol((Anonymous class).y, Decl(a.js, 2, 19)) +>this : Symbol((Anonymous class), Decl(a.js, 1, 14)) +>y : Symbol((Anonymous class).y, Decl(a.js, 2, 19)) + } +} + +/** @type {Common.Outer} */ +var x; +>x : Symbol(x, Decl(a.js, 9, 3)) + +x.y +>x.y : Symbol((Anonymous class).y, Decl(a.js, 2, 19)) +>x : Symbol(x, Decl(a.js, 9, 3)) +>y : Symbol((Anonymous class).y, Decl(a.js, 2, 19)) + diff --git a/tests/baselines/reference/typeFromPropertyAssignment4.types b/tests/baselines/reference/typeFromPropertyAssignment4.types new file mode 100644 index 00000000000..ed5b8596088 --- /dev/null +++ b/tests/baselines/reference/typeFromPropertyAssignment4.types @@ -0,0 +1,32 @@ +=== tests/cases/conformance/salsa/a.js === +var Common = {}; +>Common : { [x: string]: any; } +>{} : { [x: string]: any; } + +Common.Outer = class { +>Common.Outer = class { constructor() { /** @type {number} */ this.y = 12 }} : typeof (Anonymous class) +>Common.Outer : any +>Common : { [x: string]: any; } +>Outer : any +>class { constructor() { /** @type {number} */ this.y = 12 }} : typeof (Anonymous class) + + constructor() { + /** @type {number} */ + this.y = 12 +>this.y = 12 : 12 +>this.y : number +>this : this +>y : number +>12 : 12 + } +} + +/** @type {Common.Outer} */ +var x; +>x : (Anonymous class) + +x.y +>x.y : number +>x : (Anonymous class) +>y : number + diff --git a/tests/cases/conformance/salsa/typeFromPropertyAssignment4.ts b/tests/cases/conformance/salsa/typeFromPropertyAssignment4.ts new file mode 100644 index 00000000000..a01ec8044e7 --- /dev/null +++ b/tests/cases/conformance/salsa/typeFromPropertyAssignment4.ts @@ -0,0 +1,15 @@ +// @noEmit: true +// @allowJs: true +// @checkJs: true +// @Filename: a.js +var Common = {}; +Common.Outer = class { + constructor() { + /** @type {number} */ + this.y = 12 + } +} + +/** @type {Common.Outer} */ +var x; +x.y