The fact that it's only a warning leads to potential situations which break the type checker's guarantee that a member variable has a certain non-null type, leading to potential run-time errors.
class Example { var thing as Float; function initialize() { thing = 1.0; /// Yay, thing is def initialized } } class Bar extends Example { function initialize() { // WARNING: Class 'Bar' does not initialize its super class 'Example'. // it's too bad this is only a warning } function bar() as Void { System.println("thing = " + thing); } } function test() as Void { var b = new Bar(); b.bar(); // prints "thing = null" // Bar.thing actually has a default value of null, even though the type checker guarantees it's a Float :/ var y = b.thing / 2.0; // run-time crash due to unhandled exception 😔 // Exception: UnexpectedTypeException: Expected Number/Float/Long/Double, given null/Float System.println("b.thing / 2.0 = " + y); }