Record inner class info for interface and DefaultImpls

This commit is contained in:
Denis Zharkov
2015-09-25 13:59:51 +03:00
parent c1bed7efc7
commit fd0c92e307
13 changed files with 104 additions and 13 deletions
@@ -9,4 +9,8 @@ public interface Generic <N, NN> {
@org.jetbrains.annotations.Nullable
NN b1(@org.jetbrains.annotations.Nullable NN nn);
}
@kotlin.jvm.internal.KotlinSyntheticClass(version = {0, 27, 0}, abiVersion = 27, kind = kotlin.jvm.internal.KotlinSyntheticClass.Kind.TRAIT_IMPL)
static final class DefaultImpls {
}
}
@@ -40,4 +40,8 @@ public interface Primitives {
float getFloat();
double getDouble();
}
@kotlin.jvm.internal.KotlinSyntheticClass(version = {0, 27, 0}, abiVersion = 27, kind = kotlin.jvm.internal.KotlinSyntheticClass.Kind.TRAIT_IMPL)
static final class DefaultImpls {
}
}
@@ -1,2 +1,12 @@
public interface PrivateInTrait {
}
@kotlin.jvm.internal.KotlinSyntheticClass(version = {0, 27, 0}, abiVersion = 27, kind = kotlin.jvm.internal.KotlinSyntheticClass.Kind.TRAIT_IMPL)
static final class DefaultImpls {
@org.jetbrains.annotations.NotNull
static java.lang.String getNn(PrivateInTrait $this) { /* compiled code */ }
static void setNn(@org.jetbrains.annotations.NotNull PrivateInTrait $this, java.lang.String value) { /* compiled code */ }
@org.jetbrains.annotations.Nullable
static java.lang.String getN(PrivateInTrait $this) { /* compiled code */ }
}
}
@@ -34,4 +34,8 @@ public interface Trait {
java.lang.String getNotNullVar();
void setNotNullVar(@org.jetbrains.annotations.NotNull java.lang.String p);
}
@kotlin.jvm.internal.KotlinSyntheticClass(version = {0, 27, 0}, abiVersion = 27, kind = kotlin.jvm.internal.KotlinSyntheticClass.Kind.TRAIT_IMPL)
static final class DefaultImpls {
}
}
@@ -15,4 +15,8 @@ public interface TraitClassObjectField {
private Companion() { /* compiled code */ }
}
@kotlin.jvm.internal.KotlinSyntheticClass(version = {0, 27, 0}, abiVersion = 27, kind = kotlin.jvm.internal.KotlinSyntheticClass.Kind.TRAIT_IMPL)
static final class DefaultImpls {
}
}
@@ -0,0 +1,5 @@
class B {
static String test(A x) {
return A.DefaultImpls.foo(x);
}
}
@@ -0,0 +1,10 @@
interface A {
fun foo() = "OK"
}
fun box(): String {
val result = B.test(object : A {})
if (result != "OK") return "fail: $result"
return "OK"
}
@@ -0,0 +1,11 @@
interface A {
fun foo() = 1
object C {
}
companion object {}
}
// 2 public final static INNERCLASS A\$DefaultImpls A DefaultImpls
@@ -4,8 +4,8 @@ import java.util.ArrayList;
abstract class TraitImpl implements Trait {
{
Trait$DefaultImpls.simple(this);
Trait.DefaultImpls.simple(this);
Trait$DefaultImpls.generic(this, new ArrayList<String>());
Trait.DefaultImpls.generic(this, new ArrayList<String>());
}
}