Skip to content

"Go To Implementation" on static members doesn't work as expected #54021

@AlekseyTs

Description

@AlekseyTs

For non-operators, implicit implementations are not found:

interface I1
{

    static abstract void M1();
}

class C1_1 : I1
{
    // Implicit implementation
    public static void M1() { }    
}

interface I2
{
    abstract static int P2 { get; set; }
}

class C2_1 : I2
{
    // Implicit implementation
    public static int P2 { get; set; }
}

interface I3
{
    abstract static event System.Action E3;
}

class C3_1 : I3
{
    // Implicit implementation
    public static event System.Action E3;
}

For operators, explicit implementations aren't found as well:

interface I4<T> where T : I4<T>
{
    abstract static int operator +(T x);
}

class C4_1 : I4<C4_1>
{
    // Implicit implementation
    public static int operator +(C4_1 x) => default;
}

class C4_2 : I4<C4_2>
{

    // Explicit implementation
    static int I4<C4_2>.operator +(C4_2 x) => default;
}

interface I5<T> where T : I5<T>
{
    abstract static implicit operator int(T x);
}

class C5_1 : I5<C5_1>
{
    // Implicit implementation
    public static implicit operator int(C5_1 x) => default;
}

class C5_2 : I5<C5_2>
{

    // Explicit implementation
    static implicit I5<C5_2>.operator int(C5_2 x) => default;
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions