HaxeFoundation / HaxeFoundation/haxe
[cpp] Implemented abstract methods are not called
- Dominant language
- Haxe
- Stars
- 6.9k
- Forks
- 715
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 11
Description
Haxe version: `4.3.6`
```haxe
new Test().t(); // <----- false
class Test extends AbstractTest {
private function test(flag:Bool = false):Bool return true;
}
abstract class AbstractTest {
public function new() {}
public function t(): Void {
trace(test()); // <----- false
}
abstract private function test(flag:Bool = false):Bool;
}
```
This works correctly if you don't use optional arguments. Or call the implemented method inside the Test class.
Contributor guide
Research direction
Reproduce the example from the issue with Haxe 4.3.6 on the cpp target. Compare the behavior with optional arguments removed and with the method called inside Test, as described in the report. Done means the implemented private abstract method is called correctly through AbstractTest.t() while preserving the existing working cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100