Load special java methods as properites

Currently only those that override special builtin properties (e.g. `Collection.size`)
Their modality is defined by method's modality
This commit is contained in:
Denis Zharkov
2015-10-02 18:34:19 +03:00
parent a02b64f0e3
commit 547aa2cda6
36 changed files with 341 additions and 39 deletions
@@ -5,6 +5,7 @@ public fun foo(): kotlin.Unit
@kotlin.jvm.PurelyImplements(value = "kotlin.MutableCollection") public/*package*/ open class A</*0*/ T : kotlin.Any!> : java.util.AbstractCollection<T!>, kotlin.MutableCollection<T> {
public/*package*/ constructor A</*0*/ T : kotlin.Any!>()
@java.lang.Override() public open override /*2*/ val size: kotlin.Int
public open override /*2*/ /*fake_override*/ fun add(/*0*/ e: T): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.Collection<T>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun clear(): kotlin.Unit
@@ -17,7 +18,6 @@ public fun foo(): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
@java.lang.Override() public open override /*2*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
@@ -36,4 +36,4 @@ fun foo() {
val b4: Collection<String?> = x
val b6: MutableCollection<String?> = <!TYPE_MISMATCH!>x<!>
}
}
@@ -6,6 +6,7 @@ public fun foo(): kotlin.Unit
@kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open class A</*0*/ T : kotlin.Any!> : java.util.AbstractList<T!>, kotlin.MutableList<T> {
public/*package*/ constructor A</*0*/ T : kotlin.Any!>()
protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
@java.lang.Override() public open override /*2*/ val size: kotlin.Int
public open override /*2*/ /*fake_override*/ fun add(/*0*/ e: T): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: T): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.Collection<T>): kotlin.Boolean
@@ -30,7 +31,6 @@ public fun foo(): kotlin.Unit
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: T): T
@java.lang.Override() public open override /*2*/ fun size(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.MutableList<T>
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -24,4 +24,4 @@ public class B<T> extends AbstractList<T> {}
// FILE: main.kt
val x = A<String>()
val y = B<String>()
val y = B<String>()
@@ -6,6 +6,7 @@ public val y: B<kotlin.String>
@kotlin.jvm.PurelyImplements(value = "") public open class A</*0*/ T : kotlin.Any!> : java.util.AbstractList<T!> {
public constructor A</*0*/ T : kotlin.Any!>()
protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
@java.lang.Override() public open override /*1*/ val size: kotlin.Int
public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: T!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: T!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.Collection<T!>): kotlin.Boolean
@@ -30,7 +31,6 @@ public val y: B<kotlin.String>
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: T!): T!
@java.lang.Override() public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.MutableList<T!>
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -40,6 +40,7 @@ public val y: B<kotlin.String>
@kotlin.jvm.PurelyImplements(value = "[INVALID]") public open class B</*0*/ T : kotlin.Any!> : java.util.AbstractList<T!> {
public constructor B</*0*/ T : kotlin.Any!>()
protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: T!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: T!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.Collection<T!>): kotlin.Boolean
@@ -64,7 +65,6 @@ public val y: B<kotlin.String>
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: T!): T!
public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.MutableList<T!>
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
@@ -6,6 +6,7 @@ public fun foo(): kotlin.Unit
@kotlin.jvm.PurelyImplements(value = "kotlin.MutableList") public/*package*/ open class A</*0*/ T : kotlin.Any!, /*1*/ V : kotlin.Any!> : java.util.AbstractList<T!> {
public/*package*/ constructor A</*0*/ T : kotlin.Any!, /*1*/ V : kotlin.Any!>()
protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
@java.lang.Override() public open override /*1*/ val size: kotlin.Int
public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: T!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: T!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: kotlin.Collection<T!>): kotlin.Boolean
@@ -30,7 +31,6 @@ public fun foo(): kotlin.Unit
protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection<kotlin.Any?>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: T!): T!
@java.lang.Override() public open override /*1*/ fun size(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.MutableList<T!>
public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!