Fix public surface to match CoreCLR#5238
Conversation
|
Any idea why TypedReference is still showing up as not ref in the ProjectN we are consuming in corefx? |
|
@dotnet-bot test Ubuntu Debug and CoreCLR tests please |
|
It is expected that that TypedReference is It is logical |
|
So you don't expect that we will never remove this baseline https://github.com/dotnet/corefx/blob/master/src/System.Runtime/src/ApiCompatBaseline.uapaot.txt#L1 because we cannot mark it as ref in the contract? |
|
@dotnet/dnceng Is there a problem with the Ubuntu machine pool? This PR is waiting for Ubuntu machines for 15+ hours... |
|
@jkotas We ran over the deployment limit somehow. I'm looking into it. |
RuntimeArgumentHandle (and ArgIterator - not in .NET Core today) would be in the same category. It was missing the This compact hack has to be somewhere. The alternative would be to have it in the runtimes. We need this compat hack because of the C# has not reconciled handling of these 3 legacy ref-like types with the new ref-like feature. So yet another alternative would be to do something about that, e.g. accept the source-breaking change in the few corner where it is causing problems for .NET Core and mark them ref-like in the .NET Core contracts. cc @VSadov |
|
C# compiler already treats "legacy" byref structs as ref structs, regardless if they are decorated with That is not a problem since the restrictions on those types were stronger than on the new The only place that we had to adjust is to not poison these types with I am not aware of anything else missing regarding handling of |
|
I.E. - I think it would be optional, but convenient for you to make these structs |
|
CC: @jaredpar |
Cool. I did not know that. So we should just mark them as ref in CoreCLR and contracts as well. |
* Fix public surface to match CoreCLR * Mark RuntimeArgumentHandle as ref
No description provided.