# Static read-only fields and static constructor support
Burst evaluates all static fields and all static constructors at compile time. It evaluates all the static fields and the static constructors for a given struct together.
When Burst fails to evaluate any static field or static constructor, all fields and constructors fail for that struct.
When compile-time evaluation fails, Burst falls back to compiling all static initialization code into an initialization function that it calls once at runtime. This means that your code needs to be Burst compatible, or it will fail compilation if it fails compile-time evaluation.
An exception to this is that there's limited support for initializing static read-only array fields as long as they're initialized from either an array constructor or from static data: