Fix: Exclude generator functions from convert-to-class suggestions #62066
+47
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Generator functions (
function*
) were incorrectly triggering the TS80002 diagnostic "This constructor function may be converted to a class declaration". This is incorrect because generator functions have special semantics that are incompatible with class constructors.Problem:
The above code would incorrectly trigger the convert-to-class suggestion, even though generator functions cannot be meaningfully converted to classes.
Solution:
Added checks in the
canBeConvertedToClass
function to exclude generator functions by testing forFunctionFlags.Generator
in both function declaration and function expression paths.Changes:
src/services/suggestionDiagnostics.ts
to exclude generator functionsTesting:
Fixes #62056.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.