/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
interface Foo {
default void Meh( ) {
System .
out .
println ( "Foo.Meh" ) ; }
}
interface Bar {
return test;
}
default void doTest( ) {
System .
out .
println ( "Bar.doTest: -- getTest" + getTest
( ) ) ; }
default void Bar( ) {
System .
out .
println ( "Bar.Bar()" ) ;
}
static void Sup( ) {
System .
out .
println ( "Bar.Sup -- Test: " + test
) ; }
default void Meh( ) {
System .
out .
println ( "Bar.Meh -- Test: " + test
) ; }
default void mega( ) {
Meh( ) ;
}
}
abstract class Test {
public void Meh( ) {
System .
out .
println ( "Test.Meh" ) ; }
}
class Ideone extends Test implements Foo, Bar {
{
new Ideone( ) .Meh ( ) ;
blah( ) ;
}
public void Meh( ) {
Bar.super .Bar ( ) ;
Bar.super .Meh ( ) ;
System .
out .
println ( "Ideone.Meh -- Test: " + test
) ;
Foo.super .Meh ( ) ;
super .Meh ( ) ;
Bar hack = new Bar( ) {
public static final String test
= "over" ;
System .
out .
println ( "Ideone.Meh.hack.super.test: " + Bar.
super .
getTest ( ) ) ; return test;
}
public void Meh( ) {
System .
out .
println ( "Ideone.Meh.hack.Meh()" ) ;
func( ) ;
Bar.Sup ( ) ;
Bar.super .Meh ( ) ;
}
public void func( ) {
System .
out .
println ( "Ideone.Meh.hack.func -- Test: " + test
) ; }
} ;
hack.Meh ( ) ;
System .
out .
println ( "Ideone.Meh.hack.test: " + hack.
test ) ; hack.mega ( ) ;
hack.doTest ( ) ;
}
public static void blah( ) {
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbnRlcmZhY2UgRm9vIHsKCWRlZmF1bHQgdm9pZCBNZWgoKSB7CgkJU3lzdGVtLm91dC5wcmludGxuKCJGb28uTWVoIik7Cgl9Cn0KCmludGVyZmFjZSBCYXIgewoJU3RyaW5nIHRlc3Q9InQiOwoJCglkZWZhdWx0IFN0cmluZyBnZXRUZXN0KCl7CgkJcmV0dXJuIHRlc3Q7Cgl9CgkKCWRlZmF1bHQgdm9pZCBkb1Rlc3QoKXsKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkJhci5kb1Rlc3Q6IC0tIGdldFRlc3QiICsgZ2V0VGVzdCgpKTsKCX0KCQogICAgZGVmYXVsdCB2b2lkIEJhcigpIHsKICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oIkJhci5CYXIoKSIpOwogICAgCVN0cmluZyBibGFoaD10ZXN0OwogICAgCQogICAgfQogICAgc3RhdGljIHZvaWQgU3VwKCl7CiAgICAJU3lzdGVtLm91dC5wcmludGxuKCJCYXIuU3VwIC0tIFRlc3Q6ICIrdGVzdCk7CiAgICB9CglkZWZhdWx0IHZvaWQgTWVoKCkgewoJCVN5c3RlbS5vdXQucHJpbnRsbigiQmFyLk1laCAtLSBUZXN0OiAiK3Rlc3QpOwoJfQoJCglkZWZhdWx0IHZvaWQgbWVnYSgpIHsKCQlNZWgoKTsKCX0KfQoKYWJzdHJhY3QgY2xhc3MgVGVzdCB7CglwdWJsaWMgdm9pZCBNZWgoKSB7CgkJU3lzdGVtLm91dC5wcmludGxuKCJUZXN0Lk1laCIpOwoJfQp9CgpjbGFzcyBJZGVvbmUgZXh0ZW5kcyBUZXN0IGltcGxlbWVudHMgRm9vLCBCYXIgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJbmV3IElkZW9uZSgpLk1laCgpOwoJCWJsYWgoKTsKCX0KCQoJcHVibGljIHZvaWQgTWVoKCkgewoJCUJhci5zdXBlci5CYXIoKTsKCQlCYXIuc3VwZXIuTWVoKCk7CgkJU3lzdGVtLm91dC5wcmludGxuKCJJZGVvbmUuTWVoIC0tIFRlc3Q6ICIrdGVzdCk7CgkKCQlGb28uc3VwZXIuTWVoKCk7CgkJc3VwZXIuTWVoKCk7CgkJCgkJCgkJQmFyIGhhY2sgPSBuZXcgQmFyKCl7CgkKCQkJIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIHRlc3Q9Im92ZXIiOwoJCQkKCQkJIHB1YmxpYyBTdHJpbmcgZ2V0VGVzdCgpewoJCQkgCVN5c3RlbS5vdXQucHJpbnRsbigiSWRlb25lLk1laC5oYWNrLnN1cGVyLnRlc3Q6ICIgKyBCYXIuc3VwZXIuZ2V0VGVzdCgpKTsKCQkJIAlyZXR1cm4gdGVzdDsKCQkJIH0KCQkJCgkJCSBwdWJsaWMgdm9pZCBNZWgoKXsKCQkJIAlTeXN0ZW0ub3V0LnByaW50bG4oIklkZW9uZS5NZWguaGFjay5NZWgoKSIpOwoJCQkgCQoJCQkgCWZ1bmMoKTsKCQkJIAlCYXIuU3VwKCk7CgkJCSAJQmFyLnN1cGVyLk1laCgpOwoJCQkgfQoJCQkgCgkJCSBwdWJsaWMgdm9pZCBmdW5jKCl7CgkJCSAJU3lzdGVtLm91dC5wcmludGxuKCJJZGVvbmUuTWVoLmhhY2suZnVuYyAtLSBUZXN0OiAiK3Rlc3QpOwoJCQkgfQoJCX07CgkKCQloYWNrLk1laCgpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiSWRlb25lLk1laC5oYWNrLnRlc3Q6ICIgKyBoYWNrLnRlc3QpOwoJCWhhY2subWVnYSgpOwoJCWhhY2suZG9UZXN0KCk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBibGFoKCkgewoKCX0KfQ==