-
Notifications
You must be signed in to change notification settings - Fork 12.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle noEmit and noEmitOnError with SemanticDiagnosticsBuilder #40880
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks reasonable although I'm not familiar with this area of the code.
Co-authored-by: Nathan Shively-Sanders <[email protected]>
@typescript-bot cherry-pick this to release-4.0 |
Heya @DanielRosenwasser, I've started to run the task to cherry-pick this into |
Component commits: ca35546 Add test that fails c7b5005 Handle noEmit on semantic builder's emit as well 6a05abd Add test for tsbuildinfo text verification 8bae521 Fix noEmit handling for tsbuildinfo emit with SemanticDiagnosticBuilder 0fd4a08 Add test for noEmitOnError with SemanticDiagnosticsBuilder 4fa1d78 Fix tsbuildinfo emit with SemanticDiagnosticsBuilder on noEmitOnError a3968e7 Update src/compiler/builder.ts Co-authored-by: Nathan Shively-Sanders <[email protected]> 174b00a Update src/compiler/builder.ts
Hey @DanielRosenwasser, I've opened #41107 for you. |
Component commits: ca35546 Add test that fails c7b5005 Handle noEmit on semantic builder's emit as well 6a05abd Add test for tsbuildinfo text verification 8bae521 Fix noEmit handling for tsbuildinfo emit with SemanticDiagnosticBuilder 0fd4a08 Add test for noEmitOnError with SemanticDiagnosticsBuilder 4fa1d78 Fix tsbuildinfo emit with SemanticDiagnosticsBuilder on noEmitOnError a3968e7 Update src/compiler/builder.ts Co-authored-by: Nathan Shively-Sanders <[email protected]> 174b00a Update src/compiler/builder.ts Co-authored-by: Sheetal Nandi <[email protected]>
This ensures that diagnostics are checked through cache/or cached in builder instead of getting it from Program when emit is called and its going to fail in these two scenarios. We already do this for
EmitAndSemanticDiagnosticsBuilder
Note that actual emit when succeeds on
SemanticDiagnosticsBuilder
is going to be redirected to program as intended as the emit is not tracked by the builder and would need to typecheck file before emitting as always but this ensures that cases where it fails to emit are handled.Fixes #40808