-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Merge runtime async support into main #79833
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
Merged
Merged
Conversation
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
Add initial handling of expressions that return `Task`, `Task<T>`, `ValueTask`, `ValueTask<T>`.
* upstream/main: (576 commits) Add missing word to the documentation file (#77259) Make `InterceptableLocation` implement `IEquatable<InterceptableLocation>` (#77137) REvert REvert REvert rename Semantic document remove more inline inline Remove state type from 'move type' refactoring preserve behavior Simplify Remove dependency on semantics Simplify Simplify code Use property Properly pass progress object along in fix all provider fix syncing add background color for inline hints in high contrast mode ...
* upstream/main: (134 commits) Mark partial events and ctors as complete (#77525) Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250310.1 Remove unnecessary imports Update dev18 target branch (#77443) Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250306.1 (#77470) Remove BoundConversion.OriginalUserDefinedConversionsOpt property (#77465) Addressed feedback [Rename flyout] Fixed cropping issue on small screens Fix design time build error in Roslyn.VisualStudio.Setup Remove workaround of WPF bug Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250305.3 (#77452) Small cleanup in the packages and editor factories (#77439) Auto merge PRs instead of just applying a label to them (#77438) Fix bot name (#77436) Add workitem Don't use an implicit-object if the lang version doesn't support it Configure main-vs-deps (#77408) Fix projects File scoped namespace Update formatting tests ...
* Parse partial events and constructors (#76860) * Parse partial events and constructors * Update pre-existing tests * Explain why partial ctors are sometimes disallowed * Parse `partial` constructors unconditionally * Gate parsing on LangVersion * Extend tests and docs * Fix indentation * Rename combinatorial values * Test more lang versions * Parse partial events unconditionally * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250203.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.607901 -> To Version 10.0.610302 * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250204.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.607901 -> To Version 10.0.610402 * Partial events and constructors: merge and check symbols (#76970) * Partial events and constructors: merge and check symbols * Improve code * Move partial availability check * Improve code * Fix duplicate definition diagnostic * Test different ordering * Avoid reporting diagnostic for escaped `partial` * Clarify naming of AccessorsHaveImplementation property * Add event definition accessor symbol * Improve code * Test sequence points * Test extern IL * Fix interface container diagnostics * Fix sequence points issue in the test utility * Ensure the new accessor owner is a definition * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250210.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.607901 -> To Version 10.0.611002 * Remove async/await * Update dependencies from https://github.com/dotnet/arcade build 20250211.5 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25077.4 -> To Version 9.0.0-beta.25111.5 * Partial events and constructors: check differences (#77118) * Partial events and constructors: check differences * Improve code and tests * Complete constructor implementation part * Report error for tuple differences in constructors * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250212.3 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.608004 -> To Version 10.0.611203 * Add test for override completion error * Fix override completion when attribute below * Partial events and constructors: doc comments (#77200) * Ensure generated operator methods have the format annotation * Update VB tests to assert new formatting behavior * Use raw strings in override tests * Ensure diagnostics refresh when source generators run in balanced mode * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250218.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.608004 -> To Version 10.0.611801 * Create missing options types * Fix Quick Info nullability display for backing fields (#77240) Co-authored-by: Cyrus Najmabadi <[email protected]> * Mix the source generator version info into the dependent checksum we get for projects * Make diagnostic checksum an extension * Move * simplify * Fix crash in 'introduce variable' when converting an object creation expression to an implicit object creation expression * Enable NRT * Update src/Tools/SemanticSearch/ReferenceAssemblies/Apis/Microsoft.CodeAnalysis.CSharp.txt * Partial events and constructors: attributes (#77182) * Partial events and constructors: attributes * Update pre-existing tests * Fixup expected PEVerify output * Check a flag before materializing syntax nodes * Assert that the definition part of an event doesn't have accessors * Keep pre-existing event attribute target behavior * Improve code * Add WorkItem attribute * Strengthen asserts Co-authored-by: Rikki Gibson <[email protected]> --------- Co-authored-by: Rikki Gibson <[email protected]> * Use proj dependent checksum instead now that it contains SG info * disable realtime monitoring * Update debugger contracts to fix hot reload issue * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250219.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.608004 -> To Version 10.0.611901 * Return stronger-ly typed results from completion * Forgot to change the file header when copying the file contents * One level deep * Add test * Add an option to ignore aliases when moving using directives outside a namespace * Add test * Add work items * Update runtime async spec (#76872) * Update runtime async spec Updates from the runtime side: dotnet/runtime#110420. * Update method signature * Add note about blocking * Fill in more examples * Remove outdated paragraph * A bit of reorganization for clarity * Collapse a number of samples to expandable section * Fix heading * Remove out of support branches from PublishData.json * Switch TextDocumentState.GetTextVersionAsync to ValueTask to reduce allocations. (#77213) The task creation from calling this method accounts for 36 MB (0.2%) of allocations in the CSharpEditingTests.Completion speedometer test. Speedometer results with this change show marked improvement in these allocations. * Fix * Update PublicAPI files for 17.13 ship (#77266) (#77295) (cherry picked from commit f8f04dd) * Expand doc comment * Update azure-pipelines-official.yml * Don't use hardcoded line endings (#77296) Was causing these files to change every build on linux. * Allow Semantic Search query function to take symbol parameter (#77272) Fix * Update to release nuget packages (#77261) (#77298) * Update to release nuget packages In order to publish 17.13 nuget packages, we need to update a few dependencies. I updated the minimum number of packages required from our public packages, then fixed up any restore issues. For each updated package, I then went and confirmed that the dll was actually present in 17.13.0, so we should be safe from dependency loading issues. This change does not need to be inserted into VS. * Skip tests for microsoft/vs-solutionpersistence#95 * Skip failing tests, see #77293. (cherry picked from commit 3350036) * Generate Documentation Auto-Insert (#76665) * wip * wip * wip * wip * wip * wip * wip * remove some commented out code * still cleaning up * revert file * clean up + option * wip * dispose of disable of intellicode line completions * comments * comments * add quota exceeded checks * fix tests * revert file * remove unused optional params * last few fixes * feedback * fix tests * small fix * fix * feedback * feedback * removed per comments * remove unused usings * feedback * feedback * move stuff around with new EA structure in roslyn * wip * feedback * feedbacl * fix * feedback * feedback * feedback * revert * remove null check * clean up * fix * fix tests * last fixes * telemetry + fixes * last comments * Move check to 'make field readonly' * Add test * Update src/Tools/SemanticSearch/ReferenceAssemblies/Apis/Microsoft.CodeAnalysis.CSharp.txt * Partial events and constructors: more tests (#77280) * Add Copilot UI prototype to Semantic Search window (#77222) * disable the WPF ComboBox Search behavior in Rename popup * Change override completion to select text after updating the buffer. (#76983) * Change override completion to select text after updating the buffer. This (along with #76969) will allow a user to commit an override completion and easily replace the default text (and still use the expression body fixers). This required the CompletionChange class to now allow the data to represent a selection instead of just a cursor position. * Explictly jump off the main thread before serializing data to call Razor * Reduce allocations during completion in FilterToVisibleAndBrowsableSymbols (#77315) * Reduce allocations during completion in FilterToVisibleAndBrowsableSymbols This method was visible in allocations in one of the completion speedometer profiles I was looking at and has a couple of easily removable allocations. Can combine two WhereAsArray calls Can switch to using WhereAsArray(ImmutableAray) instead of the IEnumerable overload Can use the pooling support in MetadataUnifyingSymbolHashSet Can avoid EditorBrowsableInfo allocation when input symbols is empty Can avoid the closure allocation that was present in RemoveOverriddenSymbolsWithinSet Even with all these changes, the net benefit didn't prove large from the speedometer run, but I've done the work, it doesn't complicate things, and every bit helps. * Fix typos (#77316) * Refresh diagnostics when fading options change * Mix options into diagnostic data checksum * Apply suggestions from code review * Support 'view call hierarchy' on primary consstructor * Fix * Arrays * cleanup tests * Add test * Docs * NRT * Primary constructor * Add nuget to documentation (#77330) * Implement TypeScript ExternalAccess wrappers for AsynchronousOperationListener (#77318) * Update configs for 17.14 P2 snap (#77329) * wip * update configs for 17.14p2 snap * Update eng/config/PublishData.json Co-authored-by: Joey Robichaud <[email protected]> --------- Co-authored-by: Joey Robichaud <[email protected]> * Simplify * Disallow initializers on partial constructor definitions (#77275) * Partial events and constructors: public API (#77202) * Partial events and constructors: public API * Simplify code * Add more `sealed` * Add more asserts * Null annotate MetadataHelpers (#77309) * Null annotate MetadataHelpers Issue #76394 indicites there is a null reference happening inside `MetadataHelpers.GetInfoForImmediateNamespaceMembers`. The symptoms indicate it's non-deterministic (deterministic ordering or race condition). Decided to null annotate the type and a few surrounding calls to see if I could get lucky and spot the source of the NRE. Was not able to do this but decided to submit the annotations. * more * more * pr feedback * pr feedback * Allow expression body refactorings on non empty selections (#76969) Currently, all expression/body refactorings only work with an empty selection. I've started looking into #29495 which requests overload completion to set the selection upon commit. Upon commit (and setting the selection), it's desirable to be able to do the expression/body refactoring. This change should allow that. * PERF: Reduce the number of nodes walked during import completion commit. (#77305) ImportAdderService.AddImportsAsync was previously doing a full tree walk (and realizing all the nodes in the tree) during override completion commit. Noticed while looking at the csharp completion speedometer profile for the completion commit of override methods. Previously, this accounted for about 28% of CPU and 23% of allocations during CommitManager.TryCommit. With these changes applied, this enumeration is basically free. See PR for details on the performance numbers * Handle ModuleCancellationTokenExpression in AbstractFlow visitor (#77310) * Fix issue in watch window completion (#77204) * Fix issue in watch window completion The issue here is when the watch window contains for (int i = 0; i < 10; i++) [Console.WriteLine(i);] where [] denotes the current statement. In that case, the adjusted context should be at the start of Console.WriteLine. Additionally, a semicolon should not be placed in the generated projection buffer before debuggerMappedSpan, as that would place debuggerMappedSpan outside the for loop. Fixes #42718 * Don't realize the SourceText in SyntaxTree.OverlapsHiddenPosition if not needed (#77334) This shows up in override completion commit in the speedometer profiles as 12.5% of allocations and 11.6% of CPU under CommitManager.TryCommit. We can avoid needing the SourceText in this method if the line mappings in the tree are empty. With this change, OverlapsHiddenRegion no longer appears in either allocations or cpu usage during override completion commit. I've also verified that these costs associated with creating this sourcetext weren't incurred elsewhere (at least under CommitManager.TryCommit) See PR for more detailed numbers * Expose some functionality from SourceGeneratedDocumentUri to Razor * Update src/Tools/ExternalAccess/Razor/RazorUri.cs * add resource to automate github action merge PRs * Update resourceManagement.yml * Preserve encoding during DocumentState updates Fixes dotnet/sdk#46780 * Fix issue where we were crashing trying to get inheritance margin information for SG docs * Docs * Generate-Documentation Check if file is excluded (#77353) * check for excluded files * remove unused usings * fix indentation * PR Validation - allow insertion to run on commit that isn't latest (#77369) * allow insertion to run on commit that isn't latest * remove comments * Allow PR Val pipeline runs to opt-out of the latest commit validation * Update CI excludes paths to include some yml files * Update setup-pr-validation.ps1 * Apply suggestions from code review --------- Co-authored-by: Joey Robichaud <[email protected]> * Fix yml typos * Update PublishData.json after VS Snap (#77383) * Fix formatting in tests * Collection expr * Collection expr * Make selaed * Make selaed * Primary constructors * Fix out of bounds in text extent computation * Fix out of bounds in text extent computation * Fix issue where goto-def wouldn't go to the right place after invoking twice * [main] Update dependencies from dotnet/source-build-reference-packages (#77335) * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250224.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.611901 -> To Version 10.0.612402 * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250225.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.611901 -> To Version 10.0.612502 * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250227.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.611901 -> To Version 10.0.612702 * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250228.4 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.611901 -> To Version 10.0.612804 * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250303.3 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.611901 -> To Version 10.0.615303 --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Partial events and constructors: IDE (#77337) * Partial events and constructors: IDE * Fix event keyword recommender * Fix symbol suggestions * Fixup failing tests * Fixup SymbolKey * Improve code * Use `Equal` instead of `Same` in SymbolKey tests * Extend a test * Use collection expressions Co-authored-by: Cyrus Najmabadi <[email protected]> --------- Co-authored-by: Cyrus Najmabadi <[email protected]> * Partial events and constructors: compact error codes * Detect more null check patterns * Emit call to ThrowIfNull * Add string checks * Add string checks * Add work items * Improve performance of SyntaxReplacer.ReplaceNode (#77314) Improve performance of SyntaxReplacer.ReplaceNode This should allow better performance when replacing nodes. I've noticed overrides completion commit profiles as indicating a large amount of time/memory spent in their ReplaceNode calls. (about 18% of CPU time and 20% of memory allocations spent within CommitManager.TryCommit are attributable to ReplaceNode calls) See PR for more details on the performance benefit the speedometer achieves with this change. * Fix issue where we were changing semantics when converting to a collection expr * Work item * Update test * Update formatting tests * File scoped namespace * Fix projects * Configure main-vs-deps (#77408) * Configure main-vs-deps * Run every 3 hours * Don't use an implicit-object if the lang version doesn't support it * Add workitem * Fix bot name (#77436) * Auto merge PRs instead of just applying a label to them (#77438) * Small cleanup in the packages and editor factories (#77439) * Small cleanup in the packages and editor factories This area is going to get some larger changes in Dev18. As I'm waiting for that branch to become available, do a small cleanup in the area in anticipation of those changes. These changes are mostly cosmetic. The only change that is a bit more than that is the (Un)RegisterObjectBrowserLibraryManager changes to not be sync. This was done to remove a couple JTF.Runs in the code, and was done after verifying with JeffRo that our package disposal will indeed always be done on the main thread. * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250305.3 (#77452) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.615303 -> To Version 10.0.615503 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Remove workaround of WPF bug This shouldn't be needed anymore, and prevents some design time build breaks if NuGet restore wasn't able to get this package. Fixes #74923 * Fix design time build error in Roslyn.VisualStudio.Setup The MSBuild task invocation here is a copy/paste from earlier in the file, but the item group renamed so it didn't conflict. The rename was in complete, so the use in the Properties property was still using the old name; this had the effect that we wouldn't set the TFM property, which would cause problems for multi-targeting projects. * [Rename flyout] Fixed cropping issue on small screens * Addressed feedback * Remove BoundConversion.OriginalUserDefinedConversionsOpt property (#77465) * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250306.1 (#77470) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.615503 -> To Version 10.0.615601 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Update dev18 target branch (#77443) * Remove unnecessary imports * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250310.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.615601 -> To Version 10.0.616001 * Mark partial events and ctors as complete (#77525) --------- Co-authored-by: Jan Jones <[email protected]> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Ankita Khera <[email protected]> Co-authored-by: David Wengier <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: akhera99 <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: Youssef1313 <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Tomáš Matoušek <[email protected]> Co-authored-by: Amadeusz Wieczorek <[email protected]> Co-authored-by: Charles Stoner <[email protected]> Co-authored-by: Jared Parsons <[email protected]> Co-authored-by: Sam Harwell <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: Etienne Baudoux <[email protected]> Co-authored-by: AlekseyTs <[email protected]> Co-authored-by: Jan Jones <[email protected]>
Adds control for whether to use runtime async. The flowchart is as follows: 1. The flag `System.Runtime.CompilerServices.RuntimeFeature.Async` must be present. 2. Assuming that flag is present, we look for the presence of `System.Runtime.CompilerServices.RuntimeAsyncMethodGenerationAttribute` on the method. If that attribute is present, we use the preference expressed in the attribute. The preference does not carry to nested contexts, such as local functions or lambdas. 3. If the attribute is not present, we look for `features:runtime-async=on` on the command line. If that is present, then the feature is on by default. Otherwise, the feature is off.
* upstream/main: (169 commits) Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250319.2 (#77694) Update CSharpCopilotCodeAnalysisService.cs (#77691) Fix bug where exact path match would throw for additional files (#77583) raw strings Add CI validation of Semantic Search API lists (#77535) Fix test Cleanup and make semantic token processing and testing code more consistent Support textDocument/semanticTokens/full Fix SkipApplyOptimizationData parameter (#77677) Fix typo (#77678) Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250318.1 (#77672) Fix reflection Generate Documentation - Bug Fixes (#77641) Fix watch window completion window upon manual completion invocation (#77656) Make ISemanticSearchCopilotUIProvider import lazy to avoid loading VS.EA.Copilot (#77516) Fix generation of attribute with array constant Change vs deps flow (#77651) On-the-fly-docs Pass along additional context (#77510) Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250317.1 (#77649) Remove dead code, use generated regex, use filescoped namespace. ...
* wip * wip * wip * wip * wip * wip * wip * remove some commented out code * still cleaning up * revert file * clean up + option * wip * dispose of disable of intellicode line completions * comments * comments * add quota exceeded checks * fix tests * revert file * remove unused optional params * last few fixes * feedback * fix tests * small fix * fix * feedback * feedback * removed per comments * remove unused usings * Fixer/Analyzer for implementing method TODO - Try invoking copilot service from Features layer (needs GenerateMethod APIs added to EA) - Try invoking semantic search from Features layer Reviews done: - Skimmed through the proposal edit approach used for /// - Excluded diff for ///, does not exist in copilot service * feedback * feedback * move stuff around with new EA structure in roslyn * wip * feedback * feedbacl * fix * feedback * feedback * feedback * revert * remove null check * clean up * fix * fix tests * local ad ons * local ad ons * Add main bits for generating method implementation * todo next * update APIs * trial 1 * Fix compile after merge * temp1 * temp2 * Implement method, end-to-end for one-off code action * corrections * cleanup * cleanup preliminary check * Fix bug * cleanup and fixes * remove local changes for pr * correct spacing * cleanup * Add unit test - takes code block suggestion to replace with method body * Add test, support expression body clause later * Change the FAR API call * using `.Parent.FirstAncestorOrSelf` * Improve wrapper implementation * Apply first round code review * Merge DualChangeAction into DocumentChangeAction * Make IDE3000 not configurable This diagnostic is always hidden (no UI) for the sole support of the associated code fix provider. * Simplify analyzer code and improve robustness * Simplifies fixer and applies most remaining feedback * Fix compile related to DocumentChangeAction * Cleanup messaging * Add resources for messaging * Adds a few basic tests * Undo most recent analyzer changes, to keep the throw statement/expression check - Adds more test - Removes dead code - [ ] Cleanup more code - [ ] Fix failing tests - [ ] Rename API make consistent - [ ] Revisist triple slash docs - [ ] Change SyntaxNode to MemberDeclaration - [ ] Remove unexpected null checks * Apply PR feedback - [x] Adds more test - [x] Removes dead code - [x] Cleans up more code - [ ] Fix failing tests - [x] Renames API to make consistent - [x] Revisits triple slash docs - [x] API Accepts SyntaxNode - [x] Removes unreachable code * Tests renamed * Correct test setup - and do minor Cleanup * Improves readability and removes unreachable code * Correct mistakes in tests * Adds more unit tests * Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055) * Fixes Analyzer tests - [ ] Fixer seems not activates in tests * Makes sure original and replacement text are properly aligned * Apply partial PR feedback - Test correction on placement of diagnostic span * cleanup * Applies feedback to change API surface * All tests pass * tests are actually failing * Fix Quota bug and show failing tests * Update tests for error conditions where diagnostics are not corrected * undo IsImplementNotImplementedExceptionEnabledAsync change * Fixes remaining tests * cleanup * Add back referencedSymbols to API call to help with perf * Gracefully comment when result is unexpected * Remove unused resource * Simplify error messages * Cleanup tests * Add missing entry for IDE3000 * Add Missing Help Link * mid stage * Removes QuotaExceeds property, received as message * Update signature * Fix missed out warning * Fix test correctness issue picked up by CI * Add logging * Apply PR feedback * Fix run code analysis on solution not reporting results Fixes #77495 * Use HangMitigatingTimeout for cases where operations do not complete synchronously * some PR feedback * spacing * Move test * Apply most remaining feedback * Applies feedback * Add runtime async to official build (#77537) * Signature now strictly uses MemberDeclarationSyntax * Update message for analyzer referencing newer compiler than host (#77541) * Updates tests * field implementation is not supported as method or property see test below ``` [InlineData("int myField;", typeof(FieldDeclarationSyntax))] public async Task TestInvalidNodeReplacement(string syntax, Type type) ``` * Fix NFW due to invoking Workspace.RaiseEventForHandlers in the CA process (#77546) NFW telemetry indicates Solution.Workspace is getting called in our server process. This is due to a recent change I made around immediate eventing. In the server process, there are no immediate (or standard) workspace event handlers, but due to this recent changewe were always calling RaiseEventForHandlers for the immediate handlers without checking for their presence. * Implement field null resilience analysis (#77127) Co-authored-by: Fred Silberberg <[email protected]> * Fix incremental generator in deterministic key file (#77553) * Apply PR feedback * Disable downloading the runtime packages during restore and instead ensure that it happens when needed (pack) (#77515) During the most recent SDK insertion, allocation regressions were reported in the C# editing speedometer test. Investigation yielded that these were because of restore failures in the test project as the runtime packages are not published at the point of the SDK insertion. Looking at the MS.CodeAnalysis.LanguageServer project closer revealed that these runtime identifiers needed to only be set during the pack task. This PR moves setting the RuntimeIdentifiers property to only be done during the pack task, and thus the restore task won't attempt to download these packages. As the test doesn't perform a pack on the roslyn solution, this should prevent future SDK insertions from hitting this issue again. * Simplifies assumptions - Only trigger fixer when service available * nit spacing * Fix preview window for 'implement NotImplementedException' * Simmplify * Remove uneeded helper * Fix Stack Trace Explorer for additional documents (#77517) Update IDocumentNavigationService implementation in VS to work on any TextDocument Fix IDocumentNavigationService extension to use TextDocument Fix Stack Trace Explorer to search for AdditionalDocuments when trying to find a match in file path or name Partial fix for #77499 There might be more cases where finding symbols doesn't work but filepath+line navigation should now work * Update dependencies from https://github.com/dotnet/arcade build 20250311.4 (#77569) Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25111.5 -> To Version 9.0.0-beta.25161.4 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Update PublishData.json (#77589) * Update main-merge.yml to not run on forks * Fix typo (#77595) * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250313.4 (#77604) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.616001 -> To Version 10.0.616304 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Filter down the list of files we need to examing when looking for a :base(...) call in find refs * Move feature-oriented helpers to appropriate location * Ensure we don't touch Solution.Workspace if we don't have to This is a bit more of a defense-in-depth fix to fix a potential NFW. * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250314.1 (#77623) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.616304 -> To Version 10.0.616401 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Update dependencies from https://github.com/dotnet/arcade build 20250314.2 (#77624) Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25161.4 -> To Version 9.0.0-beta.25164.2 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Correct how we pick up options for `ICopilotOptionsService` (#77620) * Corrections to how we pick up roslyn options settings * Cleanup * Set default for Implement with Copilot to be false * update for copilot.general.editor.enableGenerateDocumentationComment * Update BuildActionTelemetryTable tool * Add feature flag controlling Copilot prompt in Semantic Search (#77562) * Fix BuildActionTelemetryTable project * Update CodeActionDescriptionsMap. Updates program to generate new description map when analyzers are added. * Fix typo * Remove dead code, use generated regex, use filescoped namespace. * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250317.1 (#77649) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.616401 -> To Version 10.0.616701 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * On-the-fly-docs Pass along additional context (#77510) * wip * works end to end * some feedback * feedback * fix bugs * tests * revert settings * fix code analysis service * fix formatting * Feedback * Change vs deps flow (#77651) * Fix generation of attribute with array constant * Make ISemanticSearchCopilotUIProvider import lazy to avoid loading VS.EA.Copilot (#77516) * Fix watch window completion window upon manual completion invocation (#77656) * Fix watch window completion window upon manual completion invocation Addresses https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2287966 This recently regressed due to this recent PR: #77204 The issue here is that I changed the csharp debugger context's projection buffer creation code from always having a one char string as the second sourceSpan to sometimes having that string be empty. This allowed the completion context to include items for which a semicolon would close that scope. However, by having a zero length span, a seam was created for a tracking span at priorTrackingSpan to be introduced into the set of tracking positions that can contribute to completion. Editor completion doesn't handle this well, so we're best off always sending a non-zero length source Span, so we do so and just use a space as the value. * Generate Documentation - Bug Fixes (#77641) * fix some bugs * Feedback * Fix reflection * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250318.1 (#77672) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.616701 -> To Version 10.0.616801 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Fix typo (#77678) disalloed => disallowed. * Fix SkipApplyOptimizationData parameter (#77677) * Support textDocument/semanticTokens/full * Cleanup and make semantic token processing and testing code more consistent * Fix test * Add CI validation of Semantic Search API lists (#77535) * raw strings * Fix bug where exact path match would throw for additional files (#77583) From /pull/77517/files/45c0e103f76f36bed6004f836d3dcfeae4bfae0d#r1992506030 * Update CSharpCopilotCodeAnalysisService.cs (#77691) * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250319.2 (#77694) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.616801 -> To Version 10.0.616902 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> --------- Co-authored-by: Ankita Khera <[email protected]> Co-authored-by: Maryam Ariyan <[email protected]> Co-authored-by: Sam Harwell <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: Jared Parsons <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Andrew Hall <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: Arun Chander <[email protected]> Co-authored-by: Kauwai Lucchesi <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: Tomáš Matoušek <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Ankita Khera <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: David Wengier <[email protected]> Co-authored-by: Bill Wagner <[email protected]> Co-authored-by: PaddiM8 <[email protected]>
* upstream/main: (3562 commits) Update ignored directives public API (#77968) Expression trees: support optional arguments and named arguments in parameter order (#77972) Update resourceManagement.yml (#77948) Split query execution into compile and execute calls (#78081) Remove unused ISemanticSearchWorkspaceHost (#78083) Add back EA.Razor for servicing branches Remove EditorFeatures from OOP (#78069) Review feedback Fix nullability warnings Do not return metadata names for document symbols Improve detection of code whose updates may not have effect (#78009) Ensure LSP uses actual signature help trigger characters Update RoslynAnalyzer package projects with dependencies Simplify analyzer api Unseal LSP types (#78041) Compile just for NET Fix name Docs Move type Docs ...
* upstream/main: Disable failing Test1 and Test5 lines (#78118)
* Addressing feedback * Addressing PR feedback * Addressing PR comments * Remove workaround for dotnet/msbuild#10306 The VS SDK was fixed, so the problem shouldn't occur anymore. * move to a workspace factory * No need for solution * Simplify handlers * Add helper * move more over * move more over * Add remove calls * Move handlers over * Move remote service over * async lock * async lock * async lock * More work * Fixup * Correct * Move to immutable dictionary * in progress * in progress * in progress * in progress * in progress * in progress * Simplify * Serialize * simplify * simplify * simplify * in progress * in progress * Reset code * Clelar * renames * Simplify * rename * No more null * Simplify * Exception throwing * Extensions: update feature status (#77923) * Add ignored directives feature status (#77965) * Extensions: misc checks on receiver parameter and extension members (#77937) * Add porject back in * CHange how locking works * Simplify * Docs * Add new message for getting registered method names * IN progres * in progress * Simplify * Simplify * Handle exceptions * Simplify * Docs * move method * Simplify and regions * Tweaks * Docs * Break into files * Simplify exception handling * Simplify * Simplify * Move * Docs * Simplify * Simplify * Share code * Split into local and remote calls * Add throw * Add throw * Simplify * Simplify * Simplify * Simplify * Simplify * Simplify * Simplify * Simplify * Simplify * Simplify * Simplify * Simplify * Avoid potential disposal exception during MEF shutdown (#77990) Previously, if VS was shutdown before Workspace.EnsureEventListeners was invoked, we would cause an exception during MEF disposal. This would happen because our workspace disposal would attempt to get a service that hadn't already been cached, and thus would ask MEF to compose the item during MEF disposal (which doesn't work). Instead, just cache the IWorkspaceEventListenerService for use during the dispose. * Remove unused elements form PublishData.json (#77994) Removing some elements that seem to be left over from how the publish tooling used to work * Reduce main thread switches in VisualStudioProjectFactory.CreateAndAddToWorkspaceAsync (#77920) * Reduce main thread switches in VisualStudioProjectFactory.CreateAndAddToWorkspaceAsync This method is called once for each project in the solution during solution open, and each call was essentially switching to the main thread twice (once explicitly, once via call to _visualStudioWorkspaceImpl.RefreshProjectExistsUIContextForLanguageAsync). For my testing of opening Roslyn.sln, this removed over 600 main thread switches. Instead: 1) Move the first main thread switch to just occur once in an initialization task. This task is joined when CreateAndAddToWorkspaceAsync is invoked to ensure that that initialization is completed. 2) Move the second main thread switch to instead move inside the callback from an ABWQ. The code being called needs the UI thread, but doesn't need to occur synchronously during the call to CreateAndAddToWorkspaceAsync. * Explicitly releasE * Cancellation is fine * Reorder * remove net * docs * docs * remove exception handling * Add public api * lint * Reduce main thread switches in VisualStudioProjectFactory.CreateAndAddToWorkspaceAsync (#77920) (#77998) * Reduce main thread switches in VisualStudioProjectFactory.CreateAndAddToWorkspaceAsync This method is called once for each project in the solution during solution open, and each call was essentially switching to the main thread twice (once explicitly, once via call to _visualStudioWorkspaceImpl.RefreshProjectExistsUIContextForLanguageAsync). For my testing of opening Roslyn.sln, this removed over 600 main thread switches. Instead: 1) Move the first main thread switch to just occur once in an initialization task. This task is joined when CreateAndAddToWorkspaceAsync is invoked to ensure that that initialization is completed. 2) Move the second main thread switch to instead move inside the callback from an ABWQ. The code being called needs the UI thread, but doesn't need to occur synchronously during the call to CreateAndAddToWorkspaceAsync. * make nested * Simplify * Simplify * Simplify * Simplify * Simplify * restore * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250402.2 (#77982) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.618101 -> To Version 10.0.620202 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Allow null * Simplify * No VoidResult * Make everything non-capturing * 'nameof(T<>)' not supported yet. * Update references * Revert "Another attempt to move MiscellaneousFilesWorkspace to a bg thread (#77983) This reverts commit 2e8fcbe. * fix * Exception work * Update Roslyn.sln * More exception work * Add remote end * Complete the exception handling work * Add docs * docs * Add docs * Rename type * Rename type * update publishdata * Change SolutionState.ProjectStates from an ImmutableDictionary<ProjectId, ProjectState> to an ImmutableArray<ProjectState> (#77971) * *** WIP. Definitely needs supporting speedometer numbers before being considered *** Change SolutionState to keep/expose and ImmutableArray<ProjectState> instead of an IReadOnlyList<ProjectId> By exposing the project states, there is a bunch of code that can be changed to enumerate over that collection rather than over the values of an ImmutableDictionary<ProjectId, ProjectState>. That enumeration is actually *very* expensive. For example, during roslyn load, local etl traces indicates the following CPU usage enumerating this dictionary: Under ComputeDocumentIdsWithFilePath: 2.6 seconds Under GetFirstRelatedDocumentId: 1.1 seconds There is a bit of a tradeoff associated with this change. The IReadOnlyList<ProjectId> could be reused very often, whereas there is much less opportunity for sharing ImmutableArray<ProjectState> when forking the solution state. I expect there to be more memory allocated in the speedometer runs, so I'd like to get a feel on how much worse that is before elevating this PR out of draft status. Additionally, SolutionState had a CWT over a sorted version of this IReadOnlyList<ProjectId>. As mentioned earlier, the sharing of this data is quite a bit less common now that it's an ImmutableArray<ProjectState>. I locally measured the stopwatch time spent always sorting this data in ComputeChecksumsAsync and it was a total of 4 ms (averaged over two separate VS runs) when loading the roslyn sln. The ImmutableDictionary is still present in SolutionState, but it was renamed to indicate that it's primarily useful as a lookup tool, and all references treating it as an enumeration mechanism were changed to instead use the ImmutableArray<ProjectState>. * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250404.2 (#78008) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.620202 -> To Version 10.0.620402 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Fix VSTypeScript lsp tests * localize servicehub service name * Simplify workspace initialization in the LSP server Right now we have the logic for which analyzers get added to a workspace in Program.cs, which calls a special method that specifically initializes the main host workspace. This refactors it so that could be used to initialize any workspace, and removes any tricky ordering problems that might happen by using cleaner MEF imports when we have them. * Update test * Update dependencies from https://github.com/dotnet/arcade build 20250404.5 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25164.2 -> To Version 9.0.0-beta.25204.5 * Update maintenance-packages versions (#78005) * Update maintenance-packages versions * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250404.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.620202 -> To Version 10.0.620402 * Address feedback --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Fix EA layering for Razor.ExternalAccess (#77927) Moves things to /Shared to ship in both MS.CA.EA.Razor and MS.CA.EA.Razor.Features At some point we can rename MS.CA.EA.Razor to MS.CA.EA.Razor.EditorFeatures but I didn't bother with that in this PR Shipping in both to not require dual insertion. We can fix this after a consuming change in Razor is inserted * Delete * Update PublishData.json after VS snap to rel/d17.14 * Handle nameof(indexer) in ref analysis (#78015) * Make a couple of features non-experimental * Ensure external access extensions package gets codebase * Feedback * Add extension message handler service teest * Add extension message handler service test * FIx * Add testS * In progress * Test work * Tests * Add test * More tests * Add tests * Add tests * Add tests * Add test * Add test * Add test * Add test * Add test * Update comment * Disable TransitiveVersioningPinning for RoslynAnalyzers. * Remove dependency on EditorFeatures from lsp tests * Remove dependency on EditorFeatures from codelens layer * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20250407.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 10.0.620402 -> To Version 10.0.620702 * Remove dependency on EditorFeatures from build tools * Update dependency versions * Extensions: ref safety analysis (#77967) * Update PublishData.json after VS span to main * In progress * Fix crash in backing field nullability cycle scenario (#77993) * More work * Pass along when an extension was unloaded * Add teset * Add tests * Docs * Simplify * Using alias * Fix * Add tests * Add docs * Update gladstone/roslyn api * Simplify channels in SemanticSearch * Semantic Search: Add support for async queries and FAR tool (#77906) * Simplify further * Simplify further * Localize exception messages * Docs * Docs * Docs * named args * named args * Docs * Move type * Docs * Fix name * Compile just for NET * Unseal LSP types (#78041) * Simplify analyzer api * Update RoslynAnalyzer package projects with dependencies This will fix issues with transitive pinning during source builds. * Ensure LSP uses actual signature help trigger characters * Improve detection of code whose updates may not have effect (#78009) * Do not return metadata names for document symbols * Fix nullability warnings * Review feedback * Remove EditorFeatures from OOP (#78069) * Add back EA.Razor for servicing branches publishdata is pulled from main always. this needs to be present even though the package no longer exists for servicing branches * Remove unused ISemanticSearchWorkspaceHost (#78083) * Split query execution into compile and execute calls (#78081) * Update resourceManagement.yml (#77948) * Expression trees: support optional arguments and named arguments in parameter order (#77972) * Update ignored directives public API (#77968) * Remove experiment * Add Content token to IgnoredDirectiveTriviaSyntax * Add Content token to ShebangDirectiveTriviaSyntax * Fixup public API * Fixup semantic search API list * Fix CLI flag in error message * Remove Update API * Update SemanticSearch API list --------- Co-authored-by: Matteo Prosperi <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Julien Couvreur <[email protected]> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: Matteo Prosperi <[email protected]> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: Jared Parsons <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Carlos Sánchez López <[email protected]> Co-authored-by: Andrew Hall <[email protected]> Co-authored-by: Charles Stoner <[email protected]> Co-authored-by: Tomas Matousek <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: Tomáš Matoušek <[email protected]>
This adds support for awaiting task-like types that are not natively supported by runtime async. Closes #77897.
We now do method construction and validation for runtime async helpers up front in initial binding, rather than doing it in `RuntimeAsyncRewriter`. I've also renamed the APIs as per dotnet/runtime#114310 (comment) (though I haven't added ConfigureAwait support yet, that will be the next PR). We now validate: * The helpers come from `System.Runtime.CompilerServices.AsyncHelpers`, defined in corelib. This means that I now need a fairly extensive corelib mock to be able to compile. When we have a testing runtime that defines these helpers, we can remove the giant mock and use the real one. * We properly error when expected helpers aren't present. * We properly check to make sure that constraints are satisfied when doing generic substitution in one of the runtime helpers. * Runtime async is not turned on if the async method does not return `Task`, `Task<T>`, `ValueTask`, or `ValueTask<T>`. Relates to test plan #75960
* upstream/main: (415 commits) Use lazy initialization for members in CodeFixService (#78484) Targeted perf changes to CommandLineParser (#78446) Exclude VS.ExternalAPIs.Roslyn.Package from source-build Add syntax highlighting of ignored directives (#78458) Fix unexpected conditional state in nullable analysis of conditional access (#78439) Update RoslynAnalyzers to use Roslyns version Fix source-build by renaming Assets folder to assets Unlist M.CA.AnalyzerUtilities as an expected DevDivInsertion dependency Use a project reference for M.CA.AnalyzerUtilities Rectify status of dictionary expressions (#78497) Remove unused field Remove unused field Remove using Fix check Update eng/config/PublishData.json Make internal Remove now unused methods from IWorkspaceProjectContext (#78479) Reduce allocations during SourceGeneration (#78403) Update Roslyn.sln Merge EditorFeatures.Wpf entirely into EditorFeatures ...
Merge main to the feature branch
It was changed in dotnet/runtime#114310 as 0x400 is a thing in framework.
* Add test demonstrating current behavior * Ensure return local is the correct type in async scenarios * Ensure method is actually async when doing local rewrite
* upstream/main: (162 commits) Invoke `dotnet run-api` to obtain virtual project (#78648) [main] Update dependencies from dotnet/arcade (#78578) [main] Source code updates from dotnet/dotnet (#78724) Do not convert tuple expression with error to a bad expression too early (#78645) Updat epersistence version Add helper for mapping between documents and hierarchy+itemids Extensions: nullability analysis for property access (#78646) Add IsNull property to IAsyncToken (#78718) Update MicrosoftVisualStudioExtensibilityTestingVersion (#78661) Always log PID avoid not needed compilationUnit clone (#78676) Fix Make operator glyph consistent witht eh rest of the members [main] Source code updates from dotnet/dotnet (#78710) fix: RS2007 table borders Run on UI thread Organize Handle error case: static ref field (No NullReferenceException) (#78707) Sort Fix crash with introduce local within a compilation unit ...
* Add XML Solution (SLNX) support to MSBuildWorkspace * Update `AbstractImplementAbstractClassCodeFixProvider.cs` source Signed-off-by: Emmanuel Ferdman <[email protected]> * IN progress * IN progress * in progress * in progress * Simplify * Simplify * Cleanup * Rename * Push through initial description * Rename * Removed * Add back disposal * Linked source * Rename * Update docs * Remove * Add comment * Add comment * Fix * Delay loading of CodeRefactoringProvider's till absolutely needed * CR feedback and tests. * Fix comment * CR feedback * Fix crash in 'introduce variable' on top-level statements * CR feedback * Seal certain types in LSP layer * Seal certain types in LSP layer * Publish PR validation to internal feeds * PooledObjects cleanup (#78382) * moved condition above top-level statements * REvert * Seal * Gracefully handle span mapping failing * Fix information logs getting logged as debug in VSCode * Don't unnecessarily create a document when only the document state is needed. (#78463) Cyrus noticed this during a chat where I was considering a larger change to this code. Might as well make the simple/safe change while I consider the larger change too. Other small changes: 1) Early exit if no changed documents 2) Unrelated change adding Checksum overload as I noticed a high frequency caller during solution load (ProjectSystemProjectOptionsProcessor.ReparseCommandLineIfChanged_NoLock) had an ImmutableArray and it was getting boxed and enumerator alloced. * Ensure loghub collects the now verbose level logs * Adjust some more logging messages * Cancel running requests when the connection terminates * Shorten log category name * Extensions: handle extensions in VB SymbolDisplay (#78512) * Switch to non-scouting queue to unblock CI (#78521) * Fix test helper message to avoid NRE (#78532) * Collect data about which code fixes end up making changes that conflict with other code fixes * docs * Revert * Source package fixes (#78534) * Extract helper to make it easier for other features to request copilot analysis * lint * lint * Extensions: only count extensions for determining identifier (#78523) * Cache extension method import info per project ID * Remove telemetry * Use pattern matching * Lint * Add VB ref assembly to semantic search (#78537) * Add support for FieldRva to EnC delta (#78033) * [main] Source code updates from dotnet/dotnet (#78527) * [VMR] Codeflow c53bdd8-c53bdd8 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 267468 * [VMR] Codeflow b422f78-b422f78 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 267725 * Update dependencies from https://github.com/dotnet/dotnet build 267776 --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Introduce -productBuild and -sourceBuild switches (#78519) * Introduce -productBuild and -sourceBuild switches * Update eng/build.sh Co-authored-by: Viktor Hofer <[email protected]> * Update build.sh * Add new options for SB and PB switches * Remove leftover SB arg --------- Co-authored-by: Viktor Hofer <[email protected]> * Document more steps in our C# release process (#78539) * Extensions: analyzer actions (#78319) * Update XAML EA to use DocumentUri instead of System.Uri * Update field value for NavBar Integration Tests (#78553) * fix * fix * Update GetFirstRelatedDocumentId to not return documents with the same path within the same project (#78475) GetFirstRelatedDocumentId had a mismatch in behavior for files within the same project that have the same path (shouldn't really happen, would cause compile errors). Previously, the code would return files from the same proejct when searching the cache, but not when doing the linear walk. Talked with Jason, and he indicated that it was better to have the code not return files from the same project, as callers wouldn't expect that. * Implement PDG.WithProjectsRemoved (#78428) This allows batch removal of projects from the ProjectDependencyGraph. This should eventually give us a small perf benefit, but only at the point where our projects can be disposed (or processed) in batches, which is not something we currently do. * Selectively persist the commandline to temporary storage (#78441) Only write command lines to temporary storage when they may later be needed. Persisting project command line arguments is surprisingly costly, as evidenced by the profile image below. As this storage is only needed when there is an effective ruleset path, we can limit when we persist to storage to be limited to that scenario. See PR for detailed performance information. * File based programs IDE support (#78488) Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> * Update dependencies from https://github.com/dotnet/arcade build 20250513.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25255.5 -> To Version 9.0.0-beta.25263.2 * Extensions: pattern-based constructs (#78480) * Unset CompilerType from Csc (#78483) * Unset CompilerType from Csc * Remove CompilerType logic * Add Microsoft.CodeAnalysis.Extensions package (#78388) * Fix MoveType to create debuggable documents (#78554) * Move SpecializedCollections to Microsoft.CodeAnalysis.Collections namespace (#78466) * Add a reference to the tracking bug for a workaround * Fix embedded language classification inside multi-line string * Remove 'Opt' suffixes * Unify resource strings for special case checks * NRT * mIn progress * Simplify * Simplify * Remove localized strings from Collections source package (#78576) * Revert "Update XAML EA to use DocumentUri instead of System.Uri (#78555)" This reverts commit 2611c9a, reversing changes made to f4e6964. * Implement `Enum.IsDefined` check refactoring * Rename LSP messages for VisualStudio.Extensibility integration (#78598) Co-authored-by: Matteo Prosperi <[email protected]> * More improvements to source packages (#78587) * Editor configs for source packages * Add nullable enable * Include linked files in source packages * Suppress RS1024 * Remove duplicate nullability directives * Remove unnecessary extensions * Move FatalError and FailFast to Contracts package * Add disclaimer * Ensure we pass unique binlog paths to each BuildHost Otherwise if we launch multiple processes, they might step atop each other and cause locking issues. * Clean up our SpellingExclusions Somehow almost every line started with a UTF-8 BOM. This fixes it. * Track used assemblies of data section string literals (#78552) * Track used assemblies of data section string literals * Move reporting to module * Fix a failing test * Improve test * Add a comment * Support local functions in breadcrumbs * hotfix to fix restore and stop including bin/obj artifacts in directory with loose files (#78615) * Fix angle brackets in generics in hover * more directly walk the tree for local functions and add tests * Give .NET Framework build task in sdk different identity (#78584) closes #78565 * [VMR] Codeflow 015a854-015a854 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 268651 No dependency updates to commit * [VMR] Codeflow 604dfc7-170498a [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 268722 No dependency updates to commit * review feedback * Fix option reading * Simplify equivalence keys * Make refactoring resilient against absence of `InvalidEnumArgumentException` type * Fix formatting * Update Workspace.MSBuild to reference Microsoft.Build.Framework. * LSP: Fix batch builds for file-based programs and fix `"dotnet.projects.binaryLogPath"` throwing an exception (#78644) Co-authored-by: Joey Robichaud <[email protected]> * Convert operand of `true`/`false` operator invoked as part of `&&`/`||`operator evaluation (#78629) Fixes #78609. * Extensions: rename syntax node (#78625) * Simplify * Use SolutionFileReader instead of calling out to BuildHost Removes the GetProjectsInSolution BuildHost API. Instead we can use the SolutionPersister library in processes to parse the projects from a solution file. * StaticLogMessage isn't pooling correctly Noticed this when looking at a profile and was curious why there were 3 MB of allocations of the StaticLogMessage type. LogMessage.Free sets _message to null before calling FreeCore, thus StaticLogMessage.FreeCore was never adding items back to it's pool. The ordering of LogMessage setting _message to null and calling FreeCore is important, so that can't be changed. Instead, add a flag to StaticLogMessage to indicate whether it's in a constructed state or not. * Fixing symbol publishing (#78650) These need to be manually listed given that they aren't published directly as a NuPkg * Compare symbols by metadata name when searching for eqivalent symbols in FAR engine * Extensions: disallow indexers (#78626) * Add untriaged label to all new issues (#78658) * Update resourceManagement.yml * Update resourceManagement.yml * Fixed crash in CSharpConvertToRecordRefactoringProvider. * Return arity check for method symbols * Fix doc comment * Update src/Features/Core/Portable/SymbolSearch/SymbolSearchOptions.cs * Fix * Make solution file reading async * Fix storage * Hot Reload: Handle document deletes (#78516) * Use SBRP version of M.CA for analyzers in the context of source build (#78668) * fix symbol publishing? (#78671) * Cleanup * Use ThrowIfFalse when resolving paths * Add test assertions * Applied code review suggestions. * Update Microsoft.Build.Tasks.CodeAnalysis.Sdk.csproj (#78681) * Fix nullable crash for field keyword in partial property (#78672) * Use VerifyDiagnostics format to report CompileAndVerify diagnostics (#78666) * Revert "Update Microsoft.Build.Tasks.CodeAnalysis.Sdk.csproj (#78681)" (#78687) This reverts commit 6d490de. * Revert "fix symbol publishing? (#78671)" (#78686) This reverts commit 2b6024e. * Add comment * [main] Source code updates from dotnet/dotnet (#78663) * [VMR] Codeflow c3c7ad6-c3c7ad6 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 268973 No dependency updates to commit * [VMR] Codeflow d219c4f-d219c4f [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 269082 No dependency updates to commit --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Add a test to verify that behavior is expected and bug no longer occurs * [main] Source code updates from dotnet/dotnet (#78692) * [VMR] Codeflow 2b6024e-2b6024e [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 269352 No dependency updates to commit --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Modify ABWQ.AddWork to take in a ROS instead of an IEnumerable (#78691) I'm seeing this enumerator allocation as account for 50 MB (0.9%) in a customer trace for feedback ticket https://developercommunity.visualstudio.com/t/Razor-Development:-30-Second-CPU-Churn-A/10904811 This shows up a bit smaller in the C# editing speedometer test, but does show as 2.3 MB. Test insertion showed allocations were removed. See PR for more numbers and speedometer test results. * Add assert * Add test * Add support for 'fixed' * Fix crash with introduce local within a compilation unit * Sort * Handle error case: static ref field (No NullReferenceException) (#78707) * Organize * Run on UI thread * fix: RS2007 table borders * [main] Source code updates from dotnet/dotnet (#78710) * [VMR] Codeflow 533fde8-533fde8 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 269499 No dependency updates to commit * Update dependencies from https://github.com/dotnet/dotnet build 269610 No dependency updates to commit --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Make operator glyph consistent witht eh rest of the members * Fix * avoid not needed compilationUnit clone (#78676) * Always log PID * Update MicrosoftVisualStudioExtensibilityTestingVersion (#78661) * update extensibility version * remove added package? * update minversion * test * update vswhere version * update versions.props vswhere * update min version * update coreeditor version ranges * Add IsNull property to IAsyncToken (#78718) * Extensions: nullability analysis for property access (#78646) * Add helper for mapping between documents and hierarchy+itemids * Updat epersistence version * Do not convert tuple expression with error to a bad expression too early (#78645) * [main] Source code updates from dotnet/dotnet (#78724) * [VMR] Codeflow f5705c8-57b0396 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 269724 No dependency updates to commit --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * [main] Update dependencies from dotnet/arcade (#78578) * Update dependencies from https://github.com/dotnet/arcade build 20250513.5 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25263.2 -> To Version 9.0.0-beta.25263.5 * Update dependencies from https://github.com/dotnet/arcade build 20250516.2 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25263.2 -> To Version 9.0.0-beta.25266.2 * Update dependencies from https://github.com/dotnet/arcade build 2025052.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 9.0.0-beta.25263.2 -> To Version 9.0.0-beta.25271.1 --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Invoke `dotnet run-api` to obtain virtual project (#78648) Co-authored-by: David Barbet <[email protected]> --------- Signed-off-by: Emmanuel Ferdman <[email protected]> Co-authored-by: Deepak Rathore (ALLYIS INC) <[email protected]> Co-authored-by: Emmanuel Ferdman <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Evgeny Tvorun <[email protected]> Co-authored-by: Victor Pogor <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Tomáš Matoušek <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: Andrew Hall <[email protected]> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: Julien Couvreur <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Ella Hathaway <[email protected]> Co-authored-by: Viktor Hofer <[email protected]> Co-authored-by: Ankita Khera <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: Matteo Prosperi <[email protected]> Co-authored-by: Matteo Prosperi <[email protected]> Co-authored-by: Jared Parsons <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: AlekseyTs <[email protected]> Co-authored-by: John Douglas Leitch <[email protected]> Co-authored-by: Matt Thalman <[email protected]> Co-authored-by: Bernd Baumanns <[email protected]> Co-authored-by: Thomas Shephard <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: David Barbet <[email protected]>
* upstream/main: (353 commits) PR Feedback Update enum values Expose `IsIterator` as a public API (#78813) move up Docs :Extract type Only add annotations to potential references Add test Simplify Specify single reducer Code simplification [main] Source code updates from dotnet/dotnet (#78805) Obsolete api Remove more unneeded references Expose a couple of things to Razor Remove now unused Progression references and related hacks Fix scoped variance checks involving ref struct interface implementation (#78883) Extensions: allow cref references to extension members (#78735) Collect stats Revert ...
* Simpli * Simplify * Simplify * docs * docs * Clear * Update src/Workspaces/Core/Portable/FindSymbols/Shared/AbstractSyntaxIndex_Persistence.cs * Remove method * Fix ILBuilder visualization (#78764) Turns out that we do have visualization of in-progress IL building, but it's been broken since 2020, when we renamed Roslyn.Test.Utilities to Microsoft.CodeAnalysis.Test.Utilities. It was then further broken by the change a few months ago to pass IL visualization formats along. This gets the debugger display working again. * Remove EditorFeaturesWpf TestComposition (#78769) After the EditorFeatures.WPF => EditorFeatures refactoring, this TestComposition became equivalent to the EditorFeatures one, so just removing the WPF one. * Fix renames across different extensions * Add docs * Add docs * Update src/VisualStudio/Core/Def/PackageRegistration.pkgdef * Explicitly reset * Reset state * Add docs * Simplify * Revert * Simplify * Simplify * Docs * Update src/VisualStudio/Core/Def/Commands.vsct Co-authored-by: David Barbet <[email protected]> * Update src/VisualStudio/Core/Impl/SolutionExplorer/SymbolTree/SymbolItemContextMenuController.cs Co-authored-by: David Barbet <[email protected]> * Simplify * Simplify * multi notify * only if it changed * Don't move backwards * Docs * Update src/VisualStudio/Core/Impl/SolutionExplorer/SymbolTree/SymbolTreeChildCollection.cs * Ensure sln load uses project absolute paths * lint * Rename field to make it clearer what it's used for It's only for dynamic files, so make that clear. * Don't refresh dynamic files under a lock When we were getting the notification of a dynamic file being changed, we were taking the project and workspace locks before fetching the actual content. This is really expensive now that the fetching itself might not be instant. Fundamentally this change is just switching the work to acquire the locks to get the setup info, then releasing the locks and calling the provider to get the info. I'm putting this around a batching queue so we can deduplicate lots of events at once, and also to ensure ordering so if we were to try refreshing the document more than once we don't end up in a case where we have two threads trying to put different versions of the document into the workspace and getting the ordering wrong. Fixes #78734 * Fix cast before we unsubscribe This was otherwise throwing an exception every shutdown. * Adjust implementation to respect diagnostic flag and update tests * Remove workarounds for bugs that have been fixed Closes #77995 * Remove a workaround we had for an old version of Copilot This bug was fixed a long time ago. * Switch return to continue * Fixed multi-variable declaration support in RemoveUnnecessarySuppressions. * Removed whitespace. Co-authored-by: DoctorKrolic <[email protected]> * Simplified TestRemoveDiagnosticSuppression_Attribute_MultiVariableDeclaration with inline data. * Expanded remove unnecessary suppression tests, removed unnecessary loop and fixed partial method/property support in AbstractRemoveUnnecessaryInlineSuppressionsDiagnosticAnalyzer. * Directly create virtual project when dotnet run-api is missing for now * Avoid dereferencing null CheckConstraintsArgs.CurrentCompilation (#78729) Fixes #78430. * Updates to unblock dartlab pipeline (#78793) * update timeout * wip * Add main to main-vs-deps flow (#78798) * Create branch-merge2.jsonc * Update main-merge.yml * Rename branch-merge2.jsonc to branch-merge-2.jsonc * Update PublishData.json * Update and rename branch-merge.jsonc to main-to-main-vs-deps-branch-merge.jsonc * feedbacl * make clear main is for validation * EnC: Simplify diagnostic reporting (#78708) * Refactoring of extension methods in source packages (#78620) * Change namespace of OneOrMany and TemporaryArray to MS.CA.Collections * Cleanup Enumerable and ImmutableArray extensions * Update imports/usings * Fix VB remove-imports not showing up * add the schedule back to main-merge (#78807) * Fix LSP references for using alias * Clean up HasDuplicates extension method (#78808) * Extensions: Do not consider extension block methods as entry points, consider their implementation methods instead (#78667) * Decouple EditorFeatures.Test.Utilities from VS services Microsoft.CodeAnalysis.EditorFeatures.Test.Utilities depended on Microsoft.VisualStudio.Editor which brought along various VS layer services. Further, we had some stub implementations of those VS services there. Digging into this this coupling wasn't really necessary: 1. There were EditorFeatures tests using the editor adapters stub, but those tests pass just fine without it, so that was easy to move to the VS specific tests. 2. StubVsServiceExporters didn't appear to be used either, so unsure why those were in this layer at all. Those were also moved. 3. We had implementations of some settings services, which it's easier to just delete and remove the options persister from the composition in the first place. This also better ensures that we don't have code that might try creating registry keys from ILocalRegistry which we absolutely don't want. * Extensions: mark skeleton type with 'specialname' (#78690) * Fix await completion in an async iterator * Extensions: fix lowering of implicit conversion on receiver in pattern-based scenarios (#78685) * Add test * Find metadata reference for alias * Add a fallback path when launching the BuildHost * refactor * Added notes to update GetBuildHostPath if packaging changes * Update comments * Add heuristic for the loaded from nuget package scenario * Fix corruption of sliding text window when trying to peek backwards. (#78774) Co-authored-by: Fred Silberberg <[email protected]> * Track changed text instead of clearing immediate window. * EnC: Partial solution updates (#78744) * Restore some parts of the progression api some legacy components (like codemap) use. * Remove unused internal APIs * Remove unused internal APIs * Remove unused internal APIs * Remove unused internal APIs * Make static * Simplify * Avoid ignored directive errors in disabled regions (#78158) * Extensions: use specific tracking issues for different areas (#78834) * Extensions: relax inferrability rule (#78758) * Remove blank line output from the node writer proportional to the number of non-abstract nodes (#78844) * Revert "Refactoring of extension methods in source packages (#78620)" (#78850) This reverts commit 917401d, broke typescript * Switch off of mutlidictionary (#78851) This is from ICSharpCompiler, and is therefore causing unnecessary dll loads. * Switch behavior of "Go to definition" and "Go to implementation" for partial members * Fix LSP tests * Fix peek test * Switch to existing helpers for multi-dictionary use * call TryGetValue to get dictionary entry (#78863) * Remove more progression code * Remove more progression code * Remove more progression code * Remove more progression code * Remove more progression code * Remove more progression code * Remove more progression code * Remove more progression code * Add VSTypeScriptAsynchronousTaggerProvider2 for TypeScript that avoids TemporaryArray (#78866) * Remove more progression code * Remove more progression code * Remove more progression code * Remove more progression code * Fix build break (#78870) * Add more ETW events to trace assembly loading (#78840) * Add more ETW events to trace assembly loading * Update src/Compilers/Core/Portable/CodeAnalysisEventSource.Common.cs Co-authored-by: Joey Robichaud <[email protected]> * Put correct alc reference * Use binary literals --------- Co-authored-by: Joey Robichaud <[email protected]> * Introduce EA layer for TS to integrate with classification * Simplify * Add CommandLineResource API (#78679) * Revert "Revert "Refactoring of extension methods in source packages (#78620)" (#78850)" This reverts commit e083be9. * Fix * Revert "Fix" This reverts commit 574935d. * Revert "Revert "Revert "Refactoring of extension methods in source packages (#78620)" (#78850)"" This reverts commit 27ae586. * Lint * Remove all progression code * Revert * remove code * Fix * Reduce allocations under ContextMutableIntervalTree (#78885) There are some closure allocations unnecessarilly happening during ContextMutableIntervalTree construction. Simply changed a couple methods to static and added a parameter for the extra bit of data they need to get rid of those allocations. This is a very small improvement, only about 0.1% (6 MB) of allocations during typing in the razor speedometer test. * Reduce allocations in the ImageElementConverter and ImageIdConverter Read methods (#78881) * Reduce allocations in the ImageElementConverter and ImageIdConverter Read methods These methods show up in the typing scenario in the razor speedometer test as about 0.9% (63 MB) of allocations. 1) Changed ImageIdConverter to be more like ImageElementConverter and not create a JsonDocument object to query 2) Changed several Utf8JsonReader.GetText calls to instead use Utf8JsonReader.CopyString 3) Changed JsonElement.GetString and new Guid(...) to instead use Utf8JsonReader.GetGuid() Note that if this PR is merged, I'll also try to make a change to vslanguageserverclient to also do the same as that code has the same issues. * Fix issue serializing null options in VB * Yield in task continuation to prevent stack overflow * Move to .NET 10 Preview 5 * Remove RemoteControl workaround * Lint response * Lint response * Lint response * Lint response * Lint response * Fix issue with not resetting valueLength (#78890) * Fix issue with not resetting valueLength #78881 was just merged with a small bug, in that valueLength wasn't reset before it was used a second time. If the typeName is > 64 chars, then this would have thrown a different exception than it should have down a couple lines. * remove unused method * Lint response * Lint response * fix compiler side * Simplify workspace hookup in syntactic tagger * Move * Switch to ITextBuffer2 * REvert * REvert * Update src/EditorFeatures/Core/InlineDiagnostics/AbstractDiagnosticsTaggerProvider.cs * Update src/EditorFeatures/Core/StringIndentation/StringIndentationTaggerProvider.cs * Update src/EditorFeatures/Core/Tagging/AsynchronousViewportTaggerProvider.cs * REvert * remove more workspace registration code * Move to .NET 10 Preview 5 (#78906) * Move to .NET 10 Preview 5 * Lint response * Lint response * Lint response * Lint response * Lint response * remove unused method * Lint response * Lint response * fix compiler side * more --------- Co-authored-by: Cyrus Najmabadi <[email protected]> * Fix * Inline Hints - do not allow double click for collection expression type hint (#78900) * do not allow double click for collection expression hint * Update src/EditorFeatures/Test2/InlineHints/CSharpInlineTypeHintsTests.vb Co-authored-by: Cyrus Najmabadi <[email protected]> * comment --------- Co-authored-by: Cyrus Najmabadi <[email protected]> * Add tests * Revert "Update code to use null propagation (#78733)" This reverts commit d785549, reversing changes made to a8808be. * Revert "Move to .NET 10 Preview 5 (#78906)" This reverts commit a7fa681. * fix warning * Revert "Update to using unbound nameof(X<>) expressions (#78731)" This reverts commit 6a09280, reversing changes made to a7fa681. * Revert "Update to using simple untyped lambdas (#78732)" This reverts commit a8808be, reversing changes made to 6a09280. * Fix OOP crash issue with copilot change analysis * Re-enable IDE0051 (#78919) This re-enables the unused member analyzer and removes all of the methods it flagged as unused. * Extensions: address some follow-up comments (#78847) * Pass missing Hot Reload result properties (#78929) * Fix deadlock if an MSBuild task is writing to stdout When we switched over to communicating over a named pipe rather than stdin/stdout, we were still redirecting stdin and stdout. This had the side effect that if a build task was directly writing to standard out, the build would eventually deadlock since we weren't reading from the other side. I thought about simply not redirecting stdin/stdout, but I could imagine other problems might come up if we were to have multiple build hosts trying to share stdin/stdout. So now we'll log stdout the same way we log stderr, and explicitly close stdin so readers won't deadlock waiting for input. Fixes #78766 * Revert * Collect stats * Extensions: allow cref references to extension members (#78735) * Fix scoped variance checks involving ref struct interface implementation (#78883) * Remove now unused Progression references and related hacks * Expose a couple of things to Razor * Remove more unneeded references * Obsolete api * [main] Source code updates from dotnet/dotnet (#78805) * [VMR] Codeflow a528f84-a528f84 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 270315 No dependency updates to commit * [VMR] Codeflow f5faea9-f5faea9 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 270450 No dependency updates to commit * Update dependencies from https://github.com/dotnet/dotnet build 270603 No dependency updates to commit * Update dependencies from https://github.com/dotnet/dotnet build 270662 No dependency updates to commit * [VMR] Codeflow 86826d3-86826d3 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 271018 No dependency updates to commit * [VMR] Codeflow 32a2620-32a2620 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 271181 No dependency updates to commit * [VMR] Codeflow 25357a9-25357a9 [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 271343 No dependency updates to commit * Update dependencies from https://github.com/dotnet/dotnet build 271417 No dependency updates to commit * Revert incorrect Roslyn.sln changes --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Viktor Hofer <[email protected]> * Code simplification * Specify single reducer * Simplify * Add test * Only add annotations to potential references * :Extract type * Docs * move up * Expose `IsIterator` as a public API (#78813) * Expose `IsIterator` as a public API * Fix workspace generated method symbol implementation * Implement new property in yet another non-compiler-owned method symbol implementation * SemanticSearch.ReferenceAssemblies * Verify public code path in C# * Add negative tests * Add C# local function tests * Test VB lambda iterators * Revert accessibility change * Disable warnings * Use explicit type * Simplify lambda tests * Test interface property * Add additional VB case * Update enum values * PR Feedback --------- Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: John Douglas Leitch <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: AlekseyTs <[email protected]> Co-authored-by: Ankita Khera <[email protected]> Co-authored-by: Tomáš Matoušek <[email protected]> Co-authored-by: Julien Couvreur <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: Chris Sienkiewicz <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: tmat <[email protected]> Co-authored-by: Jared Parsons <[email protected]> Co-authored-by: David Wengier <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Viktor Hofer <[email protected]>
* Update EH tests to run with runtime async * Handle non-null exception filter prologues in the spill sequencer * Add more testing to show current incorrect behavior * Unskip ConditionalFacts that do not need to be skipped. * Handle ensuring that the method remains valid, even when there is an `await` in a finally section. Add signifcant testing of `await using`. * Fix baselines * Support `await foreach` and add runtime async verification to existing tests. * Remove unnecessary generic * Failing tests, add async void test suggestion * CI failures * Add additional test * Test fixes * Remove implemented PROTOTYPE, add assertion on behavior. * Update to SpillSequenceSpiller after some more debugging and tightening the assertion * Fix nullref * Enable nullable for VisitCatchBlock
…from the BCL (#79135) * Support using a simple overload resolution for finding Await helpers from the BCL This PR removes special knowledge of what `Await` helpers correspond to what types, and instead implements a very simple form of overload resolution. We immediately bail on any conflict or error and fall back to attempting to use `AwaitAwaiter` or `UnsafeAwaitAwaiter` when such scenarios are detected. I've also updated the rules to better reflect what is actually implementable. * Create the full BoundCall in initial binding. * PR feedback.
* upstream/main: (698 commits) Use new dll name for hooking xunit dispose Fix helix timeout Replace Assert.False call Add console logger to ensure helix console log has detailed info Disable Assert that is causing hangs *** DO NOT MERGE: Revert "Remove most remaining uses of WorkspaceChanged off the UI thread (#78778)" (#79366) Update configs for snap nrt Ensure we collect dumps on hangs/crashes Null tolerance Ensure generated types come after top level statements Allow user to still create a new field/prop when offering to initialize an existing prop Fix issue where typeof/sizeof weren't classified properly in FindRefs Add test showing issue no longer reproes Add test Disable more tests for #79352 Track assembly names, not counts Fix Fix crash in replace property with methods Fix issue with remove unnecessary parens in vb ...
* Simplify code * Simplify code * Ensure server is loaded and unloaded with the solution * Check that a resulting ternary operator conversion is implicit before removing a cast in one of its branches * Extract method for handling source generated documents * Revert "Remove the 'intent' subsystem from roslyn (#79179)" This reverts commit 4e03ac9, reversing changes made to 93b1b3e. * Remove legacy intents that are no longer hooked up * Remove unnecessary folder in project file * More cases * More cases * remove tests * Reduce allocations of BoundBinaryOperator.UncommonData (#79200) * Remove duplicate method * Extensions: adjust SpecialName on implementation methods (#79068) * Update azure-pipelines-integration-dartlab.yml (#79206) * Rename * Remove obsolete code * Extract common lexer code into helpers (#79214) * Improve diagnostic for ambiguous predefined type (#79196) * Improve diagnostic for ambiguous predefined type * Update pre-existing tests * Keep translations * Revert unnecessary changes * Add a source package that can be used to connect to the roslyn build server (#78986) * Add BuildClient package * Allow sdk passing compiler hash * Reuse in Replay * Add a bit how we can and will break the APIs * Move more files to the shared folder * Use shared file list in build task * Address some known functionality gaps for extension operators (#79167) Related to #78968. Related to #76130. * Use spans in low level lexer char array handling code * Use spans in low level lexer char array handling code * VB tests * Remove duplicate code for processing arrays vs strings * Revert * Fix test * Add internal APIs for prototyping * Share more code * Remove unused function * Use spans in low level lexer char array handling code (#79232) * Remove unused functions (#79234) * Update src/Compilers/Core/Portable/InternalUtilities/StringTable.cs * Remove using * Rename FileBasedProgramsProjectFactory to MiscellaneousFilesWorkspaceProjectFactory * Don't double register for document sync * Don't check configuration if the client doesn't support it (ie, tests) * Extensions: adjust logic related to primary ctor parameter (#79056) * Address another set of functionality gaps for extension operators (#79227) Related to #78967 Related to #78968 Related to #76130 * Revert "Use spans in low level lexer char array handling code (#79232)" (#79245) This reverts commit fb38d6b. * Use spans in low level lexer char array handling code (part 2) (#79250) * Allow the Razor extension to report telemetry (and initialize) * Make the new Workspace.Register*Handler methods public We're obsoleting the old ones since the expectation going forward is most users can use the new ones only. * Do not use a constructed method symbol in a BoundMethodDefIndex (#79211) * Simplify * Address follow-up comments for extension operators (#79249) Closes #79136. * Use collection expression * Docs * ordering * Initial support for adding obsolete attributes to primary constructors * Flesh out * Use raw strings * File scoped namespaces * Simplify tests * in progress * Simpler approach * Revert * Simplify tests * Working * Delete file * Remove file * Use the miscellaneous files project name for rich misc projects (#79267) * Update tests * Inline strings in test code * Make tests non-async * Add the "experimental feature" string back Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2453154 * Move telemetry initialization out of our UI-thread bound helper This isn't needed anymore. * Update global.json * Update nuget.config * Update Arcade * Use .NET 10 Preview 5 SDK * Add back dotnet9 feed * Add back additional feeds * Add back dotnet6 feed * The Unix CI build does not need to pack or publish * Downgrade arcade * Reapply "Move to .NET 10 Preview 5 (#78906)" This reverts commit 1ab27c2. * Use scouting queue for integration tests * Revert: Use scouting queue for integration tests * Fix Rename adornment positioning after scrolling * Fix debugging of build tasks (#78271) * Fix debugging of build tasks * Split into a new target * Fix up tests * Tweak 'add required parens' to recognize a common C# idiom * Lint * Revert compiler change (#79288) * Extensions: extension grouping type names (#79217) * Fix ref safety of user-defined increment operators (#79034) * Fix ref safety of user-defined increment operators * Update after merge * Improve code and tests * Inline test code * Make tests synchronous * Remove unnecessary await * Enable C# classification in more tests * Fix unit tests There's two issues here: 1. Some tests of the VS layer didn't have the telemetry service in the first place. 2. There was now a circularity between the VisualStudioWorkspace and VisualStudioWorkspaceTelemetryService, so a Lazy has been added. * Use collection expressions * Explicitly document that ITaggerEventSource.Changed can be on any thread All subscribers are working in thread-safe manners (they either take locks to clear caches, or use existing batching/threading primitives to queue new work). * Document that LspSolutionChanged may happen on any thread Subscribers were already thread safe. I've also removed the IMPORTANT warning since it seems quite stale -- this is already in a delayed queue so it's not really clear what it meant. * Remove subscription from WorkspaceChanged in the StackTraceExplorer I'm unable to figure out what the intent was here -- it clears the list but only on a SolutionChanged event, which is the type of event raised if multiple projects are modified at once in a single workspace change -- any other type of event would have a more specific kind. I could imagine the intent might have been for solution close, but then I can imagine scenarios where the user might have pasted a stack and now needs to switch the solution to navigate from the stack. Since this likely never ran, I'm just deleting it. * Avoid checking the CanonicalName each time for the analyzer If the user expands a node in a CPS project wanting to look at the diagnostics under an analyzer, but we haven't been told about that analyzer let, we stick a WorkspaceChanged handler there to find it once it comes back. We were hopping to the UI thread to see if the CanonicalName of the item could have changed, but that's not really going to happen ever for these items, so we can just grab it once during creation and be done with it. * Remove thread requirement from CodeAnalysisDiagnosticAnalyzerService This looks to be safely callable from any thread. * Reduce probability of stack overflow during exception handling in ModelComputation (#79292) Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2428510 This was previously addressed by adding a Task.Yield to the TransformModelAsync execution, instead this moves that stack size mitigation to the exception handling process. Per #26567, the vast majority of stack size during stack unwinding is due to the unwinding process itself. * Remove synchronous rename (#78839) * wip * wip * wip * fix tests * wip * remove unused code * update test impl * update option test * add cancel method * some cleanup * call CommitAsync in tests instead * fix some comments and naming * rename commit to make it more clear it's an async operation * feedback * feedback * fix integration test * Update * Add test demonstrating issue * inline * fix casing mismatch when using non-unc file paths * Collection expressions * Skip failing tests * Add cookbook section for avoiding inheritance (#79276) * Add cookbook section for avoiding inheritance Adds a section to the incremental generators cookbook on why users should avoid inheritance, that goes over a few possible scenarios and how they can hurt IDE responsiveness. * Update ToC * Add a small note on preferring FAWMN. * Make 'convert to raw string' a syntax-only refactoring * Fix issue with use-raw-string and fix-all * Fix bad merge * Use raw strings in tests * [main] Source code updates from dotnet/dotnet (#79313) * [VMR] Codeflow 9eec48b-9eec48b [[ commit created by automation ]] * Update dependencies from https://github.com/dotnet/dotnet build 274568 No dependency updates to commit --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Fix argument indentation * REvert * Simplify initialization of OpenFileTracker There's only two things here that could potentially need the UI thread: 1. The Running Document Table subscription, but OpenTextBufferProvider already abstracted that away. 2. The IEditorOptionsFactoryService usage, which being a MEF component shouldn't care, but even then we don't need it right away. It's easy to clean all this up, so just do so. * Revert * revise * NRT * Auto prop * nrt * Fix * Update src/Compilers/Core/Portable/AdditionalTextFile.cs * better fix * better fix * better fix * Set DeployExtension for all the extensions we expect to deploy * Set RoslynCompilerType=Custom in all toolset package flavors (#79327) * Fix code gen for some increment/compound assignment scenarios involving constrained calls. (#79293) Fixes #79268 * In progress * In progress * Hook up * Add work item * Cleanup * Simplify * Update to xunit.runner.visualstudio 3.1.1 Address changes from dotnet/sdk#49248. * Temporarily increase timeout of helix items to see if it resolves timeouts * Update resx generator test resources to assert new behavior, and fix generator in one instance * Revert broken raw string changes in PropertySetAnalysisTests * Fix 'use var' with spans * Skip tests affected by dotnet/runtime#117566. * Disable tests for #79351 * Disable tests for #79352. * Make tests more consistent * Fix issue offering to remove nullable cast in a ternary expression * Fix not offering to remove unnecessary nullable pragmas * Fix issue with remove unnecessary parens in vb * Fix crash in replace property with methods * Fix * Track assembly names, not counts * Disable more tests for #79352 * Add test * Add test showing issue no longer reproes * Fix issue where typeof/sizeof weren't classified properly in FindRefs * Allow user to still create a new field/prop when offering to initialize an existing prop * Ensure generated types come after top level statements * Null tolerance * Ensure we collect dumps on hangs/crashes * nrt * Update configs for snap * *** DO NOT MERGE: Revert "Remove most remaining uses of WorkspaceChanged off the UI thread (#78778)" (#79366) This reverts commit 67cce50, reversing changes made to aafd6eb. Going to run a test insertion to see if this is the cause of regressions flagged in https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/650773 * Disable Assert that is causing hangs Will follow up with an issue but disabling for now to see if this unblocks the CoreCLR tests * Add console logger to ensure helix console log has detailed info * Replace Assert.False call This `Assert.False` call was executing directly an a thread pool thread. That meant when it triggered it was an unhandled exception on a TPT which crashes the process. The calling code already fails the test when this happen hence changed this to just output the failure info to the test logs. * Fix helix timeout * Use new dll name for hooking xunit dispose --------- Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: David Wengier <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: AlekseyTs <[email protected]> Co-authored-by: Julien Couvreur <[email protected]> Co-authored-by: Ankita Khera <[email protected]> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: [email protected] <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: Gen Lu <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Oleg Tkachenko <[email protected]> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: jaredpar <[email protected]>
* upstream/main: (224 commits) Mark SyntaxTokenParser as non-experimental (#79521) Add test Fix behavior Fix issue where we weren't properly adding elastic trivia to newly generated members Cleanup test methods inline test strings Tweak build break fix Tweak build break fix Revert "Fix main build break AGAIN (#79559)" [main] Source code updates from dotnet/dotnet (#79563) [main] Source code updates from dotnet/dotnet (#79483) Projects to deploy (#79430) Fix main build break AGAIN Fix main build break Add Enum static extensions (#79546) Also downgrade System.Numerics.Vectors for VS Update logic Convert ValueTaskFactory methods to static extensions (#79541) Add back Fix issue with 'use explicit type' and nullable tuples ...
* Support interpolated string handlers in extension blocks (#78425) * Support interpolated string handlers in extension blocks Closes #78137. * A few tests fail PEVerify * Update handling of receivers in static scenarios and add tests for indexers/static methods * Update after merge * Ensure nullable index adjustment happens always, not just when the receiver parameter is used. * Additional il verification progress * PR feedback. The only remaining item is additional testing for ref safety to record the current state. * Additional PR feedback * More testing, suggested simplification * Simplify and more testing. * Feedback * Suggested optimization * Add skipped test for #78433. * Fix loss of nullability attributes when getting the 'constructed reduced from' method. (#79400) * Add tracking issue for disabled assert (#79427) Reference tracking issue #79426 for the disabled assert. * Fix code gen for some compound assignment scenarios involving extension properties. (#79339) * Extensions: extension marker type name (#79308) * Move to xunit.runner.visualstudio 3.1.3 * Avoid eliding pointer-to-ref conversions (#79311) * Avoid eliding pointer to ref conversions * Consider only user-defined locals * Update pre-existing tests * Test evaluation order * Explain user-defined local check * Avoid reusing temps whose refs might be captured (#76009) * Avoid reusing temps whose refs might be captured * Revert some changes * Simplify the heuristic * Avoid reusing any local whose address has been taken * Update tests * Inline a function * Revert unrelated change * Remove non-reusable locals after checking for them * Keep ref count for addressed locals list * Extend an assert * Add high-level comment to MightEscapeTemporaryRefs * Filter non-reusable locals * Simplify `int`s to `bool`s * Replace coalesce with an assert * Mark nested calls as always used * Fix this parameter of nint methods * Test chained call * Simplify by using this parameter symbol * Fix readonly targets * Fixup a test * Remove an unused parameter * Fix nullability after merge * [main] Update dependencies from dotnet/arcade (#79385) [main] Update dependencies from dotnet/arcade - Revert .NET SDK bump - Set NUGET_PACKAGES for bootstrap builds in CI - Set NUGET_PACKAGES for Correctness_Build_Artifacts - Add tracking issue for workarounds - Call nuget restore with the -publish flag - We need to restore where we publish - Add comment for strange restore behavior - Update comment * Fixes rename attribute bug (#79418) * fix bug * update test * simplify * comment * clarity * gracefully handle the document or languageservice being null * Adds EqualityComparer<T>.Create polyfill * Revert compiler changes * Update dependencies from https://github.com/dotnet/arcade build 20250717.3 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 10.0.0-beta.25358.3 -> To Version 10.0.0-beta.25367.3 * Move to .NET 10p6 (#79438) * Move to .NET 10p6 Let's try to get ahead of the next one. * Update contributing docs as well. * Allow razor to use SolutionChecksumUpdater (#79373) * Allow razor to use SolutionChecksumUpdater SolutionChecksumUpdater allows incremental updates of sourcetexts in the server process, but was previously limited to just documents in the solution. Instead, by loosening this to allow TextDocuments, razor editing can have incremental updates of the primary razor document when cohosting is turned on. * use is/or instead of ==/|| * Remove dependency on ClassificationOptions and DefinitionItem from Semantic Search service (#79439) * Update insertions for VS release changes * Fix static extension method not showing up on enum type * Add workitem * cleanup * Use ConfigureAwait(true) when in a blocking JTF run call * GetTextSynchronously * Update src/VisualStudio/Core/Def/LanguageService/AbstractLanguageService`2.VsLanguageDebugInfo.cs Co-authored-by: Jason Malinowski <[email protected]> * Make synchronous * Docs * Allow Razor to create a formatting options, and send it to OOP * Update dependencies from https://github.com/dotnet/arcade build 20250717.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 10.0.0-beta.25358.3 -> To Version 10.0.0-beta.25367.4 * Remove assumption about a tree shape that compound assignment produces (#79432) * Skip GetProjectXml_FileBasedProgram_SdkTooOld_01 test * Bump Microsoft.VisualStudio.Extensibility.Testing.Xunit to 0.1.796-beta This brings along some fixes needed for it to work under newer versions of xunit.runner.visualstudio. * Reduce path length of Roslyn ServiceHub Services folder (#79460) I've been hitting lots of gold bars in VS indicating various Roslyn features are unavailable when running when F5'ing the roslyn project. I finally spent some time digging into why this happens on my machine, and it turns out that out service hub service paths are just a bit too long. This PR just reduces that path length by 14 characters, which is enough for all the services to be under the 260 character long path limit. * downgrade SDK * Fix Typo * Simplify stale project handling (#79386) * Update System.Memory to prevent bootstrap failure * Include dependencies of System.Memory in VSIX deployment project * remove unnecessary additional reference * Update dependencies from https://github.com/dotnet/arcade build 20250717.5 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks From Version 10.0.0-beta.25358.3 -> To Version 10.0.0-beta.25367.5 * Use new compiler API * Correctly change return type of partial definition part * Feedback * Move RoslynParallel and ProducerConsumer to threading source package (#79474) * Downgrade SDK * Do not remove usings/imports in code-cleanup when file has syntax errors * Add testws * Find add-using results in SG docs * Docs * Do not place SuppressMessage attributes on an extension block * remove asynchrony from service registration * Ignore all targets of MS.CA.Threading.Package in rebuild (#79495) * Don't mark special compiler synthesized members as obsolete * Add test * Use globs in .projitems for source packages (#79480) * Fix name declaration completion in primary constructor parameters * nrt * nrt * Generate complogs on build failure (#79446) * Generate complogs on build failure This should make it easier to reproduce CI compiler failures locally. * Test bad change for complog creation * Use --yes * Include full exception * Revert "Test bad change for complog creation" This reverts commit a465981. * remove from pkgdefs * Extensions: fix issue with GetParameterOrExtensionParameter (#79402) * Fix exception when requesting additional file diagnostics * Do not do full cleanup when we are formatting a new document The CodeAction.CleanupDocumentAsync was added in #59091 to ensure the document had elastic trivia formatted before we applied the result to the file. It appears the intent was to do just the trivia formatting, but the CleanupDocumentAsync does a lot of expensive operations around simplification and adding imports, which aren't needed in this case. Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1540532 * Extensions: add test for function type scenario (#79323) * Reenable analyzer that was disabled when we moved to .Net 10 Preview 5 * Allow captured primary constructor parameters to be still used in base-list * Simplify ancestor checks * Fix 'this' keyword not being recomended where allowed * in progress * Fix 'switch' keyword recomendations after an expression * Fix escaping of enum members in completion * Suggest proper 'Async'-suffixed name for Task-returning symbols * Fix location of 'partial' modifier when generating new partial members * Update VMR orchestrator property (#79517) * Make attachdebugger flag work on non-Windows (#79499) These compiler flags used Debugger.Launch, which only works on windows. I borrowed the equivalent code from the LSP launcher, which already has this functionality (https://github.com/dotnet/roslyn/blob/cf34acbc5d0f64ff87013cdd02ae61cff562daaf/src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer/Program.cs#L75-L89). * Downgrade System.Memory to make VS happy * Fix auth issue in PR val builds * Fix * Update Basic.Reference.Assemblies (#79525) * Update Basic.Reference.Assemblies Update to version 1.8.3 of Basic.Reference.Assemblies and make references to .NET 10p6 available in our tests. * Feedback * Feedback * Allow add using to work on Razor generated documents * Improve compiler server/client logging (#79335) * Remove unused constant * Include timestamp in logs * Log messages to msbuild as well * Log server's process ID * Log process creation on Unix * Exclude some messages from the binlog * Fix test loggers * Revert "Exclude some messages from the binlog" This reverts commit 12c1050. * Cleanup * Simplify * Simplify * Simplify * Add tests * Add tests * Simplify * Simplify * initial change * Renames * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Extensions: address or split remaining open issues directly associated with test plan (#79452) * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * Update tests * In progress * in progress * in progress * in progress * in progress * in progress * in progress * in progress * Cleanup split between lexer and sliding-text-window (#79205) Co-authored-by: Jan Jones <[email protected]> * Add docs * Fix name qualification when moving a using alias outside of a file scoped namespace * Fix strucutre out of bounds * Tests * Add Version.Details.props (#79539) * Fix issue with 'use explicit type' and nullable tuples * Add back * Convert ValueTaskFactory methods to static extensions (#79541) * Update logic * Also downgrade System.Numerics.Vectors for VS * Add Enum static extensions (#79546) * Fix main build break * Fix main build break AGAIN * Projects to deploy (#79430) * [main] Source code updates from dotnet/dotnet (#79483) [main] Source code updates from dotnet/dotnet - Workaround cref resolve issue due to new RuntimeHelpers in SCI * [main] Source code updates from dotnet/dotnet (#79563) [main] Source code updates from dotnet/dotnet * Revert "Fix main build break AGAIN (#79559)" This reverts commit e67e2a4, reversing changes made to 1a74e66. * Tweak build break fix * Tweak build break fix * inline test strings * Cleanup test methods * Fix issue where we weren't properly adding elastic trivia to newly generated members * Fix behavior * Add test * Mark SyntaxTokenParser as non-experimental (#79521) Co-authored-by: copilot-swe-agent[bot] <[email protected]> --------- Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: AlekseyTs <[email protected]> Co-authored-by: Julien Couvreur <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: Ankita Khera <[email protected]> Co-authored-by: tmat <[email protected]> Co-authored-by: Tomáš Matoušek <[email protected]> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: David Wengier <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: Matt Mitchell <[email protected]> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: Djuradj Kurepa <[email protected]> Co-authored-by: Copilot <[email protected]>
* Extract expectedOutput constants, minor touchups * Rename expected -> expectedOutput * Include new testing with placeholder baselines * Progress * First ILVerify pass * Initial baseline IL run. * Further baseline additions and skips based on missing corelib apis. * Clone async void tests and have them use async Task, and validate existing code spit for these under runtime async * Update baselines after .NET 10 intake * Delete the stub * Remove long dynamic baseline and leave a prototype. * Feedback. * BOM * Remove unused references parameter
* upstream/main: (265 commits) Update dependencies from https://github.com/dotnet/dotnet build 278224 (#79822) Cleanup Remove unused test impl of an interface Named parameters Has predicate, so don't use count Formatting Simplify Support getting diagnostic descriptors from OOP remove comment remove comment Simplify code Update dependencies from https://github.com/dotnet/dotnet build 278022 (#79796) Make internal Allow Razor to call into codelens Do not report 'no-effect' warning when active top-level code is updated (#79746) Improve error reporting from RemoteInitializationService (#79761) Fix crash when generating explicit impl properties Delete unused functin Remove lazy enumerables Simplify ...
* Remove NetAnalyzers version override * Put back dotnet8 feed * Fix analyzer violations * Address more analyzer violations * Revert breaking fixes * Address more analyzer violations * Fix Xaml MEF import * Generate semantic search ref assemblies package * Change the delay for how often we synchronize solutions Now that we're doing all the WorkspaceChanged notifications on background threads, that means the notifications won't be quite as batched as before; this was causing an increase in synchronizations that was creating some wasted work. * Update dependencies from https://github.com/dotnet/dotnet build 276797 Updated Dependencies: System.CommandLine (Version 2.0.0-beta7.25374.102 -> 2.0.0-rc.1.25375.106) * PR feedback * Update dependencies from https://github.com/dotnet/dotnet build 276828 Updated Dependencies: System.CommandLine (Version 2.0.0-rc.1.25375.106 -> 2.0.0-rc.1.25375.119) * Use Append overload for repeating chars * Fix formatting of CDATA sections in quick info * Fix * Fix * Handle concurrent requests to update workspace contents and workspace SG info * Fallout * Add test * Apply suggestions from code review * Docs * Docs * Produce a better return type when trying to return an anonymous type in an async method * Fix test * Don't use a pool in SemanticTokensHelper.ComputeTokens (#79622) * Don't use a pool in SemanticTokensHelper.ComputeTokens This can be just allocated directly into an array instead of fiddling with a pool. Simpler and more efficient. This shows up as 2.5% of allocations in a scenario in a scenario in RazorEditingTest.CompletionInCohosting for the Roslyn OOP. Most of that is due to the list resizing. * Refine Caching example (#79593) Add comment to improve readability. * Add reference assemblies dir parameter (#79614) * Update Microsoft.ILVerification (#79555) * Reduce allocations in CSharpVirtualCharService.TryConvertStringToVirtualChars (#79623) This method is accounting for 1.4% of allocations in the OOP process in a completion scenario in the RazorEditing.CompletionInCohosting speedometer test I am looking at. Instead of doing all the work and hitting the pools, we can just handle the normal case of there not being any surrogates or escape characters and just create a VirtualCharSequence wrapper around the existing string. Locally, I see about 75% of strings that come through hit this optimization. Going to do a test insertion with this change to verify speedometer numbers before elevating out of draft status. * modified tagged text instead to resolve LSP issues * Remove unnecessary methods from interface * Move logic into helper * Better handle quick info for code with suppressions in it * Simplify * Revert * Simplify * fix diff * restore optionality * Remove unnecessary feed (#79635) * Reduce some UI thread blocking It looks like in various refactorings we accidentally had a ConfigureAwait(false) appear in this method which could cause us to jump to a background thread when we don't need to do that. I'm not sure why we didn't just use CA(true) only here, since that seems to do what we want without any extra trickery. * Pass in referenceAssembliesDir to ISemanticSearchSolutionService * reverted tests back to main * File-based program directive diagnostics in editor (#79421) * Sign contents of nupkg, but not the nupkg itself * Pull publishdata from the branch being published * Update dependencies from https://github.com/dotnet/dotnet build 276981 (#79647) [main] Source code updates from dotnet/dotnet * Incorporated PR feedback - Restored removed BuildHost methods. - Separated MSBuild instance finding from loading - Removed loop in favor of a single relaunch * Show nullability of a local variable when hovering on the decl of it * Add tests * Add more var cases * Add work items * Docs * Share code * nrt * Improve QuickInfo NRT info in the presence of nullability altering checks * Simplify * Simplify * Simplify * Simplify * Add test cases * Update src/Workspaces/Core/Portable/Workspace/Solution/SourceGeneratorExecutionVersion.cs Co-authored-by: Joey Robichaud <[email protected]> * Add tests * Add tests * Restore name * Make nupkg signing exclusion conditional * Fix logging when item counts change in LoadedProject (#79640) * Use checksum * Add lsp tests * remove testing branch name * reverted tests back to main * Add comment for nuget package behavior * Trap on-the-fly-doc exceptions in quick info * Cleanup * Update debugger.contracts to 18.0.0-beta.25379.1 (#79661) * Catch more * Catch more * Tweak map spans API to match document service, and call it * Enable View -> Stack Trace Explorer by default Tool windows can always be opened before their packages are loaded. The act of running the command creates the package. * Strongly type the mapping API, and allow Razor to check generator type etc. * argh don't wanna talk about it * Delete unused quick info code * SelectAsArray * Recognize known `ToString` methods inside interpolation * Fix extension-method add-import completion in syntactically ambiguous scenarios * Docs * `comp` -> `compilation` * Use pooled builder * Update src/Analyzers/Core/Analyzers/SimplifyInterpolation/AbstractSimplifyInterpolationHelpers.cs Co-authored-by: Cyrus Najmabadi <[email protected]> * Update src/Analyzers/Core/Analyzers/SimplifyInterpolation/AbstractSimplifyInterpolationHelpers.cs Co-authored-by: Cyrus Najmabadi <[email protected]> * Check for `static` just in case * Paranoia :) * Sort * Fix spelling * remove unnecessary code * Allow PR val build insertion step to be re-run * Simplify * Spelling * Move tests * Remove * Add back * Too many type name collisions in Razor tests * Revert "Move methods back to a place where TypeScript can reference them (#79208) * Fix Call Hierarchy false positives by filtering non-reference contexts * test * added typeof filtering * fix call hierarchy false positives by filtering out nameof and typeof calls * used ReferenceLocation for nameof and typeof detection * added space as per CR * wip tests * Simplify determination of live vs. build diagnostics * Add Copilot.EA IVT * walk up functionality + nameof tests for call hierarchy * formatting issues * Extract helper method * Use span mapping in codelens * Use span mapping in naviation * Use span mapping in FAR * VB: EmitDelegateCreation - account for the fact that static methods can be marked virtual in metadata (#79697) Fixes #79696 * Update based on review feedback * Update src/Compilers/Core/Portable/Diagnostic/WellKnownDiagnosticTags.cs Co-authored-by: Rikki Gibson <[email protected]> * defer tail slicing for efficiency * Remove untriaged label automation (#79701) The `Status` field on our project board supercedes this label. Removing it since it's no longer used. * test member access read/write not affected by walkup * removed commented out test * Extensions: address instrumentation follow-ups (#79557) * Move extension to helper class. Extensions on Document seemed a bit broad * Remove a hack, and clarify another * Fix tests * Allow more lifecycle events in Razor cohosting * Fix formatting in use-auto-prop when attributes are present * Move 'use auto prop' into code style layer * In progress * Move fix all helpers to shared location so that CodeStyle can reference them * IN progress * in progress * Share more code * wip * Working * Simplify * Simplify * Remove hacks * Simplify * Add assert * move service into shared location * Revert "Pull publishdata from the branch being published" This reverts commit 0721c3b. * helper method + formatting issues fix * made helper method into local method * Add Copilot semantic search (#79673) * Add null check * Semantic search updates (#79742) * [main] Source code updates from dotnet/dotnet (#79744) [main] Source code updates from dotnet/dotnet - Remove properties that now live in Version.Details.props - Update Versions.props - Add Microsoft.Extensions.FileSystemGlobbing to V.D.xml * Refactor how TestWorkspaces interact with TestCompositions TestWorkspace only had constructors that took TestCompositions, but this reintroduces a constructor that takes an ExportProvider directly if the MEF composition requires too much setup -- specifically our LSP server tests that already have their own system for creating MEF compositions. A few things got cleaned up along the way: 1. The Composition property (which was oddly nullable) gets removed entirely; a few tests that were creating a second TestWorkspace to mirror a first one are able to just use the ExportProvider directly. 2. We had a hack where we'd inject a TestWorkspaceConfigurationService into the MEF container if the call to create the TestWorkspace passed along custom options. This just adds that type directly into the base configuration so we can reuse the TestCompositions better. Any tests trying to use that feature and creating custom MEF compositons are just expected to inject that type. * Allow our LanguageServer tests to use Protocol.Test.Utilities The problem here was that adding that dependency carries along many things we don't want to put into the MEF composition, but we now have a subfolder we can use for MEF discovery that contains just the product binaries we expect. * Run our LSP Miscellaneous Files tests against both implementations We have a set of tests for miscellaneous files tests, and this now runs that against both our base implementation and also the file-based application implementation in our language server. This required a few subtle changes: 1. Making AbstractLanguageServerProtocolTests deal with test workspaces that aren't our usual MEF TestCompositions. This is because these tests against the real server implementation are using the code that creates our real MEF container. Our code assumed we had some test mocks available, but in the real product those aren't there. We can gracefully skip those since we don't need them to properly test the end-to-end product. 2. Switching the tests away from assuming there is a misc files workspace but rather that a given documenet may or may not be a miscellaneous files document. This gets rid of a TODO we had referring to this, and although required a lot of changes it's a mechanical change. * Consolidate and unify the miscellaneous files tests more This moves one test into the abstract base, and also fixes the tests to avoid using TestLspServer.TestWorkspace when in the real server tests we will be using our other host workspace implementation. * Fix file-based programs getting stuck in the host workspace If a file is loaded that can be treated as a file-based program, and then a real project is loaded that contains that file, we should unload the file-based program since we're treating that as a miscellaneous file. But we had a bug here: the code in LspWorkspaceManager that loops through workspaces assumes that the miscellaneous files workspace would be found last, so if we find a document in any other workspace first, we're good to use it. This assumption was broken once we started putting file-based programs in the host workspace, since we might find both the file-based program and the 'real' project in the same workspace. The fix is straightforward: if when we're finding a file context we amd we end up with a miscellaneous file, check if we have any other files too, and if so, prefer those. This will then allow us to unload the miscellaneous file as normal. Fixes dotnet/vscode-csharp#8471 * fix formatting issues * Tests to ensure everything is hooked up * Apply suggestions from code review Co-authored-by: Joey Robichaud <[email protected]> * Allow Razor to control the lifetime of caches, rather than using statics * Don't know how that happened * use SelectAsArray * Where+Select * Use WhereAsArray * Add docs * rename * Formatting * Simplify * Remove lazy enumerables * Delete unused functin * Fix crash when generating explicit impl properties * Improve error reporting from RemoteInitializationService (#79761) * Do not report 'no-effect' warning when active top-level code is updated (#79746) * Allow Razor to call into codelens * Make internal * Update dependencies from https://github.com/dotnet/dotnet build 278022 (#79796) [main] Source code updates from dotnet/dotnet * Simplify code * remove comment * remove comment * Support getting diagnostic descriptors from OOP * Simplify * Formatting * Has predicate, so don't use count * Named parameters * Remove unused test impl of an interface * Cleanup * Update dependencies from https://github.com/dotnet/dotnet build 278224 (#79822) [main] Source code updates from dotnet/dotnet --------- Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Jan Jones <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Tomas Matousek <[email protected]> Co-authored-by: [email protected] <[email protected]> Co-authored-by: Jason Malinowski <[email protected]> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: David Wengier <[email protected]> Co-authored-by: Stuart Lang <[email protected]> Co-authored-by: Cyrus Najmabadi <[email protected]> Co-authored-by: Gen Lu <[email protected]> Co-authored-by: Todd Grunke <[email protected]> Co-authored-by: RaymondY <[email protected]> Co-authored-by: Tomáš Matoušek <[email protected]> Co-authored-by: Gobind Singh <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Joey Robichaud <[email protected]> Co-authored-by: David Kean <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: DoctorKrolic <[email protected]> Co-authored-by: AlekseyTs <[email protected]> Co-authored-by: David Barbet <[email protected]> Co-authored-by: Rikki Gibson <[email protected]> Co-authored-by: Jared Parsons <[email protected]> Co-authored-by: Julien Couvreur <[email protected]>
* upstream/main: Add LanguageVersion for C# 14 (#79725) Update src/RoslynAnalyzers/PublicApiAnalyzers/PublicApiAnalyzers.Help.md Fix invalid link to Analyzer Configuration.md
Merge main into features/runtime-async.
* upstream/main: (275 commits) Update yml files to use community branch (#79950) [main] Source code updates from dotnet/dotnet (#79920) Allow MEF components to supply assembly path resolvers (#79218) update auto merge config (#79949) Update PublishData.json (#79946) Add comment Add vb tests VB side Fix results streamed by ForAttributeWithMetadataName with multiple parts chore: deleted accitenly committed local file. bugfix: generated the format methods as public as it is with the related properties. tests: updated resources accordingly to the changes. Revert "Sneak in a sneaky test IVT" Revert "Missed one" Missed one Sneak in a sneaky test IVT Export the analyzer loader for the Misc workspace so the Razor generator has a consistent ALC Update localization branch to 17.14 Reorder checks to report issue as early as possible Avoid crash from Script class instantiation (#79879) Unblock type forwarding scenarios involving extensions (#79905) ...
Merge main to the feature branch
jaredpar
approved these changes
Aug 19, 2025
This was referenced Aug 22, 2025
JoeRobich
added a commit
to dotnet/roslyn-tools
that referenced
this pull request
Aug 29, 2025
46 PRs before and 36 after ```diff + * [Cache diagnostic analyzer computation](dotnet/roslyn#80045) + * [Remove parameter always passed the same value](dotnet/roslyn#80042) * [Update doc for IMethodSymbol.IsExtensionMethod](dotnet/roslyn#80016) * [Don't cache known-broken compositions](dotnet/roslyn#80021) * [Cleanup methods in DiagAnalyzerService](dotnet/roslyn#80013) * [Simplify processing of errors reported by the build](dotnet/roslyn#79964) * [Additional cleanup of the DiagnosticAnalyzerServier](dotnet/roslyn#80005) * [Fix Code Lens around source generated files](dotnet/roslyn#79992) * [Remove superflous DiagService api that can be achieved with existing apis](dotnet/roslyn#80007) * [Generate `init` accessor for required properties inside `readonly struct`s](dotnet/roslyn#80004) * [Remove existing low level diag oop code now that it's all handled at higher levels.](dotnet/roslyn#79994) * [Allow large InlineHint ArrayBuilder pooling](dotnet/roslyn#79857) * [Reduce allocations obtaining classified spans in ClassifierHelper](dotnet/roslyn#79856) * [Compute span diagnostics in oop](dotnet/roslyn#79991) * [Allow Razor cohosting to work with non-Razor SDK projects](dotnet/roslyn#79953) * [Move computation of deprioritized analyzers to oop](dotnet/roslyn#79989) * [EnC: Fix symbol mapping of delegates with indexed name](dotnet/roslyn#79837) * [Emit telemetry 'durations' with known radix point '.'](dotnet/roslyn#79988) * [Move logic up into DiagService](dotnet/roslyn#79985) * [Move the StateManager type up to the DiagnosticService from the DiagnosticIncrementalANalyzer](dotnet/roslyn#79984) * [Immediately remote diagnostics call to OOP](dotnet/roslyn#79983) * [Build Microsoft.CodeAnalysis.SemanticSearch.Extension ref assembly for use in semantic search queries](dotnet/roslyn#79972) * [Only cache compilation if we have the same set of analyzers](dotnet/roslyn#79978) * [Delete unused property](dotnet/roslyn#79963) * [Update 'use expr body' to be a purely syntactic analyzer](dotnet/roslyn#79979) * [Mark 'Use expr body' as a syntax-only fixer](dotnet/roslyn#79971) * [♻️ MSBuildWorkspaceDirectory - Fallback to AppContext.BaseDirectory when Assembly Location is empty](dotnet/roslyn#79934) * [Merge runtime async support into main](dotnet/roslyn#79833) * [Implement "Simplify property accessor" feature](dotnet/roslyn#79754) - * Merge main to runtime async branch (PR: [#79961](dotnet/roslyn#79961)) * [Redo how and when we report source generator telemetry](dotnet/roslyn#79951) * [Allow MEF components to supply assembly path resolvers](dotnet/roslyn#79218) * [Allow Razor to hook up the source generator in misc files](dotnet/roslyn#79891) * [Block ENC for extension blocks](dotnet/roslyn#79883) * [Upgrade servicehub.client to fix test source discovery](dotnet/roslyn#79899) * [Update package restore error message.](dotnet/roslyn#79876) - * Merge main (PR: [#79834](dotnet/roslyn#79834)) - * Merge main (PR: [#79830](dotnet/roslyn#79830)) * [Baseline struct lifting tests](dotnet/roslyn#79505) - * Merge main to runtime async branch (PR: [#79582](dotnet/roslyn#79582)) - * Merge main (PR: [#79424](dotnet/roslyn#79424)) - * Merge main (PR: [#78994](dotnet/roslyn#78994)) - * Merge main to runtime async branch (PR: [#78740](dotnet/roslyn#78740)) - * Merge main to runtime async branch (PR: [#78517](dotnet/roslyn#78517)) - * Merge main to runtime async branch (PR: [#78114](dotnet/roslyn#78114)) - * Merge main to runtime async branch (PR: [#77700](dotnet/roslyn#77700)) - * Merge main to runtime async branch (PR: [#77533](dotnet/roslyn#77533)) - * Merge main to runtime async branch (PR: [#77265](dotnet/roslyn#77265)) ```
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Area-Compilers
Feature - Runtime Async
Needs API Review
Needs to be reviewed by the API review council
VSCode
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.
Test plan #75960