On 8/19/2012 5:08 AM, bearophile wrote: > With a different type system the compiler makes sure at compile-time that x is > not empty (this means the compiler makes sure in no code paths x is used before > testing it contains something), avoiding the run-time exception. That's called disabling the default constructor with @disable.