[compiler] Emit better error for unsupported syntax this
#34322
Merged
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.
Our previous error message was correctly identifying the generation of identifiers where the name is a reserved keyword in JS. That error still makes sense (we don't want to generate invalid identifiers) as an invariant, but in some cases can be a confusing error as it's not helpful to tell the user that eg
thisis a reserved identifier name.This PR adds a specific check for
thisup into HIRBuilder, denoting thatthisis not syntax that is supported by React Compiler. Note that this also catches the case wherethisis used in parameter position (a TS feature) even if it might not actually usethisin the block statement, but it's unlikely someone would typethisand not use it so I opted to just have a single error message and not special case thethistype annotation.Closes #34311