Why there are collection of static constructors in ITypeSymbol instead of one?

Today working with Roslyn I've stumbled on StaticConstructors property of ITypeSymbol and it's declared as ImmutableArray<IMethodSymbol> but as far as I know there could be maximum one static constructor both in C# and VB. The question is why?

Jon Skeet
people
quotationmark

My guess: partial classes.

public partial class Foo
{
    static Foo() {}
}

public partial class Foo
{
    static Foo() {}
}

Even though that's not valid code (which I'd previously forgotten) it may need to be represented within Roslyn's object model. If you can get at an ITypeSymbol for Foo while this code is being compiled, you may find both of the static constructors there.

people

See more on this question at Stackoverflow