Search code examples
c#.netvisual-studio-2008attributesobsolete

Why does this code compile without error even though the class is marked Obsoleted?


This is Visual Studio 2008. Obviously has to do with the static class for an extensions.

public class Dummy
{
    public readonly int x;

    public Dummy(int x)
    {
        this.x = x;
    }

    public override string ToString()
    {
        return x.ToString();
    }
}

[Obsolete("Do Not Use", true)]
public static class Extensions
{
    public static int Squared(this Dummy Dummy)
    {
        return Dummy.x * Dummy.x;
    }
}

class Program
{
    static void Main(string[] args)
    {
        var d = new Dummy(42);
        Console.WriteLine(String.Format("{0}^2={1}", d, d.Squared()));
    }
}

Solution

  • That repros in VS2010 as well. Looks like a bug. I'll get it entered in the database.

    You can work around the bug by putting the attribute on the actual method.

    Thanks for the report!