HaxeFoundation / HaxeFoundation/haxe

[cpp] Implemented abstract methods are not called

Open
#12,343 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.