@@ -228,6 +228,11 @@ module.exports = createRule({
228228
229229 if ( ! calleeDeclaration ) return ;
230230
231+ /** @type {import('typescript').JSDocThrowsTag[] } */
232+ const comments = [ ] ;
233+ comments . push ( ...getJSDocThrowsTags ( calleeDeclaration ) ) ;
234+ throwsComments . set ( getNodeID ( callerDeclaration ) , comments ) ;
235+
231236 const calleeThrowsTypes = getJSDocThrowsTagTypes ( checker , calleeDeclaration ) ;
232237 if ( ! calleeThrowsTypes . length ) return ;
233238
@@ -735,19 +740,34 @@ module.exports = createRule({
735740 */
736741 /**
737742 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of MDN }
743+ * @example
744+ * ```
745+ * for (const item of iterable) { ... }
746+ * // ^ this
747+ * ```
738748 */
739749 'ForOfStatement' ( node ) {
740750 visitIterableNode ( node . right ) ;
741751 } ,
742752 /**
743753 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax MDN }
754+ * @example
755+ * ```
756+ * [...iterable]
757+ * // ^ this
758+ * ```
744759 */
745760 'SpreadElement' ( node ) {
746761 visitIterableNode ( node . argument ) ;
747762 } ,
748763 /**
749764 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from MDN }
750765 * @param {import('@typescript-eslint/utils').TSESTree.CallExpression } node
766+ * @example
767+ * ```
768+ * Array.from(iterable)
769+ * // ^ this
770+ * ```
751771 */
752772 'CallExpression:has(> MemberExpression[object.name="Array"][property.name="from"])' ( node ) {
753773 if ( node . arguments . length < 1 ) return ;
@@ -759,6 +779,11 @@ module.exports = createRule({
759779 /**
760780 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fromAsync MDN }
761781 * @param {import('@typescript-eslint/utils').TSESTree.CallExpression } node
782+ * @example
783+ * ```
784+ * await Array.fromAsync(iterable)
785+ * // ^ this
786+ * ```
762787 */
763788 'CallExpression:has(> MemberExpression[object.name="Array"][property.name="fromAsync"])' ( node ) {
764789 if ( node . arguments . length < 1 ) return ;
@@ -770,6 +795,18 @@ module.exports = createRule({
770795 /**
771796 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield* MDN }
772797 * @param {import('@typescript-eslint/utils').TSESTree.YieldExpression } node
798+ * @example
799+ * ```
800+ * function* gen() {
801+ * yield* iterable;
802+ * // ^ this
803+ * }
804+ * // or
805+ * async function* asyncGen() {
806+ * yield* iterable;
807+ * // ^ this
808+ * }
809+ * ```
773810 */
774811 'YieldExpression[delegate=true]' ( node ) {
775812 if ( ! node . argument ) return ;
@@ -779,6 +816,11 @@ module.exports = createRule({
779816 /**
780817 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Generator/next MDN }
781818 * @param {import('@typescript-eslint/utils').TSESTree.CallExpression } node
819+ * @example
820+ * ```
821+ * iterable.next();
822+ * // ^ this
823+ * ```
782824 */
783825 'CallExpression[callee.property.name="next"]' ( node ) {
784826 if ( node . callee . type !== AST_NODE_TYPES . MemberExpression ) return ;
0 commit comments