TypeScript/tests/baselines/reference/jsdocCatchClauseWithTypeAnnotation.symbols

134 lines
4.9 KiB
Plaintext

=== tests/cases/conformance/jsdoc/foo.js ===
/**
* @typedef {any} Any
*/
/**
* @typedef {unknown} Unknown
*/
function fn() {
>fn : Symbol(fn, Decl(foo.js, 0, 0))
try { } catch (x) { } // should be OK
>x : Symbol(x, Decl(foo.js, 9, 19))
try { } catch (/** @type {any} */ err) { } // should be OK
>err : Symbol(err, Decl(foo.js, 10, 19))
try { } catch (/** @type {Any} */ err) { } // should be OK
>err : Symbol(err, Decl(foo.js, 11, 19))
try { } catch (/** @type {unknown} */ err) { } // should be OK
>err : Symbol(err, Decl(foo.js, 12, 19))
try { } catch (/** @type {Unknown} */ err) { } // should be OK
>err : Symbol(err, Decl(foo.js, 13, 19))
try { } catch (err) { err.foo; } // should be OK
>err : Symbol(err, Decl(foo.js, 14, 19))
>err : Symbol(err, Decl(foo.js, 14, 19))
try { } catch (/** @type {any} */ err) { err.foo; } // should be OK
>err : Symbol(err, Decl(foo.js, 15, 19))
>err : Symbol(err, Decl(foo.js, 15, 19))
try { } catch (/** @type {Any} */ err) { err.foo; } // should be OK
>err : Symbol(err, Decl(foo.js, 16, 19))
>err : Symbol(err, Decl(foo.js, 16, 19))
try { } catch (/** @type {unknown} */ err) { console.log(err); } // should be OK
>err : Symbol(err, Decl(foo.js, 17, 19))
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>err : Symbol(err, Decl(foo.js, 17, 19))
try { } catch (/** @type {Unknown} */ err) { console.log(err); } // should be OK
>err : Symbol(err, Decl(foo.js, 18, 19))
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>err : Symbol(err, Decl(foo.js, 18, 19))
try { } catch (/** @type {unknown} */ err) { err.foo; } // error in the body
>err : Symbol(err, Decl(foo.js, 19, 19))
>err : Symbol(err, Decl(foo.js, 19, 19))
try { } catch (/** @type {Unknown} */ err) { err.foo; } // error in the body
>err : Symbol(err, Decl(foo.js, 20, 19))
>err : Symbol(err, Decl(foo.js, 20, 19))
try { } catch (/** @type {Error} */ err) { } // error in the type
>err : Symbol(err, Decl(foo.js, 21, 19))
try { } catch (/** @type {object} */ err) { } // error in the type
>err : Symbol(err, Decl(foo.js, 22, 19))
try { console.log(); }
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
// @ts-ignore
catch (/** @type {number} */ err) { // e should not be a `number`
>err : Symbol(err, Decl(foo.js, 26, 11))
console.log(err.toLowerCase());
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>err : Symbol(err, Decl(foo.js, 26, 11))
}
// minor bug: shows that the `catch` argument is skipped when checking scope
try { }
catch (err) {
>err : Symbol(err, Decl(foo.js, 32, 8))
/** @type {string} */
let err;
>err : Symbol(err, Decl(foo.js, 34, 5))
}
try { }
catch (err) {
>err : Symbol(err, Decl(foo.js, 37, 8))
/** @type {boolean} */
var err;
>err : Symbol(err, Decl(foo.js, 39, 5))
}
try { } catch ({ x }) { } // should be OK
>x : Symbol(x, Decl(foo.js, 42, 20))
try { } catch (/** @type {any} */ { x }) { x.foo; } // should be OK
>x : Symbol(x, Decl(foo.js, 43, 39))
>x : Symbol(x, Decl(foo.js, 43, 39))
try { } catch (/** @type {Any} */ { x }) { x.foo;} // should be OK
>x : Symbol(x, Decl(foo.js, 44, 39))
>x : Symbol(x, Decl(foo.js, 44, 39))
try { } catch (/** @type {unknown} */ { x }) { console.log(x); } // should be OK
>x : Symbol(x, Decl(foo.js, 45, 43))
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>x : Symbol(x, Decl(foo.js, 45, 43))
try { } catch (/** @type {Unknown} */ { x }) { console.log(x); } // should be OK
>x : Symbol(x, Decl(foo.js, 46, 43))
>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
>x : Symbol(x, Decl(foo.js, 46, 43))
try { } catch (/** @type {Error} */ { x }) { } // error in the type
>x : Symbol(x, Decl(foo.js, 47, 41))
try { } catch (/** @type {object} */ { x }) { } // error in the type
>x : Symbol(x, Decl(foo.js, 48, 42))
}