HaxeFoundation / HaxeFoundation/haxe
Inconsistent behaviour across targets with/without dce for simple abstract class example
- Dominant language
- Haxe
- Stars
- 6.9k
- Forks
- 715
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 11
Description
https://try.haxe.org/#f60F1e9F
```hx
class Test {
static function main() {
var bar = new Bar();
bar.setMode();
trace("Haxe is great!");
}
}
class Bar extends Foo {
public function new() {}
public function setMode(mode:Mode = Isolated) {
trace(mode);
}
}
abstract class Foo {
abstract public function setMode(mode:Mode = Isolated):Void;
}
enum abstract Mode(String) {
var Isolated;
}
```
The above example seems to be inconsistent across platforms, and even across dce modes. But locally(hxcpp) I get:
**hxcpp**:
> 37 | abstract public function setMarginMode(mode:MarginMode = Isolated):Response;
> | ^^^^^^^^
> | Invalid constant : Isolated
If you do it on the builder with dce set to `no`
- Hashlink: It will silently fail on hashlink
- Eval: Claim there's multiple main's
- Neko: Compile
- Js: Compile
Worked during haxe 4 (currently on: `5.0.0-preview.1+f5087fe`
Contributor guide
Assessment
This issue has not been assessed yet.