// !CHECK_TYPE // !LANGUAGE: -AdditionalBuiltInsMembers // SKIP_TXT class A : java.util.ArrayList() { // `stream` is defined in ArrayList, so it was impossible to override it in 1.0 override fun stream(): java.util.stream.Stream = super.stream() // `sort` is defined in ArrayList, so it was possible to override it in 1.0 override fun sort(c: Comparator?) { super.sort(c) } } class A1 : java.util.ArrayList() { // `stream` is defined in ArrayList, so it was possible to declare it in 1.0 without an 'override' keyword fun stream(): java.util.stream.Stream = super.stream() // `sort` is defined in ArrayList, so it was impossible to declare it in 1.0 without an 'override' keyword fun sort(c: Comparator?) { super.sort(c) } } interface A2 : List { override fun stream(): java.util.stream.Stream = null!! } class B : Throwable("", null, false, false) class B1 : RuntimeException() { override fun fillInStackTrace(): Throwable { // 'override' keyword must be prohibited, as it was in 1.0.x return this } } class A3(val x: List) : List by x fun Throwable.fillInStackTrace() = 1 fun foo(x: List, y: Throwable, z: A3) { x.stream() java.util.ArrayList().stream() y.fillInStackTrace() checkType { _() } HashMap().getOrDefault(Any(), null) // Falls back to extension in stdlib y.printStackTrace() z.stream() } interface X { fun foo(): Int = 1 val hidden: Boolean } class Y : X { // There should not be UNSUPPORTED_FEATURE diagnostic override fun foo() = 1 override var hidden: Boolean = true }