diff --git a/tests/baselines/reference/typeFromPropertyAssignment5.errors.txt b/tests/baselines/reference/typeFromPropertyAssignment5.errors.txt new file mode 100644 index 00000000000..9dd6122883c --- /dev/null +++ b/tests/baselines/reference/typeFromPropertyAssignment5.errors.txt @@ -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 + \ No newline at end of file diff --git a/tests/baselines/reference/typeFromPropertyAssignment5.symbols b/tests/baselines/reference/typeFromPropertyAssignment5.symbols new file mode 100644 index 00000000000..b7bdcc138bc --- /dev/null +++ b/tests/baselines/reference/typeFromPropertyAssignment5.symbols @@ -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)) + diff --git a/tests/baselines/reference/typeFromPropertyAssignment5.types b/tests/baselines/reference/typeFromPropertyAssignment5.types new file mode 100644 index 00000000000..7e5a881e431 --- /dev/null +++ b/tests/baselines/reference/typeFromPropertyAssignment5.types @@ -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 + diff --git a/tests/baselines/reference/typeFromPropertyAssignment6.symbols b/tests/baselines/reference/typeFromPropertyAssignment6.symbols new file mode 100644 index 00000000000..da4bf831a43 --- /dev/null +++ b/tests/baselines/reference/typeFromPropertyAssignment6.symbols @@ -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)) + diff --git a/tests/baselines/reference/typeFromPropertyAssignment6.types b/tests/baselines/reference/typeFromPropertyAssignment6.types new file mode 100644 index 00000000000..864c4455c2c --- /dev/null +++ b/tests/baselines/reference/typeFromPropertyAssignment6.types @@ -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[] + diff --git a/tests/baselines/reference/user/chrome-devtools-frontend.log b/tests/baselines/reference/user/chrome-devtools-frontend.log index 5eb20c89457..8fa02f34eb1 100644 --- a/tests/baselines/reference/user/chrome-devtools-frontend.log +++ b/tests/baselines/reference/user/chrome-devtools-frontend.log @@ -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'. diff --git a/tests/cases/conformance/salsa/typeFromPropertyAssignment5.ts b/tests/cases/conformance/salsa/typeFromPropertyAssignment5.ts new file mode 100644 index 00000000000..844f308f9b8 --- /dev/null +++ b/tests/cases/conformance/salsa/typeFromPropertyAssignment5.ts @@ -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 diff --git a/tests/cases/conformance/salsa/typeFromPropertyAssignment6.ts b/tests/cases/conformance/salsa/typeFromPropertyAssignment6.ts new file mode 100644 index 00000000000..136aaf94350 --- /dev/null +++ b/tests/cases/conformance/salsa/typeFromPropertyAssignment6.ts @@ -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() diff --git a/tests/cases/user/chrome-devtools-frontend/tsconfig.json b/tests/cases/user/chrome-devtools-frontend/tsconfig.json index 4997b7f2bc7..49ef4b500ad 100644 --- a/tests/cases/user/chrome-devtools-frontend/tsconfig.json +++ b/tests/cases/user/chrome-devtools-frontend/tsconfig.json @@ -7,6 +7,7 @@ "types": [] }, "include": [ - "./node_modules/chrome-devtools-frontend/front_end/**/*.js" + "./node_modules/chrome-devtools-frontend/front_end/**/*.js", + "definitions.js" ] -} \ No newline at end of file +}