Skip to content
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

Delete suspicious code in RuntimeType #52535

Closed

Conversation

MichalStrehovsky
Copy link
Member

This code indicates that we can somehow get to fields on interfaces by reflecting on fields of a type implementing the interface. If that's the case, we have work to do in IL Linker. But I have not been able to find a way to do that, mostly because static fields don't get inherited the same as instance fields and we don't allow instance fields on interfaces.

Deleting the code to see if we have any failing tests.

This code indicates that we can somehow get to fields on interfaces by reflecting on fields of a type implementing the interface. If that's the case, we have work to do in IL Linker. But I have not been able to find a way to do that, mostly because static fields don't get inherited the same as instance fields and we don't allow instance fields on interfaces.

Deleting the code to see if we have any failing tests.
@MichalStrehovsky
Copy link
Member Author

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@MichalStrehovsky
Copy link
Member Author

/azp run runtime-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jkotas
Copy link
Member

jkotas commented May 10, 2021

using System;
using System.Reflection;

interface IFace
{
    public static int x = 0;
}

class Program : IFace
{
    static void Main(string[] args)
    {
        foreach (var f in typeof(Program).GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy)) Console.WriteLine(f);
    }
}

@MichalStrehovsky
Copy link
Member Author

jkotas commented 3 hours ago

Heh, thanks! Looks like we have no test coverage for it.

Good thing it's consistent with how we do methods (not).

@vitek-karas looks like we'll have a linker issue after all. It looks like a pretty annoying one. We might want to just consider won't fixing it (and leave some traces on that decision)

@karelz karelz added this to the 6.0.0 milestone May 20, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jun 19, 2021
@MichalStrehovsky MichalStrehovsky deleted the MichalStrehovsky-patch-2 branch July 17, 2022 23:54
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants