-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Remove managed interfaces impls defined in CoreCLR #105965
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
Remove managed interfaces impls defined in CoreCLR #105965
Conversation
|
Tagging subscribers to this area: @mangod9 |
|
/cc @dotnet/interop-contrib |
jkotas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
elinor-fung
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yay!
It appears that after dotnet#105965, the compiler is no longer inlining `TypeHandle::IsArray` for this code path. This deconstructs that use and reclaims it.
|
Breaking change issue filed at dotnet/docs#49921 |
The
IReflectimplementation can be removed since we missed a supporting type after we brought this back in dotnet/coreclr#21343. The supporting type isSystem.Runtime.InteropServices.ComTypes.IReflect, which is needed for it to work at all. Thus, this scenario has never worked in .NET Core.Implement
IDynamicInterfaceCastableon__ComObjectto avoid managed interface definitions in unmanaged code -IEnumerableandIEnumerator. In an effort to ensure existing users are supported,ICustomAdapteris available when either of the previous two are supported. This allows us to remove the FCall forwarders that simulated a type of DIM for RCWs that implemented a conformingIDispatchorIEnumVARIANT.Verified that
EnumerableToDispatchMarshaleris not emitted by TlbImp.