AnalyzerExtension refactoring, added support for inline properties

This commit is contained in:
Mikhael Bogdanov
2016-06-23 16:03:16 +03:00
parent 7baf70e8fa
commit 321e97a329
13 changed files with 232 additions and 29 deletions
@@ -0,0 +1,21 @@
// WITH_REFLECT
import kotlin.reflect.KProperty
class Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
open class A {
<!INLINE_PROPERTY_WITH_BACKING_FIELD!>inline val z1<!> = 1
<!INLINE_PROPERTY_WITH_BACKING_FIELD!>val z1_1<!> = 1
inline get() = field + 1
<!INLINE_PROPERTY_WITH_BACKING_FIELD!>inline var z2<!> = 1
<!INLINE_PROPERTY_WITH_BACKING_FIELD!>var z2_1<!> = 1
inline set(p: Int) {}
<!INLINE_PROPERTY_WITH_BACKING_FIELD!>inline val z<!> by Delegate()
}
@@ -0,0 +1,21 @@
package
public open class A {
public constructor A()
public final val z: kotlin.Int
public final val z1: kotlin.Int = 1
public final val z1_1: kotlin.Int = 1
public final var z2: kotlin.Int
public final var z2_1: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Delegate {
public constructor Delegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ t: kotlin.Any?, /*1*/ p: kotlin.reflect.KProperty<*>): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,20 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
inline val z: Int
get() {
<!NOT_YET_SUPPORTED_IN_INLINE!>class A {
fun a() {
class AInner {}
}
}<!>
<!LOCAL_OBJECT_NOT_ALLOWED!>object B<!>{
<!LOCAL_OBJECT_NOT_ALLOWED!>object BInner<!> {}
}
<!NOT_YET_SUPPORTED_IN_INLINE!>fun local() {
fun localInner() {}
}<!>
return 1
}
@@ -0,0 +1,3 @@
package
public val z: kotlin.Int
@@ -0,0 +1,38 @@
final class FinalProperty {
inline val valProp: Int
get() = 1
val valProp_1: Int
inline get() = 1
inline var varProp: Int
get() = 1
set(p: Int) {}
var varProp_2: Int
get() = 1
inline set(p: Int) {}
}
open class OpenProperty {
<!DECLARATION_CANT_BE_INLINED!>inline open val valProp: Int<!>
get() = 1
<!DECLARATION_CANT_BE_INLINED!>open val valProp_1: Int<!>
inline get() = 1
<!DECLARATION_CANT_BE_INLINED!>inline open var varProp: Int<!>
get() = 1
set(p: Int) {}
<!DECLARATION_CANT_BE_INLINED!>open var varProp_2: Int<!>
get() = 1
inline set(p: Int) {}
}
interface AbstractProperty {
<!DECLARATION_CANT_BE_INLINED!>inline abstract val valProp: Int<!>
<!DECLARATION_CANT_BE_INLINED!>inline abstract var varProp: Int<!>
}
@@ -0,0 +1,31 @@
package
public interface AbstractProperty {
public abstract val valProp: kotlin.Int
public abstract var varProp: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class FinalProperty {
public constructor FinalProperty()
public final val valProp: kotlin.Int
public final val valProp_1: kotlin.Int
public final var varProp: kotlin.Int
public final var varProp_2: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open class OpenProperty {
public constructor OpenProperty()
public open val valProp: kotlin.Int
public open val valProp_1: kotlin.Int
public open var varProp: kotlin.Int
public open var varProp_2: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}