Separate additional built-in members from JDK into three groups

- White list: can be used as common built-in declaration
- Black list: can be used only for overrides and super-calls-
- Not considered members: ones that is not in black or white list.
Such members can be used in any context, but they usages marked as deprecated

Third kind is needed to make possible use declarations added in future JDK versions.
Deprecation is necessary because they may get into black list in next Kotlin compiler version
This commit is contained in:
Denis Zharkov
2016-04-28 19:06:12 +03:00
parent 308ee93392
commit e90c92f8d3
24 changed files with 1505 additions and 30 deletions
@@ -0,0 +1,13 @@
abstract class A : MutableList<String> {
override fun sort(/*0*/ p0: java.util.Comparator<in String>) {
super.sort(p0)
}
}
fun foo(x: MutableList<String>, y: java.util.ArrayList<String>, z: A, p: java.util.Comparator<in String>) {
// Resolved to extension with no parameters
x.sort(<!TOO_MANY_ARGUMENTS!>p<!>)
y.sort(<!TOO_MANY_ARGUMENTS!>p<!>)
z.sort(<!TOO_MANY_ARGUMENTS!>p<!>)
}
@@ -0,0 +1,38 @@
package
public fun foo(/*0*/ x: kotlin.collections.MutableList<kotlin.String>, /*1*/ y: java.util.ArrayList<kotlin.String>, /*2*/ z: A, /*3*/ p: java.util.Comparator<in kotlin.String>): kotlin.Unit
public abstract class A : kotlin.collections.MutableList<kotlin.String> {
public constructor A()
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun add(/*0*/ element: kotlin.String): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ element: kotlin.String): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.String!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun indexOf(/*0*/ element: kotlin.String): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<kotlin.String>
public abstract override /*1*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: kotlin.String): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun listIterator(): kotlin.collections.MutableListIterator<kotlin.String>
public abstract override /*1*/ /*fake_override*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.MutableListIterator<kotlin.String>
public open override /*1*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<kotlin.String!>!
public abstract override /*1*/ /*fake_override*/ fun remove(/*0*/ element: kotlin.String): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun removeAt(/*0*/ index: kotlin.Int): kotlin.String
public open override /*1*/ /*fake_override*/ fun removeIf(/*0*/ p0: java.util.function.Predicate<in kotlin.String!>!): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun replaceAll(/*0*/ p0: java.util.function.UnaryOperator<kotlin.String!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.String): kotlin.String
public open override /*1*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun sort(/*0*/ p0: java.util.Comparator<in kotlin.String>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.String!>!
public open override /*1*/ /*fake_override*/ fun stream(): java.util.stream.Stream<kotlin.String!>!
public abstract override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.MutableList<kotlin.String>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}