Write proper enclosingMethod/enclosingClass information to bytecode
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package foo;
|
||||
|
||||
import java.lang.Object;
|
||||
|
||||
class Foo {
|
||||
|
||||
class object { }
|
||||
|
||||
class InnerClass { }
|
||||
|
||||
class InnerObject { }
|
||||
|
||||
void foo(Foo f) {
|
||||
class LocalClass {}
|
||||
class LocalObject { }
|
||||
}
|
||||
|
||||
|
||||
Object objectLiteral = new Object() {
|
||||
void objectLiteralFoo() { }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
class PackageInnerObject { }
|
||||
|
||||
class FooPackage {
|
||||
Object packageObjectLiteral = new Object() {
|
||||
void objectLiteralFoo() { }
|
||||
};
|
||||
|
||||
void packageMethod(Foo f) {
|
||||
class PackageLocalClass {}
|
||||
class PackageLocalObject {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package foo;
|
||||
|
||||
class Foo {
|
||||
|
||||
class object {
|
||||
fun objectFoo() { }
|
||||
}
|
||||
|
||||
class InnerClass { }
|
||||
|
||||
object InnerObject { }
|
||||
|
||||
fun foo(f : Foo) {
|
||||
class LocalClass {}
|
||||
class LocalObject {}
|
||||
}
|
||||
|
||||
val objectLiteral = object {
|
||||
fun objectLiteralFoo() { }
|
||||
}
|
||||
}
|
||||
|
||||
object PackageInnerObject {
|
||||
fun PackageInnerObjectFoo() { }
|
||||
}
|
||||
|
||||
val packageObjectLiteral = object {
|
||||
fun objectLiteralFoo() { }
|
||||
}
|
||||
|
||||
fun packageMethod(f : Foo) {
|
||||
class PackageLocalClass {}
|
||||
class PackageLocalObject {}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
class ClassObject {
|
||||
void accessToClassObject() {
|
||||
WithClassObject.object.$instance.foo();
|
||||
WithClassObject.object.$instance.getValue();
|
||||
WithClassObject.object.$instance.getValueWithGetter();
|
||||
WithClassObject.object.$instance.getVariable();
|
||||
WithClassObject.object.$instance.setVariable(0);
|
||||
WithClassObject.object.$instance.getVariableWithAccessors();
|
||||
WithClassObject.object.$instance.setVariableWithAccessors(0);
|
||||
}
|
||||
|
||||
void accessToPackageObject() {
|
||||
PackageInner.$instance.foo();
|
||||
PackageInner.$instance.getValue();
|
||||
}
|
||||
|
||||
void accessToInnerClass() {
|
||||
new WithClassObject.MyInner().foo();
|
||||
new WithClassObject.MyInner().getValue();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
class WithClassObject {
|
||||
class object {
|
||||
fun foo() {}
|
||||
|
||||
val value: Int = 0
|
||||
val valueWithGetter: Int
|
||||
get() = 1
|
||||
|
||||
var variable: Int = 0
|
||||
var variableWithAccessors: Int
|
||||
get() = 0
|
||||
set(v) {}
|
||||
|
||||
}
|
||||
|
||||
class MyInner {
|
||||
fun foo() {}
|
||||
val value: Int = 0
|
||||
}
|
||||
}
|
||||
|
||||
object PackageInner {
|
||||
fun foo() {}
|
||||
val value: Int = 0
|
||||
}
|
||||
Reference in New Issue
Block a user