Prevent deadlock in getCompletionsAtPosition(..., { includeSymbol: true }) API - #64178
Open
auvred wants to merge 1 commit into
Open
Prevent deadlock in getCompletionsAtPosition(..., { includeSymbol: true }) API#64178auvred wants to merge 1 commit into
getCompletionsAtPosition(..., { includeSymbol: true }) API#64178auvred wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The checker lifetime is consistently propagated, and the regression test covers the deadlocking completion path.
Pull request overview
Prevents API completion deadlocks by reusing the caller’s acquired type checker throughout auto-import processing.
Changes:
- Pass the active checker into auto-import views and fix generation.
- Remove nested checker acquisition from existing-import lookup.
- Add a regression test for
includeSymbol: true.
File summaries
| File | Description |
|---|---|
tsc/internal/ls/languageservice.go |
Passes checkers into auto-import views. |
tsc/internal/ls/completions.go |
Reuses completion checkers for auto-imports. |
tsc/internal/ls/codeactions_importfixes.go |
Threads one checker through import fixes. |
tsc/internal/ls/codeactions_fixclassincorrectlyimplementsinterface.go |
Supplies the existing checker to the view. |
tsc/internal/ls/autoimport/view.go |
Stores the caller-provided checker. |
tsc/internal/ls/autoimport/import_adder.go |
Uses the checker-backed view API. |
tsc/internal/ls/autoimport/fix.go |
Eliminates nested checker acquisition. |
tsc/internal/api/session.go |
Supplies the API checker when constructing a view. |
tsc/internal/api/session_completion_test.go |
Tests the reported deadlock scenario. |
Review details
- Files reviewed: 9/9 changed files
- Comments generated: 0
- Review effort level: Balanced
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #64166
The solution is to remove the
program.GetTypeChecker(ctx)call fromgetExistingImports()and pass the checker explicitly instead.