Remove extra EnsureEditableDocuments calls#57725
Merged
ryzngard merged 1 commit intodotnet:mainfrom Nov 12, 2021
Merged
Conversation
…s was duplicating the work that the call in TryApplyChanges does, and can have conflicts with linked files. For example: 1. If file A.cs is renamed to B.cs and is in 2 projects 2. Each project will go through and apply changes (lets call P1 and P2) 3. P1 goes through and calls: ApplyTextChange > EnsureEditable > Rename File (File is now B.cs on disk) 4. P2 goes through to do the same as P1, but A.cs no longer exists so EnsureEditable will fail (can't check status of a file that doesn't exist) We should be doing all the work to check edit status upfront so it doesn't collide with the actual edits we need to do. TryApplyChanges is already overridden and does that. This change just removes the extra work we were doing that also created problems for renaming files.
davidwengier
approved these changes
Nov 12, 2021
genlu
approved these changes
Nov 12, 2021
Member
|
@ryzngard Woohoo, this should also be a nice perf win, probably. |
333fred
added a commit
to 333fred/roslyn
that referenced
this pull request
Nov 17, 2021
…rations * upstream/main: (3387 commits) Fix ValueTracking for index parameters (dotnet#57727) Avoid accessing current assembly identity while reporting an accessibility diagnostics for an inaccessible internal symbol. (dotnet#57783) Include a type for NoneOperations in VB, print the type in tests (dotnet#57664) Don't throw exceptions for file changes after a project is unloaded Check up front for being called to remove more than once Fix C# language name in spec (dotnet#57427) Add test Fix null ref in navbars Ensure that getting the checksum for a project cone is resilient to its project references being missing Check constraints on lifted operator types (dotnet#57050) Adjust tests for Windows 11 changes (dotnet#57678) Add comment Load SVsShellDebugger before calling IVsSolution.CreateSolution Remove extra EnsureEditableDocuments calls (dotnet#57725) Don't show nullable annotation in completion items of static field/property Don't analyze local function bodies as though they are top level code (dotnet#57623) update error code to fix main break (dotnet#57739) Error when ref is used on a parameter or return type of an UnmanagedCallersOnly method (dotnet#57043) Simplify code from review Fix featureflag name for .net 6 host in UI ...
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.
Remove single check for EnsureEditableDocuments on each document. This was duplicating the work that the call in TryApplyChanges does, and can have conflicts with linked files.
For example:
We should be doing all the work to check edit status upfront so it doesn't collide with the actual edits we need to do. TryApplyChanges is already overridden and does that. This change just removes the extra work we were doing that also created problems for renaming files.
Fixes #56467