|
@@ -24,8 +24,43 @@ private class ConcreteOverloadChild extends AbstractOverloadParent {
|
|
|
override function abstractFunction(i:Int):Void {}
|
|
|
}
|
|
|
|
|
|
+private interface InterfaceToBeImplemented {
|
|
|
+ @:overload function toBeImplemented():Bool;
|
|
|
+ @:overload public function toBeImplemented(i:Int):Int;
|
|
|
+}
|
|
|
+
|
|
|
+abstract class AbstractThatImplementsInterface implements InterfaceToBeImplemented {
|
|
|
+ public function new() {}
|
|
|
+}
|
|
|
+
|
|
|
+class ConcreteChildThatImplements extends AbstractThatImplementsInterface {
|
|
|
+ @:overload
|
|
|
+ public override function toBeImplemented() {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @:overload
|
|
|
+ public override function toBeImplemented(i:Int) {
|
|
|
+ return i * 2;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
#end
|
|
|
|
|
|
+private interface InterfaceToBeImplementedNO {
|
|
|
+ function toBeImplemented():Bool;
|
|
|
+}
|
|
|
+
|
|
|
+abstract class AbstractThatImplementsInterfaceNO implements InterfaceToBeImplementedNO {
|
|
|
+ public function new() {}
|
|
|
+}
|
|
|
+
|
|
|
+class ConcreteChildThatImplementsNO extends AbstractThatImplementsInterfaceNO {
|
|
|
+ public override function toBeImplemented() {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
abstract private class AbstractParent {
|
|
|
public function new():Void {}
|
|
|
|
|
@@ -47,6 +82,10 @@ class Issue9619 extends unit.Test {
|
|
|
#if (java || cs)
|
|
|
var cc = new ConcreteOverloadChild();
|
|
|
t(HelperMacros.typeError(new AbstractOverloadParent()));
|
|
|
+
|
|
|
+ var atii:AbstractThatImplementsInterface = new ConcreteChildThatImplements();
|
|
|
+ t(atii.toBeImplemented());
|
|
|
+ eq(24, atii.toBeImplemented(12));
|
|
|
#end
|
|
|
var cc = new ConcreteChild();
|
|
|
|
|
@@ -55,5 +94,8 @@ class Issue9619 extends unit.Test {
|
|
|
|
|
|
var ac:AbstractParent = cc;
|
|
|
t(ac.abstractFunction());
|
|
|
+
|
|
|
+ var atiino:AbstractThatImplementsInterfaceNO = new ConcreteChildThatImplementsNO();
|
|
|
+ t(atiino.toBeImplemented());
|
|
|
}
|
|
|
}
|