Skip to content

Delete suspicious code in RuntimeType - #52535

Closed
MichalStrehovsky wants to merge 2 commits into
dotnet:mainfrom
MichalStrehovsky:MichalStrehovsky-patch-2
Closed

MichalStrehovsky wants to merge 2 commits into
dotnet:mainfrom
MichalStrehovsky:MichalStrehovsky-patch-2

Conversation

@MichalStrehovsky

Copy link
Copy Markdown
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
Copy Markdown
Member Author

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@MichalStrehovsky

Copy link
Copy Markdown
Member Author

/azp run runtime-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@jkotas

jkotas commented May 10, 2021

Copy link
Copy Markdown
Member
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
Copy Markdown
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