Skip to content
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

Merged
merged 8 commits into from
Oct 10, 2020

Conversation

sheetalkamat
Copy link
Member

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

Copy link
Member

@sandersn sandersn left a 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.

src/compiler/builder.ts Outdated Show resolved Hide resolved
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
src/compiler/builder.ts Outdated Show resolved Hide resolved
@DanielRosenwasser
Copy link
Member

@typescript-bot cherry-pick this to release-4.0

@typescript-bot
Copy link
Collaborator

typescript-bot commented Oct 14, 2020

Heya @DanielRosenwasser, I've started to run the task to cherry-pick this into release-4.0 on this PR at 174b00a. You can monitor the build here.

@DanielRosenwasser DanielRosenwasser restored the semanticBuilderWithNoEmit branch October 14, 2020 23:51
typescript-bot pushed a commit to typescript-bot/TypeScript that referenced this pull request Oct 14, 2020
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 <293473+sandersn@users.noreply.github.com>
174b00a Update src/compiler/builder.ts
@typescript-bot
Copy link
Collaborator

Hey @DanielRosenwasser, I've opened #41107 for you.

@sheetalkamat sheetalkamat deleted the semanticBuilderWithNoEmit branch October 15, 2020 01:55
sheetalkamat added a commit that referenced this pull request Oct 15, 2020
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 <293473+sandersn@users.noreply.github.com>
174b00a Update src/compiler/builder.ts

Co-authored-by: Sheetal Nandi <shkamat@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Author: Team For Uncommitted Bug PR for untriaged, rejected, closed or missing bug
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Performance regression in 4.0 with semantics-only createWatchProgram?
4 participants