roslyn icon indicating copy to clipboard operation
roslyn copied to clipboard

Static virtual members of interfaces are not included into completion list on a type parameter

Open AlekseyTs opened this issue 2 years ago • 1 comments

interface I1<T1> where T1 : I1<T1>
{
    static abstract void M1();
    static virtual void M2() { }

    static abstract event System.Action E1;
    static virtual event System.Action E2;

    static abstract int P1 { get; set; }
    static virtual int P2 { get; set; }
}

class Program
{
    void Test<T>() where T : I1<T>
    {
        T.E1 += null;
        T.E2 += null;
        T.M1();
        T.M2();
        T.P1++;
        T.P2++;
        T.   // <= Dot complition offers M1, E1, P1,  but doesn't offer M2, E2, P2
    }
}

AlekseyTs avatar May 11 '22 23:05 AlekseyTs

CC @sharwell

AlekseyTs avatar May 11 '22 23:05 AlekseyTs