* Remove some obsolete build properties
The artifacts category properties are no longer functional since maybe .NET 3.0, and the symbol server publishing switch is non-functional given that DotNetPublishUsingPipelines=true is used. Symbol publishing happens in promotion.
* Add comment for symbol publishing task
* Handle nullability differences in duplicate interfaces
* Remove parts extracted into a separate PR
* Validate symbol shape instead of IL snapshot
* Revert `ComputeInterfaceImplementations` change
* Move the fix to emit layer
* Fix forwarding
* Test instance forwarding methods
* Switch to new VMR control set
Now that roslyn is on 9.0, we can switch to the new control set. Generally:
- DotNetBuildFromSource -> DotNetBuildSourceOnly - Building a source-only build.
- DotnetBuildFromSourceFlavor == Product -> DotNetBuildOrchestrator == true - Building in the VMR, could be source-only or MS's build.
- ArcadeBuildFromSource -> DotNetBuildRepo == true -> Indicates an outer repo build.
* Remove /p: alias for source build - This really just enabled static graph. Instead this is moved to the inner source build arg creation.
* Fix TypeAttributes visibility checking
When checking visibility we need to use the VisibilityMask because TypeAttributes is a funky flags enum that has multiple entries with the same value (unlike normal flags enums).
See https://learn.microsoft.com/en-us/dotnet/api/system.reflection.typeattributes?view=net-8.0#examples
We got lucky because the IsPublic extension method isn't actually used anywhere so this was never hit.
The same applies to checking for interface, but TypeAttributes.ClassSemanticsMask is the same value as TypeAttributes.Interface so it happens to work, but it's still better to use the canonical code for clarity.
* Fix other Reflection attributes checks
* Remove IsPublic
* Revert other changes
* Remove MS.CA.Test.Resources.Proprietary
This package is the last remnants of the roslyn-internal repository. It
was still holding onto a few test assets that never got ported into the
open but were available through the NuPkg reference.
This package is becoming a problem with component governance as it
is a `netstandard1.3` package and hence brings in a lot of vulnerable
components.
Considered upgrading this package to `netstandard2.0` but that would
mean un-archiving the roslyn-internal repo, finding a place to put the
source code and setting up a new official pipeline for the package. That
is a pretty high price. Instead I decided to finish the work that
I should've completed a number of years ago.
Yes this does add a few more .dll into our git tree. These are files
that haven't changed in 10+ years so versioning won't be an issue. They
were all brought down already for restore hence it's not new files.
* Allow suppressing ref ternary operands
* Allow suppressing the whole ref ternary
* Allow suppressing ref foreach
* Use type inference for ref ternary nullability
* Meet annotation and state
* Move local function to the end
* Keep the states joined
* Test ref assignment
* Skip failing test
Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk
From Version 9.0.0-beta.24453.1 -> To Version 9.0.0-beta.24459.6
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Handle infinite cycles through params collection initializers
* Remove an incorrect assert
* Compare whole syntax nodes
* Add more tests
* Add a test
* Verify IOperation and flow graph
* Re-add a limited assert
* Test constructor+Add cycles
* Move a test class from Emit2 to Emit3
To avoid error CS8103: Combined length of user strings
used by the program exceeds allowed limit.