Skip to content

Merge main to VBOverloadResolutionPriority#76392

Merged
AlekseyTs merged 1117 commits intofeatures/VBOverloadResolutionPriorityfrom
CloneOfMainForMerge
Dec 12, 2024
Merged

Merge main to VBOverloadResolutionPriority#76392
AlekseyTs merged 1117 commits intofeatures/VBOverloadResolutionPriorityfrom
CloneOfMainForMerge

Conversation

@AlekseyTs
Copy link
Contributor

No description provided.

CyrusNajmabadi and others added 30 commits December 6, 2024 10:11
cston and others added 9 commits December 11, 2024 12:20
…76375)

This is a small allocation, only showing up as about 0.1% of allocationsi n the typing scenario in the csharp editing speedometer test. However, the change is fairly simple, and I prefer the change as it passes around ImmutableArrays instead of IReadOnlyLists.
…ite warnings (#76347)

* Do not bail generating base type initializer in the presence of use site warnings

We were returning early from generating a call to the base record copy constructor initializer if use site diagnostics reported any kind of diagnostic, including warnings. This isn't good in general, but is particularly bad for warnings like CS1701, which are typically suppressed by the SDK and results in what seems like a completely clean csc invocation skipping calling the base constructor. Fixes #72357.

* Set FailsPEVerify

* Only run test on coreclr
…oAssemblyInUsingNamespaces (#76370)

This method shows up as 1.1% of allocations in the typing scenario in the csharp editing speedometer test. Of that, 0.6% is in the string.Concat call merging the Namespace, '.', and type name.

Instead of creating and passing this merged string to GetForwardedToAssembly, we can instead construct a MetadataTypeName to pass to that method. That struct can either be constructed using a fullname or a namespace/typename combination.  In the caller where we are trying to get rid of the string concat, we can pass in the namespace/typename and avoid the concat operation completely.

The other caller to GetForwardedToAssembly also now passes in a MetadataTypeName, but it's constructed from the fullname as that method used to do itself before taking in the MetadataTypeName.
…ry in SolutionCompilationState.ComputeFrozenSnapshot (#76361)

* *** draft PR while I wait on speedometer to verify if this improves allocations ***

Reduce allocations from doing repeated adds into an ImmutableDictionary in SolutionCompilationState.ComputeFrozenSnapshot

Instead, use an ImmutableSegmentedDictionaryBuilder to do the adds and then do a single update to the SolutionCompilationState._projectIdToTrackerMap after all new compilation trackers are created.

Note that there is a potential negative aspect to this change as it increases the time window during which a compilation state can be queried for in the SolutionCompilationState and not found. However, I don't believe this will cause functional issues, and wasn't hitting that concern during local testing.
@AlekseyTs AlekseyTs requested review from a team as code owners December 12, 2024 15:54
@ghost ghost added the untriaged Issues and PRs which have not yet been triaged by a lead label Dec 12, 2024
@dotnet-policy-service dotnet-policy-service bot added VSCode Needs API Review Needs to be reviewed by the API review council labels Dec 12, 2024
@dotnet-policy-service
Copy link
Contributor

This PR modifies public API files. Please follow the instructions at https://github.com/dotnet/roslyn/blob/main/docs/contributing/API%20Review%20Process.md for ensuring all public APIs are reviewed before merging.

@AlekseyTs AlekseyTs requested review from 333fred and cston December 12, 2024 15:59
@AlekseyTs
Copy link
Contributor Author

@dotnet/roslyn-compiler Need a sign-off for a merge PR

@AlekseyTs
Copy link
Contributor Author

\azp run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Compilers Needs API Review Needs to be reviewed by the API review council untriaged Issues and PRs which have not yet been triaged by a lead VSCode

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants