Skip to content

Merge master to features/target-typing#45820

Merged
28 commits merged intofeatures/target-typingfrom
merges/master-to-features/target-typing
Jul 9, 2020
Merged

Merge master to features/target-typing#45820
28 commits merged intofeatures/target-typingfrom
merges/master-to-features/target-typing

Conversation

@dotnet-bot
Copy link
Collaborator

This is an automatically generated pull request from master into features/target-typing.

git fetch --all
git checkout merges/master-to-features/target-typing
git reset --hard upstream/features/target-typing
git merge upstream/master
# Fix merge conflicts
git commit
git push upstream merges/master-to-features/target-typing --force

Once all conflicts are resolved and all the tests pass, you are free to merge the pull request.

genlu and others added 25 commits July 2, 2020 14:46
…actory.cs

Co-authored-by: Jason Malinowski <jason@jason-m.com>
…actory.cs

Co-authored-by: Jason Malinowski <jason@jason-m.com>
This change standardizes the reference assemblies we use for compilation in our unit test to be the actual .NET Framework reference assemblies. 

Prior to this change they were a mix of reference and implementation assemblies from non-RTM versions of the .NET Framework. In order to map the existing assemblies to their respective target framework version I worked with the servicing team and we mapped them to the closest possible TFM based on their file versions. The bulk of the change is essentially mechanically moving from names like `mscorlib.v4_30319_17929` to `Net451.mscorlib`.

Unfortunately in several cases the non-RTM assemblies didn't cleanly map to a RTM TFM. This was particularly problematic when migrating the `v4_30319` references as this is a mix of a `net40` and `net451` versions. This caused issues in our code base because these references were freely mixed with actual `net40` and `net451` references in the code base. Most of the time this went unnoticed because the test didn't expose the gaps in the APIs. In a lot of cases though, particularly when mixing a version of `System.Core` that did or didn't have `ExtensionsAttribute`, this required some manual inspection on my part and a fix. In pretty much every case this was a straight forward fix but it did mean the change was less mechanical than I would have preferred.

To make this change easier to review I've broken it up into three commits:

1. The actual changes to `Roslyn.Test.Utilities` that move us to the new references.
1. The changes to our test code which required more than a simple straight forward reference update or explicitly involved retargetting code. These are changes I think deserve stronger scrutiny than the more mechanical aspects of this PR.
1. The mechanical changes to move from the old references to the new ones. This is the bulk of the change but is for the most part renames. 

The benefits of this change are the following:

1. Have our test more closely mirror customer scenarios by using official reference assemblies.
1. Improve the readability of the tests by referring to assemblies by their target framework, which is familiar to most developers, instead of their file version, which is familiar to servicing team only.
1. Reduces the build output size of Roslyn by **~5GB**

The internal PR is here dotnet/roslyn-internal#1954

Note: I will be making more changes in this area in future PRs. But I wanted to keep the mechanical portion of this change into its own PR. Further PRs will be smaller but less mechanical.
No-op SymbolSearchUpdateEngine on non-Windows OS
Targeting Remote.ServiceHub project to .Net Core
Update optprof pipeline for 16.7
Log optimization data branch name during official build
Make netcoreapp3.1 the preferred target framework
Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approval

sharwell and others added 3 commits July 9, 2020 08:22
Update Roslyn.Services.UnitTests.Utilities to target netcoreapp3.1
…ds with the latest design. (#45647)

Related to #45296.

From specification:
includes a synthesized strongly-typed overload of `Equals(R? other)` where `R` is the record type.
The method is `public`, and the method is `virtual` unless the record type is `sealed`.
The method can be declared explicitly. It is an error if the explicit declaration does not match the expected signature or accessibility, or the explicit declaration doesn't allow overriding it in a derived type and the record type is not `sealed`.
```C#
public virtual bool Equals(R? other);
```
@dotnet-bot
Copy link
Collaborator Author

Reset HEAD of merges/master-to-features/target-typing to f7cf79a00569cfa9a7528ec5855b753bf47eeba2

@ghost ghost merged commit aaf875d into features/target-typing Jul 9, 2020
@ghost ghost deleted the merges/master-to-features/target-typing branch July 9, 2020 19:39
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants