Tests:more JS static property assignments

export default fails right now; I haven't got it to work and it's not in
dev tools, so I don't know if it's worth the effort.
This commit is contained in:
Nathan Shively-Sanders
2017-11-27 15:20:06 -08:00
parent 4199038652
commit d338ecd6d0
9 changed files with 165 additions and 6 deletions

View File

@@ -0,0 +1,21 @@
tests/cases/conformance/salsa/b.js(2,4): error TS2339: Property 'bar' does not exist on type '() => void'.
tests/cases/conformance/salsa/b.js(3,12): error TS2503: Cannot find namespace 'MC'.
==== tests/cases/conformance/salsa/a.js (0 errors) ====
export default function MyClass() {
}
MyClass.bar = class C {
}
MyClass.bar
==== tests/cases/conformance/salsa/b.js (2 errors) ====
import MC from './a'
MC.bar
~~~
!!! error TS2339: Property 'bar' does not exist on type '() => void'.
/** @type {MC.bar} */
~~
!!! error TS2503: Cannot find namespace 'MC'.
var x

View File

@@ -0,0 +1,22 @@
=== tests/cases/conformance/salsa/a.js ===
export default function MyClass() {
>MyClass : Symbol(MyClass, Decl(a.js, 0, 0))
}
MyClass.bar = class C {
>MyClass : Symbol(MyClass, Decl(a.js, 0, 0))
>C : Symbol(C, Decl(a.js, 2, 13))
}
MyClass.bar
>MyClass : Symbol(MyClass, Decl(a.js, 0, 0))
=== tests/cases/conformance/salsa/b.js ===
import MC from './a'
>MC : Symbol(MC, Decl(b.js, 0, 6))
MC.bar
>MC : Symbol(MC, Decl(b.js, 0, 6))
/** @type {MC.bar} */
var x
>x : Symbol(x, Decl(b.js, 3, 3))

View File

@@ -0,0 +1,30 @@
=== tests/cases/conformance/salsa/a.js ===
export default function MyClass() {
>MyClass : () => void
}
MyClass.bar = class C {
>MyClass.bar = class C {} : typeof C
>MyClass.bar : any
>MyClass : any
>bar : any
>class C {} : typeof C
>C : typeof C
}
MyClass.bar
>MyClass.bar : any
>MyClass : any
>bar : any
=== tests/cases/conformance/salsa/b.js ===
import MC from './a'
>MC : () => void
MC.bar
>MC.bar : any
>MC : () => void
>bar : any
/** @type {MC.bar} */
var x
>x : any

View File

@@ -0,0 +1,27 @@
=== tests/cases/conformance/salsa/a.js ===
var Outer = class { }
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
Outer.Inner = class {
>Outer.Inner : Symbol(Outer.Inner, Decl(a.js, 0, 21))
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
>Inner : Symbol(Outer.Inner, Decl(a.js, 0, 21))
messages() { return [] }
>messages : Symbol((Anonymous class).messages, Decl(a.js, 1, 21))
}
/** @type {!Outer.Inner} */
Outer.i
>Outer.i : Symbol(Outer.i, Decl(a.js, 3, 1))
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
>i : Symbol(Outer.i, Decl(a.js, 3, 1))
=== tests/cases/conformance/salsa/b.js ===
var msgs = Outer.i.messages()
>msgs : Symbol(msgs, Decl(b.js, 0, 3))
>Outer.i.messages : Symbol((Anonymous class).messages, Decl(a.js, 1, 21))
>Outer.i : Symbol(Outer.i, Decl(a.js, 3, 1))
>Outer : Symbol(Outer, Decl(a.js, 0, 3), Decl(a.js, 0, 21), Decl(a.js, 3, 1))
>i : Symbol(Outer.i, Decl(a.js, 3, 1))
>messages : Symbol((Anonymous class).messages, Decl(a.js, 1, 21))

View File

@@ -0,0 +1,32 @@
=== tests/cases/conformance/salsa/a.js ===
var Outer = class { }
>Outer : typeof Outer
>class { } : typeof Outer
Outer.Inner = class {
>Outer.Inner = class { messages() { return [] }} : typeof (Anonymous class)
>Outer.Inner : typeof (Anonymous class)
>Outer : typeof Outer
>Inner : typeof (Anonymous class)
>class { messages() { return [] }} : typeof (Anonymous class)
messages() { return [] }
>messages : () => any[]
>[] : undefined[]
}
/** @type {!Outer.Inner} */
Outer.i
>Outer.i : (Anonymous class)
>Outer : typeof Outer
>i : (Anonymous class)
=== tests/cases/conformance/salsa/b.js ===
var msgs = Outer.i.messages()
>msgs : any[]
>Outer.i.messages() : any[]
>Outer.i.messages : () => any[]
>Outer.i : (Anonymous class)
>Outer : typeof Outer
>i : (Anonymous class)
>messages : () => any[]

View File

@@ -1773,15 +1773,11 @@ node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(150,44): error TS2694: Namespace '"/home/nathansa/ts/tests/cases/user/chrome-devtools-frontend/node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer".CriticalRequestChainRenderer' has no exported member 'CRCDetailsJSON'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(158,9): error TS2304: Cannot find name 'Util'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(161,9): error TS2304: Cannot find name 'Util'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(182,3): error TS2309: An export assignment cannot be used in a module with other exported elements.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(184,8): error TS2339: Property 'CriticalRequestChainRenderer' does not exist on type 'Window'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(188,2): error TS1131: Property or signature expected.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(194,30): error TS2339: Property 'CRCDetailsJSON' does not exist on type 'typeof CriticalRequestChainRenderer'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(197,2): error TS1131: Property or signature expected.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(204,30): error TS2339: Property 'CRCRequest' does not exist on type 'typeof CriticalRequestChainRenderer'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(211,30): error TS2339: Property 'CRCNode' does not exist on type 'typeof CriticalRequestChainRenderer'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(214,30): error TS2339: Property 'CRCNode' does not exist on type 'typeof CriticalRequestChainRenderer'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(217,30): error TS2339: Property 'CRCNode' does not exist on type 'typeof CriticalRequestChainRenderer'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(220,2): error TS1131: Property or signature expected.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(228,30): error TS2339: Property 'CRCSegment' does not exist on type 'typeof CriticalRequestChainRenderer'.
node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(12,15): error TS2304: Cannot find name 'DOM'.

View File

@@ -0,0 +1,16 @@
// @noEmit: true
// @allowJs: true
// @checkJs: true
// @Filename: a.js
// @target: es6
export default function MyClass() {
}
MyClass.bar = class C {
}
MyClass.bar
// @Filename: b.js
import MC from './a'
MC.bar
/** @type {MC.bar} */
var x

View File

@@ -0,0 +1,14 @@
// @noEmit: true
// @allowJs: true
// @checkJs: true
// @Filename: a.js
// @target: es6
var Outer = class { }
Outer.Inner = class {
messages() { return [] }
}
/** @type {!Outer.Inner} */
Outer.i
// @Filename: b.js
var msgs = Outer.i.messages()

View File

@@ -7,6 +7,7 @@
"types": []
},
"include": [
"./node_modules/chrome-devtools-frontend/front_end/**/*.js"
"./node_modules/chrome-devtools-frontend/front_end/**/*.js",
"definitions.js"
]
}
}