TypeScript/tests/baselines/reference/jsdocTypeFromChainedAssignment2.symbols
Nathan Shively-Sanders aba932aefa
Create synthetic exports symbol for commonjs module (#42655)
* Commonjs module:create synthetic exports symbol

Previously, the `module` identifier in commonjs modules got a synthetic
type with a single property `exports`. The exports property reused the
file's symbol, which, for a module file, gives the correct exported
properties.

However, the name of this symbol was still the filename of the file, not
`exports`. This PR creates a synthetic symbol for `exports` by copying
in a similar way to esModuleInterop's `default` symbol in
`resolveESModuleSymbol` (although the intent there is to strip off
signatures from the symbol).

* correct parent of synthetic symbol
2021-02-05 10:56:03 -08:00

61 lines
1.9 KiB
Plaintext

=== tests/cases/conformance/jsdoc/use.js ===
var mod = require('./mod');
>mod : Symbol(mod, Decl(use.js, 0, 3))
>require : Symbol(require)
>'./mod' : Symbol(mod, Decl(mod.js, 0, 0))
mod.f('no')
>mod.f : Symbol(mod.f, Decl(mod.js, 0, 0))
>mod : Symbol(mod, Decl(use.js, 0, 3))
>f : Symbol(mod.f, Decl(mod.js, 0, 0))
mod.g('also no')
>mod.g : Symbol(mod.g, Decl(mod.js, 1, 11))
>mod : Symbol(mod, Decl(use.js, 0, 3))
>g : Symbol(mod.g, Decl(mod.js, 1, 11))
mod.h(0)
>mod.h : Symbol(mod.h, Decl(mod.js, 3, 1))
>mod : Symbol(mod, Decl(use.js, 0, 3))
>h : Symbol(mod.h, Decl(mod.js, 3, 1))
mod.i(1)
>mod.i : Symbol(mod.i, Decl(mod.js, 5, 18))
>mod : Symbol(mod, Decl(use.js, 0, 3))
>i : Symbol(mod.i, Decl(mod.js, 5, 18))
=== tests/cases/conformance/jsdoc/mod.js ===
/** @param {number} n */
exports.f = exports.g = function fg(n) {
>exports.f : Symbol(f, Decl(mod.js, 0, 0))
>exports : Symbol(f, Decl(mod.js, 0, 0))
>f : Symbol(f, Decl(mod.js, 0, 0))
>exports.g : Symbol(g, Decl(mod.js, 1, 11))
>exports : Symbol(g, Decl(mod.js, 1, 11))
>g : Symbol(g, Decl(mod.js, 1, 11))
>fg : Symbol(fg, Decl(mod.js, 1, 23))
>n : Symbol(n, Decl(mod.js, 1, 36))
return n + 1
>n : Symbol(n, Decl(mod.js, 1, 36))
}
/** @param {string} mom */
module.exports.h = module.exports.i = function hi(mom) {
>module.exports.h : Symbol(h, Decl(mod.js, 3, 1))
>module.exports : Symbol(h, Decl(mod.js, 3, 1))
>module : Symbol(module, Decl(mod.js, 3, 1))
>exports : Symbol(module.exports, Decl(mod.js, 0, 0))
>h : Symbol(h, Decl(mod.js, 3, 1))
>module.exports.i : Symbol(i, Decl(mod.js, 5, 18))
>module.exports : Symbol(i, Decl(mod.js, 5, 18))
>module : Symbol(module, Decl(mod.js, 3, 1))
>exports : Symbol(module.exports, Decl(mod.js, 0, 0))
>i : Symbol(i, Decl(mod.js, 5, 18))
>hi : Symbol(hi, Decl(mod.js, 5, 37))
>mom : Symbol(mom, Decl(mod.js, 5, 50))
return `hi, ${mom}!`;
>mom : Symbol(mom, Decl(mod.js, 5, 50))
}