test for abstract method calls

This commit is contained in:
Volker Berlin 2020-03-21 11:25:32 +01:00
parent 6e04ade375
commit 1882d016ac

View File

@ -52,6 +52,7 @@ public class StructsNonGC extends AbstractBaseTest {
addParam( list, script, "useGlobalObject" );
addParam( list, script, "multipleAssign" );
addParam( list, script, "getDefaultValue" );
addParam( list, script, "callAbstractMethod" );
addParam( list, script, "instanceof1" );
addParam( list, script, "instanceof2" );
addParam( list, script, "instanceof3" );
@ -151,6 +152,12 @@ public class StructsNonGC extends AbstractBaseTest {
return val.getDefault();
}
@Export
static int callAbstractMethod() {
Ab val = new Abc2();
return val.abstractBar();
}
@Export
static boolean instanceof1() {
Object obj = new Object();
@ -210,7 +217,11 @@ public class StructsNonGC extends AbstractBaseTest {
}
}
static class Abc implements TestDefault {
static abstract class Ab {
abstract int abstractBar();
}
static class Abc extends Ab implements TestDefault {
int a;
long b;
@ -222,6 +233,11 @@ public class StructsNonGC extends AbstractBaseTest {
void bar() {
a = 2;
}
@Override
int abstractBar() {
return 2;
}
}
static class Abc2 extends Abc {
@ -230,5 +246,10 @@ public class StructsNonGC extends AbstractBaseTest {
void bar() {
a = 3;
}
@Override
int abstractBar() {
return 3;
}
}
}