6.11 Inline constructors
since Haxe 3.1.0
If a constructor is declared to be inline, the compiler may try to optimize it away in certain situations. There are several requirements for this to work:
- The result of the constructor call must be directly assigned to a local variable.
- The expression of the constructor field must only contain assignments to its fields.
The following example demonstrates constructor inlining:
class Point {
public var x:Float;
public var y:Float;
public inline function new(x:Float, y:Float) {
this.x = x;
this.y = y;
}
}
class Main {
static public function main() {
var pt = new Point(1.2, 9.3);
}
}
A look at the JavaScript output reveals the effect:
Main.main = function() {
var pt_x = 1.2;
var pt_y = 9.3;
};