The only required enforcement is runtime (even then it is optional). However nothing stops the compiler from detecting a violation at compile and time failing because of an error (or perhaps warning?)
There is a lot of interest in static analysis enforcing contracts, but this will likely require some additions to the contract specification.