3d7ec8aab2
* Improve @template lookup and resilience 1. @template parsing may produce a template tag with a type parameter whose name is the missing identifier. These tags should be skipped in the checker because they receive an error in the parser. 2. The fix in #37819 was incorrect; there's no such thing as a type parameter declared on a variable declaration. Instead, there needs to be a type parameter declared on a jsdoc comment, because that's the scope for tags like `@return` and `@typedef`. There are 3 tests because either fix (1) and (2) fix the first test's failure, but both are required to fix the last two tests' failures. * remove containsParseError call
30 lines
761 B
Plaintext
30 lines
761 B
Plaintext
=== tests/cases/conformance/jsdoc/jsdocOuterTypeParameters1.js ===
|
|
/** @return {T} */
|
|
const dedupingMixin = function(mixin) {};
|
|
>dedupingMixin : (mixin: any) => T
|
|
>function(mixin) {} : (mixin: any) => T
|
|
>mixin : any
|
|
|
|
/** @template T */
|
|
const PropertyAccessors = dedupingMixin(() => {
|
|
>PropertyAccessors : T
|
|
>dedupingMixin(() => { class Bar { static bar() { this.prototype.foo(); } }}) : T
|
|
>dedupingMixin : (mixin: any) => T
|
|
>() => { class Bar { static bar() { this.prototype.foo(); } }} : () => void
|
|
|
|
class Bar {
|
|
>Bar : Bar
|
|
|
|
static bar() { this.prototype.foo(); }
|
|
>bar : () => void
|
|
>this.prototype.foo() : any
|
|
>this.prototype.foo : any
|
|
>this.prototype : Bar
|
|
>this : typeof Bar
|
|
>prototype : Bar
|
|
>foo : any
|
|
}
|
|
});
|
|
|
|
|