Do not generate DefaultImpls if empty

This commit is contained in:
Yan Zhulanow
2015-10-26 16:03:58 +03:00
parent 2a28baa154
commit 3475b4796f
14 changed files with 271 additions and 64 deletions
@@ -1,4 +1,5 @@
@kotlin.jvm.internal.KotlinClass Example {
@kotlin.jvm.internal.KotlinClass
public final class Example {
private field prop2: int
private synthetic final @org.jetbrains.annotations.NotNull field prop: java.lang.String
private field useSite2: int
@@ -11,4 +12,4 @@
public synthetic final method job(): void
public synthetic final method setProp2(p0: int): void
public final method setUseSite2(p0: int): void
}
}
@@ -1,30 +1,60 @@
@kotlin.jvm.internal.KotlinClass A {
@kotlin.jvm.internal.KotlinClass
public final class A {
private final @AnnField @AnnParameterField @AnnTypeField field a: int
private final @AnnField @AnnTypeField field x: int
public method <init>(@AnnParameterProperty @AnnParameterField p0: int): void
private synthetic deprecated final @AnnProperty @AnnFieldProperty @AnnParameterProperty method a$annotations(): void
private synthetic deprecated final static @AnnProperty @AnnFieldProperty @AnnParameterProperty method a$annotations(): void
public final method getA(): int
public final method getX(): int
private synthetic deprecated final @AnnProperty @AnnFieldProperty method x$annotations(): void
private synthetic deprecated final static @AnnProperty @AnnFieldProperty method x$annotations(): void
}
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnField
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class AnnField
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnFieldProperty
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class AnnFieldProperty
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnParameterField
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class AnnParameterField
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnParameterProperty
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class AnnParameterProperty
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnProperty
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class AnnProperty
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnTypeField
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class AnnTypeField
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass Anno
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class Anno
@kotlin.jvm.internal.KotlinFileFacade DefaultTargetsKt {
private final @Anno field p2: int
method <clinit>(): void
public final method getP(): int
public final method getP2(): int
@kotlin.jvm.internal.KotlinFileFacade
public final class DefaultTargetsKt {
private final static @Anno field p2: int
static method <clinit>(): void
public final static method getP(): int
public final static method getP2(): int
}
@@ -1,10 +1,24 @@
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass ClsAnn
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class ClsAnn
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass ExprAnn
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class ExprAnn
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass FunAnn
@kotlin.annotation.Target
@java.lang.annotation.Retention
@java.lang.annotation.Target
@kotlin.jvm.internal.KotlinClass
public abstract class FunAnn
@kotlin.jvm.internal.KotlinSyntheticClass @kotlin.jvm.internal.KotlinFunction LiteralsKt$foo$1 {
@kotlin.jvm.internal.KotlinSyntheticClass
@kotlin.jvm.internal.KotlinFunction
final class LiteralsKt$foo$1 {
synthetic final field $arg: int
inner class LiteralsKt$foo$1
method <init>(p0: int): void
@@ -12,7 +26,9 @@
public method invoke(): java.lang.Object
}
@kotlin.jvm.internal.KotlinSyntheticClass @kotlin.jvm.internal.KotlinFunction LiteralsKt$foo$2 {
@kotlin.jvm.internal.KotlinSyntheticClass
@kotlin.jvm.internal.KotlinFunction
final class LiteralsKt$foo$2 {
synthetic final field $arg: int
inner class LiteralsKt$foo$2
method <init>(p0: int): void
@@ -20,12 +36,16 @@
public method invoke(): java.lang.Object
}
@kotlin.jvm.internal.KotlinLocalClass @kotlin.jvm.internal.KotlinClass LiteralsKt$foo$3 {
@kotlin.jvm.internal.KotlinLocalClass
@kotlin.jvm.internal.KotlinClass
public final class LiteralsKt$foo$3 {
inner class LiteralsKt$foo$3
method <init>(): void
}
@kotlin.jvm.internal.KotlinSyntheticClass @kotlin.jvm.internal.KotlinFunction LiteralsKt$foo$x$1 {
@kotlin.jvm.internal.KotlinSyntheticClass
@kotlin.jvm.internal.KotlinFunction
final class LiteralsKt$foo$x$1 {
synthetic final field $arg: int
inner class LiteralsKt$foo$x$1
method <init>(p0: int): void
@@ -33,15 +53,17 @@
public method invoke(): java.lang.Object
}
@kotlin.jvm.internal.KotlinFileFacade LiteralsKt {
@kotlin.jvm.internal.KotlinFileFacade
public final class LiteralsKt {
inner class LiteralsKt$foo$1
inner class LiteralsKt$foo$2
inner class LiteralsKt$foo$3
inner class LiteralsKt$foo$x$1
public final method bar(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): int
public final @org.jetbrains.annotations.NotNull method foo(p0: int): My
public final static method bar(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): int
public final static @org.jetbrains.annotations.NotNull method foo(p0: int): My
}
@kotlin.jvm.internal.KotlinClass My {
@kotlin.jvm.internal.KotlinClass
public class My {
public method <init>(): void
}
@@ -1,4 +1,5 @@
@kotlin.jvm.internal.KotlinClass A {
@kotlin.jvm.internal.KotlinClass
public final class A {
private @AnnField field p: int
private final @AnnField field x: int
private field y: int
@@ -6,20 +7,32 @@
public final @AnnGetter method getP(): int
public final method getX(): int
public final @AnnGetter method getY(): int
private synthetic deprecated final @AnnProp @AnnProp2 method p$annotations(): void
private synthetic deprecated final static @AnnProp @AnnProp2 method p$annotations(): void
public final @AnnSetter method setP(@AnnParam p0: int): void
public final @AnnSetter method setY(p0: int): void
private synthetic deprecated final @AnnProp2 method x$annotations(): void
private synthetic deprecated final static @AnnProp2 method x$annotations(): void
}
@java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass AnnField
@java.lang.annotation.Retention
@kotlin.jvm.internal.KotlinClass
public abstract class AnnField
@java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass AnnGetter
@java.lang.annotation.Retention
@kotlin.jvm.internal.KotlinClass
public abstract class AnnGetter
@java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass AnnParam
@java.lang.annotation.Retention
@kotlin.jvm.internal.KotlinClass
public abstract class AnnParam
@java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass AnnProp
@java.lang.annotation.Retention
@kotlin.jvm.internal.KotlinClass
public abstract class AnnProp
@java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass AnnProp2
@java.lang.annotation.Retention
@kotlin.jvm.internal.KotlinClass
public abstract class AnnProp2
@java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass AnnSetter
@java.lang.annotation.Retention
@kotlin.jvm.internal.KotlinClass
public abstract class AnnSetter
@@ -1,12 +1,16 @@
@kotlin.jvm.internal.KotlinClass A {
@kotlin.jvm.internal.KotlinClass
public final class A {
public method <init>(): void
public final @org.jetbrains.annotations.NotNull method f(@Ann p0: java.lang.String): java.lang.String
public final @org.jetbrains.annotations.NotNull method getP(@Ann p0: java.lang.String): java.lang.String
}
@java.lang.annotation.Retention @kotlin.jvm.internal.KotlinClass Ann
@java.lang.annotation.Retention
@kotlin.jvm.internal.KotlinClass
public abstract class Ann
@kotlin.jvm.internal.KotlinFileFacade OnReceiverKt {
public final @org.jetbrains.annotations.NotNull method getTopLevelP(@Ann p0: java.lang.String): java.lang.String
public final @org.jetbrains.annotations.NotNull method topLevelF(@Ann p0: java.lang.String): java.lang.String
@kotlin.jvm.internal.KotlinFileFacade
public final class OnReceiverKt {
public final static @org.jetbrains.annotations.NotNull method getTopLevelP(@Ann p0: java.lang.String): java.lang.String
public final static @org.jetbrains.annotations.NotNull method topLevelF(@Ann p0: java.lang.String): java.lang.String
}