Drop all tests that disable features for language version less than 3

This commit is contained in:
Ivan Kylchik
2021-12-27 15:54:18 +03:00
parent 549ea1a3b9
commit 6fc56477bf
151 changed files with 0 additions and 5673 deletions
@@ -1,27 +0,0 @@
// !LANGUAGE: -SingleUnderscoreForParameterName
data class A(val x: Int, val y: Int)
fun foo(a: Array<A>) {
val (_, y) = A(1, 2)
y.hashCode()
val q1: (Int, String) -> Unit = {
_, s -> s.hashCode()
}
q1(1, "")
val q2: (Int, String) -> Unit = fun(_: Int, s: String) {
s.hashCode()
}
q2(1, "")
val q3: (A) -> Unit = {
(_, y) -> y.hashCode()
}
q3(A(2, 3))
for ((_, z) in a) {
z.hashCode()
}
}
@@ -1,27 +0,0 @@
// !LANGUAGE: -SingleUnderscoreForParameterName
data class A(val x: Int, val y: Int)
fun foo(a: Array<A>) {
val (<!UNSUPPORTED_FEATURE!>_<!>, y) = A(1, 2)
y.hashCode()
val q1: (Int, String) -> Unit = {
<!UNSUPPORTED_FEATURE!>_<!>, s -> s.hashCode()
}
q1(1, "")
val q2: (Int, String) -> Unit = fun(<!UNSUPPORTED_FEATURE!>_<!>: Int, s: String) {
s.hashCode()
}
q2(1, "")
val q3: (A) -> Unit = {
(<!UNSUPPORTED_FEATURE!>_<!>, y) -> y.hashCode()
}
q3(A(2, 3))
for ((<!UNSUPPORTED_FEATURE!>_<!>, z) in a) {
z.hashCode()
}
}
@@ -1,15 +0,0 @@
package
public fun foo(/*0*/ a: kotlin.Array<A>): kotlin.Unit
public final data class A {
public constructor A(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int)
public final val x: kotlin.Int
public final val y: kotlin.Int
public final operator /*synthesized*/ fun component1(): kotlin.Int
public final operator /*synthesized*/ fun component2(): kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.Int = ...): A
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
@@ -1,4 +0,0 @@
// FIR_IDENTICAL
// !LANGUAGE: -SingleUnderscoreForParameterName
val x = 1.let { arg -> }
@@ -1,3 +0,0 @@
package
public val x: kotlin.Unit
@@ -1,67 +0,0 @@
// !LANGUAGE: -TypeInferenceOnGenericsForCallableReferences
// !DIAGNOSTICS: -UNUSED_VARIABLE, -UNUSED_PARAMETER
fun <T> bar(s: T) {}
fun <T> complex(t: T, f: (T) -> Unit) {}
fun <T> simple(f: (T) -> Unit) {}
fun test1() {
complex(1, ::bar)
simple<String>(::bar)
}
// ---
fun <T> takeFun(f: (T) -> Unit) {}
fun <T, R> callFun(f: (T) -> R): R = TODO()
fun <T> foo(s: T) {}
open class Wrapper<T>(val value: T)
fun <T, R : Wrapper<in T>> createWrapper(s: T): R = TODO()
fun <T> Wrapper<T>.baz(transform: (T) -> Unit): T = TODO()
fun test2() {
takeFun<String>(::foo)
callFun<String, Wrapper<String>>(::createWrapper)
callFun<Int, Wrapper<Number>>(::createWrapper)
callFun<String, Wrapper<*>>(::createWrapper)
callFun<Int, Wrapper<Int>>(::createWrapper).baz(::foo)
}
// ---
fun test3() {
val a1: Array<Double.(Double) -> Double> = arrayOf(Double::plus, Double::minus)
val a2: Array<Double.(Int) -> Double> = arrayOf(Double::plus, Double::minus)
}
// ---
class A1 {
fun <T> a1(t: T): Unit {}
fun test1(): (String) -> Unit = A1()::a1
}
class A2 {
fun <K, V> a2(key: K): V = TODO()
fun test1(): (String) -> Unit = A2()::a2
fun <T3> test2(): (T3) -> T3 = A2()::a2
}
// ---
fun foo1(x: Int?) {}
fun foo1(y: String?) {}
fun foo1(z: Boolean) {}
fun <T> baz1(element: (T) -> Unit): T? = null
fun test4() {
val a1: Int? = baz1(::foo1)
val a2: String? = baz1(::foo1)
}
@@ -1,67 +0,0 @@
// !LANGUAGE: -TypeInferenceOnGenericsForCallableReferences
// !DIAGNOSTICS: -UNUSED_VARIABLE, -UNUSED_PARAMETER
fun <T> bar(s: T) {}
fun <T> complex(t: T, f: (T) -> Unit) {}
fun <T> simple(f: (T) -> Unit) {}
fun test1() {
complex(1, <!UNSUPPORTED_FEATURE!>::bar<!>)
simple<String>(<!UNSUPPORTED_FEATURE!>::bar<!>)
}
// ---
fun <T> takeFun(f: (T) -> Unit) {}
fun <T, R> callFun(f: (T) -> R): R = TODO()
fun <T> foo(s: T) {}
open class Wrapper<T>(val value: T)
fun <T, R : Wrapper<in T>> createWrapper(s: T): R = TODO()
fun <T> Wrapper<T>.baz(transform: (T) -> Unit): T = TODO()
fun test2() {
takeFun<String>(<!UNSUPPORTED_FEATURE!>::foo<!>)
callFun<String, Wrapper<String>>(<!UNSUPPORTED_FEATURE!>::createWrapper<!>)
callFun<Int, Wrapper<Number>>(<!UNSUPPORTED_FEATURE!>::createWrapper<!>)
callFun<String, Wrapper<*>>(<!UNSUPPORTED_FEATURE!>::createWrapper<!>)
callFun<Int, Wrapper<Int>>(<!UNSUPPORTED_FEATURE!>::createWrapper<!>).baz(<!UNSUPPORTED_FEATURE!>::foo<!>)
}
// ---
fun test3() {
val a1: Array<Double.(Double) -> Double> = arrayOf(Double::plus, Double::minus)
val a2: Array<Double.(Int) -> Double> = arrayOf(Double::plus, Double::minus)
}
// ---
class A1 {
fun <T> a1(t: T): Unit {}
fun test1(): (String) -> Unit = A1()::a1
}
class A2 {
fun <K, V> a2(key: K): V = TODO()
fun test1(): (String) -> Unit = A2()::a2
fun <T3> test2(): (T3) -> T3 = A2()::a2
}
// ---
fun foo1(x: Int?) {}
fun foo1(y: String?) {}
fun foo1(z: Boolean) {}
fun <T> baz1(element: (T) -> Unit): T? = null
fun test4() {
val a1: Int? = baz1(::foo1)
val a2: String? = baz1(::foo1)
}
@@ -1,45 +0,0 @@
package
public fun </*0*/ T> bar(/*0*/ s: T): kotlin.Unit
public fun </*0*/ T> baz1(/*0*/ element: (T) -> kotlin.Unit): T?
public fun </*0*/ T, /*1*/ R> callFun(/*0*/ f: (T) -> R): R
public fun </*0*/ T> complex(/*0*/ t: T, /*1*/ f: (T) -> kotlin.Unit): kotlin.Unit
public fun </*0*/ T, /*1*/ R : Wrapper<in T>> createWrapper(/*0*/ s: T): R
public fun </*0*/ T> foo(/*0*/ s: T): kotlin.Unit
public fun foo1(/*0*/ z: kotlin.Boolean): kotlin.Unit
public fun foo1(/*0*/ x: kotlin.Int?): kotlin.Unit
public fun foo1(/*0*/ y: kotlin.String?): kotlin.Unit
public fun </*0*/ T> simple(/*0*/ f: (T) -> kotlin.Unit): kotlin.Unit
public fun </*0*/ T> takeFun(/*0*/ f: (T) -> kotlin.Unit): kotlin.Unit
public fun test1(): kotlin.Unit
public fun test2(): kotlin.Unit
public fun test3(): kotlin.Unit
public fun test4(): kotlin.Unit
public fun </*0*/ T> Wrapper<T>.baz(/*0*/ transform: (T) -> kotlin.Unit): T
public final class A1 {
public constructor A1()
public final fun </*0*/ T> a1(/*0*/ t: T): kotlin.Unit
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 final fun test1(): (kotlin.String) -> kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class A2 {
public constructor A2()
public final fun </*0*/ K, /*1*/ V> a2(/*0*/ key: K): V
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 final fun test1(): (kotlin.String) -> kotlin.Unit
public final fun </*0*/ T3> test2(): (T3) -> T3
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open class Wrapper</*0*/ T> {
public constructor Wrapper</*0*/ T>(/*0*/ value: T)
public final val value: T
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
}
@@ -1,19 +0,0 @@
// !LANGUAGE: -ArrayLiteralsInAnnotations
annotation class Foo(
val a: IntArray = [],
val b: FloatArray = [1f, 2f],
val c: Array<String> = ["/"]
)
@Foo
fun test1() {}
@Foo(a = [1, 2], c = ["a"])
fun test2() {}
@Foo([1], [3f], ["a"])
fun test3() {}
fun test4() {
[1, 2]
}
@@ -1,19 +0,0 @@
// !LANGUAGE: -ArrayLiteralsInAnnotations
annotation class Foo(
val a: IntArray = <!UNSUPPORTED_FEATURE!>[]<!>,
val b: FloatArray = <!UNSUPPORTED_FEATURE!>[1f, 2f]<!>,
val c: Array<String> = <!UNSUPPORTED_FEATURE!>["/"]<!>
)
@Foo
fun test1() {}
@Foo(a = <!UNSUPPORTED_FEATURE!>[1, 2]<!>, c = <!UNSUPPORTED_FEATURE!>["a"]<!>)
fun test2() {}
@Foo(<!UNSUPPORTED_FEATURE!>[1]<!>, <!UNSUPPORTED_FEATURE!>[3f]<!>, <!UNSUPPORTED_FEATURE!>["a"]<!>)
fun test3() {}
fun test4() {
<!UNSUPPORTED!>[1, 2]<!>
}
@@ -1,16 +0,0 @@
package
@Foo public fun test1(): kotlin.Unit
@Foo(a = {1, 2}, c = {"a"}) public fun test2(): kotlin.Unit
@Foo(a = {1}, b = {3.0.toFloat()}, c = {"a"}) public fun test3(): kotlin.Unit
public fun test4(): kotlin.Unit
public final annotation class Foo : kotlin.Annotation {
public constructor Foo(/*0*/ a: kotlin.IntArray = ..., /*1*/ b: kotlin.FloatArray = ..., /*2*/ c: kotlin.Array<kotlin.String> = ...)
public final val a: kotlin.IntArray
public final val b: kotlin.FloatArray
public final val c: kotlin.Array<kotlin.String>
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
}
@@ -1,10 +0,0 @@
// FIR_IDENTICAL
// !LANGUAGE: -SingleUnderscoreForParameterName
// See KT-8813, KT-9631
fun someApi(f: (Int) -> Unit) = f(42)
fun test() {
someApi(fun(p: Int) {})
// Apparently "p" cannot be removed because the signature is fixed by "someApi
}
@@ -1,4 +0,0 @@
package
public fun someApi(/*0*/ f: (kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
@@ -1,14 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: -OperatorProvideDelegate
class WrongDelegate(val x: Int) {
operator fun getValue(thisRef: Any?, prop: Any): Int = x
}
operator fun String.provideDelegate(thisRef: Any?, prop: Any) = WrongDelegate(this.length)
operator fun String.getValue(thisRef: Any?, prop: Any) = this
val test1: String by <!TYPE_MISMATCH!>"OK"<!>
val test2: Int by "OK"
val test3 by "OK"
@@ -1,14 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: -OperatorProvideDelegate
class WrongDelegate(val x: Int) {
operator fun getValue(thisRef: Any?, prop: Any): Int = x
}
<!UNSUPPORTED_FEATURE!>operator<!> fun String.provideDelegate(thisRef: Any?, prop: Any) = WrongDelegate(this.length)
operator fun String.getValue(thisRef: Any?, prop: Any) = this
val test1: String by "OK"
val test2: Int by <!DELEGATE_SPECIAL_FUNCTION_NONE_APPLICABLE!>"OK"<!>
val test3 by "OK"
@@ -1,16 +0,0 @@
package
public val test1: kotlin.String
public val test2: kotlin.Int
public val test3: kotlin.String
public operator fun kotlin.String.getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any): kotlin.String
public operator fun kotlin.String.provideDelegate(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any): WrongDelegate
public final class WrongDelegate {
public constructor WrongDelegate(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.Any): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,13 +0,0 @@
// !LANGUAGE: -DestructuringLambdaParameters
// !CHECK_TYPE
// !DIAGNOSTICS: -UNUSED_PARAMETER
data class A(val x: Int, val y: String)
fun foo(block: (A) -> Unit) { }
fun bar() {
foo { (a, b) ->
a checkType { _<Int>() }
b checkType { _<String>() }
}
}
@@ -1,13 +0,0 @@
// !LANGUAGE: -DestructuringLambdaParameters
// !CHECK_TYPE
// !DIAGNOSTICS: -UNUSED_PARAMETER
data class A(val x: Int, val y: String)
fun foo(block: (A) -> Unit) { }
fun bar() {
foo { <!UNSUPPORTED_FEATURE!>(a, b)<!> ->
a checkType { _<Int>() }
b checkType { _<String>() }
}
}
@@ -1,16 +0,0 @@
package
public fun bar(): kotlin.Unit
public fun foo(/*0*/ block: (A) -> kotlin.Unit): kotlin.Unit
public final data class A {
public constructor A(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.String)
public final val x: kotlin.Int
public final val y: kotlin.String
public final operator /*synthesized*/ fun component1(): kotlin.Int
public final operator /*synthesized*/ fun component2(): kotlin.String
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.String = ...): A
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
@@ -1,48 +0,0 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
// !LANGUAGE: -InlineDefaultFunctionalParameters
fun test() = "OK"
val prop = "OK"
class Foo {
fun test() = "OK"
val prop = "OK"
}
object FooObject {
fun test() = "OK"
val prop = "OK"
}
inline fun default1(s : () -> String = { "OK" }) {}
inline fun default2(s : () -> String = ::test) {}
inline fun default3(s : () -> String = ::prop) {}
inline fun default4(s : () -> String = FooObject::test) {}
inline fun default5(s : () -> String = FooObject::prop) {}
inline fun default6(s : (a: Foo) -> String = Foo::test) {}
inline fun default7(s : (a: Foo) -> String = Foo::prop) {}
val a = Foo()
inline fun default8(s : () -> String = a::test) {}
inline fun default9(s : () -> String = a::prop) {}
inline fun default10(s : () -> String = <!INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINE!>object<!> : Function0<String> {
override fun invoke(): String {
return "FAIL"
}
}) {}
abstract class Base {
abstract fun foo(f: () -> Unit = { })
}
class Derived : Base() {
<!OVERRIDE_BY_INLINE!>override final inline fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>f: () -> Unit<!>)<!> {
f()
}
}
inline fun default11(s : () -> Derived = ::Derived) {}
@@ -1,48 +0,0 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
// !LANGUAGE: -InlineDefaultFunctionalParameters
fun test() = "OK"
val prop = "OK"
class Foo {
fun test() = "OK"
val prop = "OK"
}
object FooObject {
fun test() = "OK"
val prop = "OK"
}
inline fun default1(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = { "OK" }<!>) {}
inline fun default2(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = ::test<!>) {}
inline fun default3(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = ::prop<!>) {}
inline fun default4(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = FooObject::test<!>) {}
inline fun default5(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = FooObject::prop<!>) {}
inline fun default6(<!NOT_YET_SUPPORTED_IN_INLINE!>s : (a: Foo) -> String = Foo::test<!>) {}
inline fun default7(<!NOT_YET_SUPPORTED_IN_INLINE!>s : (a: Foo) -> String = Foo::prop<!>) {}
val a = Foo()
inline fun default8(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = a::test<!>) {}
inline fun default9(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = a::prop<!>) {}
inline fun default10(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> String = object : Function0<String> {
override fun invoke(): String {
return "FAIL"
}
}<!>) {}
abstract class Base {
abstract fun foo(f: () -> Unit = { })
}
class Derived : Base() {
<!OVERRIDE_BY_INLINE!>override final inline fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>f: () -> Unit<!>)<!> {
f()
}
}
inline fun default11(<!NOT_YET_SUPPORTED_IN_INLINE!>s : () -> Derived = ::Derived<!>) {}
@@ -1,50 +0,0 @@
package
public val a: Foo
public val prop: kotlin.String = "OK"
public inline fun default1(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public inline fun default10(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public inline fun default11(/*0*/ s: () -> Derived = ...): kotlin.Unit
public inline fun default2(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public inline fun default3(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public inline fun default4(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public inline fun default5(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public inline fun default6(/*0*/ s: (a: Foo) -> kotlin.String = ...): kotlin.Unit
public inline fun default7(/*0*/ s: (a: Foo) -> kotlin.String = ...): kotlin.Unit
public inline fun default8(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public inline fun default9(/*0*/ s: () -> kotlin.String = ...): kotlin.Unit
public fun test(): kotlin.String
public abstract class Base {
public constructor Base()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun foo(/*0*/ f: () -> kotlin.Unit = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Derived : Base {
public constructor Derived()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final override /*1*/ inline fun foo(/*0*/ f: () -> kotlin.Unit = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Foo {
public constructor Foo()
public final val prop: kotlin.String = "OK"
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 final fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object FooObject {
private constructor FooObject()
public final val prop: kotlin.String = "OK"
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 final fun test(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,60 +0,0 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
// !LANGUAGE: -InlineDefaultFunctionalParameters
inline fun inlineFun(lambda: () -> String) = lambda()
fun noInlineFun(lambda: () -> String) = lambda()
inline fun default0_1(lambda: () -> String, dlambda: () -> String = { lambda }) {
lambda() + dlambda()
}
inline fun default0_2(lambda: () -> String, dlambda: () -> String = { noInlineFun (lambda) }) {
lambda() + dlambda()
}
inline fun default1_0(lambda: () -> String, dlambda: () -> String = { lambda() }) {
lambda() + dlambda()
}
inline fun default1_1(lambda: () -> String, noinline dlambda: () -> String = { lambda() }) {
lambda() + dlambda()
}
inline fun default1_1crossinline(crossinline lambda: () -> String, noinline dlambda: () -> String = { lambda() }) {
lambda() + dlambda()
}
inline fun default1_2(noinline lambda: () -> String, dlambda: () -> String = { lambda() }) {
lambda() + dlambda()
}
inline fun default1_3(noinline lambda: () -> String, noinline dlambda: () -> String = { lambda() }) {
lambda() + dlambda()
}
inline fun default2_0(lambda: () -> String, dlambda: () -> String = { inlineFun(lambda) }) {
lambda() + dlambda()
}
inline fun default2_1(lambda: () -> String, noinline dlambda: () -> String = { inlineFun(lambda) }) {
lambda() + dlambda()
}
inline fun default2_1crossinline(crossinline lambda: () -> String, noinline dlambda: () -> String = { inlineFun(lambda) }) {
lambda() + dlambda()
}
inline fun default2_2(noinline lambda: () -> String, dlambda: () -> String = { inlineFun(lambda) }) {
lambda() + dlambda()
}
inline fun default2_3(noinline lambda: () -> String, noinline dlambda: () -> String = { inlineFun(lambda) }) {
lambda() + dlambda()
}
@@ -1,60 +0,0 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
// !LANGUAGE: -InlineDefaultFunctionalParameters
inline fun inlineFun(lambda: () -> String) = lambda()
fun noInlineFun(lambda: () -> String) = lambda()
inline fun default0_1(lambda: () -> String, <!NOT_YET_SUPPORTED_IN_INLINE!>dlambda: () -> String = { <!TYPE_MISMATCH, USAGE_IS_NOT_INLINABLE!>lambda<!> }<!>) {
lambda() + dlambda()
}
inline fun default0_2(lambda: () -> String, <!NOT_YET_SUPPORTED_IN_INLINE!>dlambda: () -> String = { noInlineFun (<!USAGE_IS_NOT_INLINABLE!>lambda<!>) }<!>) {
lambda() + dlambda()
}
inline fun default1_0(lambda: () -> String, <!NOT_YET_SUPPORTED_IN_INLINE!>dlambda: () -> String = { <!NON_LOCAL_RETURN_NOT_ALLOWED!>lambda<!>() }<!>) {
lambda() + dlambda()
}
inline fun default1_1(lambda: () -> String, noinline dlambda: () -> String = { <!NON_LOCAL_RETURN_NOT_ALLOWED!>lambda<!>() }) {
lambda() + dlambda()
}
inline fun default1_1crossinline(crossinline lambda: () -> String, noinline dlambda: () -> String = { lambda() }) {
lambda() + dlambda()
}
inline fun default1_2(noinline lambda: () -> String, <!NOT_YET_SUPPORTED_IN_INLINE!>dlambda: () -> String = { lambda() }<!>) {
lambda() + dlambda()
}
inline fun default1_3(noinline lambda: () -> String, noinline dlambda: () -> String = { lambda() }) {
lambda() + dlambda()
}
inline fun default2_0(lambda: () -> String, <!NOT_YET_SUPPORTED_IN_INLINE!>dlambda: () -> String = { inlineFun(<!NON_LOCAL_RETURN_NOT_ALLOWED!>lambda<!>) }<!>) {
lambda() + dlambda()
}
inline fun default2_1(lambda: () -> String, noinline dlambda: () -> String = { inlineFun(<!NON_LOCAL_RETURN_NOT_ALLOWED!>lambda<!>) }) {
lambda() + dlambda()
}
inline fun default2_1crossinline(crossinline lambda: () -> String, noinline dlambda: () -> String = { inlineFun(lambda) }) {
lambda() + dlambda()
}
inline fun default2_2(noinline lambda: () -> String, <!NOT_YET_SUPPORTED_IN_INLINE!>dlambda: () -> String = { inlineFun(lambda) }<!>) {
lambda() + dlambda()
}
inline fun default2_3(noinline lambda: () -> String, noinline dlambda: () -> String = { inlineFun(lambda) }) {
lambda() + dlambda()
}
@@ -1,16 +0,0 @@
package
public inline fun default0_1(/*0*/ lambda: () -> kotlin.String, /*1*/ dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default0_2(/*0*/ lambda: () -> kotlin.String, /*1*/ dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default1_0(/*0*/ lambda: () -> kotlin.String, /*1*/ dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default1_1(/*0*/ lambda: () -> kotlin.String, /*1*/ noinline dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default1_1crossinline(/*0*/ crossinline lambda: () -> kotlin.String, /*1*/ noinline dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default1_2(/*0*/ noinline lambda: () -> kotlin.String, /*1*/ dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default1_3(/*0*/ noinline lambda: () -> kotlin.String, /*1*/ noinline dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default2_0(/*0*/ lambda: () -> kotlin.String, /*1*/ dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default2_1(/*0*/ lambda: () -> kotlin.String, /*1*/ noinline dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default2_1crossinline(/*0*/ crossinline lambda: () -> kotlin.String, /*1*/ noinline dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default2_2(/*0*/ noinline lambda: () -> kotlin.String, /*1*/ dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun default2_3(/*0*/ noinline lambda: () -> kotlin.String, /*1*/ noinline dlambda: () -> kotlin.String = ...): kotlin.Unit
public inline fun inlineFun(/*0*/ lambda: () -> kotlin.String): kotlin.String
public fun noInlineFun(/*0*/ lambda: () -> kotlin.String): kotlin.String
@@ -1,33 +0,0 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
// !LANGUAGE: -InlineDefaultFunctionalParameters
inline fun unsupported() {
<!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() {}
}
}
inline fun unsupportedDefault(s : ()->Unit = {}) {
}
open class Base {
open fun foo(a: Int = 1) {}
}
class Derived: Base() {
<!OVERRIDE_BY_INLINE!>inline final override fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>a: Int<!>)<!> {
}
}
@@ -1,33 +0,0 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
// !LANGUAGE: -InlineDefaultFunctionalParameters
inline fun unsupported() {
<!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() {}
}
}
inline fun unsupportedDefault(<!NOT_YET_SUPPORTED_IN_INLINE!>s : ()->Unit = {}<!>) {
}
open class Base {
open fun foo(a: Int = 1) {}
}
class Derived: Base() {
<!OVERRIDE_BY_INLINE!>inline final override fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>a: Int<!>)<!> {
}
}
@@ -1,20 +0,0 @@
package
public inline fun unsupported(): kotlin.Unit
public inline fun unsupportedDefault(/*0*/ s: () -> kotlin.Unit = ...): kotlin.Unit
public open class Base {
public constructor Base()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open fun foo(/*0*/ a: kotlin.Int = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Derived : Base {
public constructor Derived()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final override /*1*/ inline fun foo(/*0*/ a: kotlin.Int = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,46 +0,0 @@
// FIR_IDENTICAL
// !LANGUAGE: -InnerClassInEnumEntryClass
<!WRONG_MODIFIER_TARGET!>inner<!> fun foo() {}
<!WRONG_MODIFIER_TARGET!>inner<!> val prop = 42
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class A
<!WRONG_MODIFIER_TARGET!>inner<!> interface B
<!WRONG_MODIFIER_TARGET!>inner<!> object C
class D {
inner class E
<!WRONG_MODIFIER_TARGET!>inner<!> interface F
<!WRONG_MODIFIER_TARGET!>inner<!> object G
<!WRONG_MODIFIER_TARGET!>inner<!> enum class R
<!WRONG_MODIFIER_TARGET!>inner<!> annotation class S
<!WRONG_MODIFIER_TARGET!>inner<!> companion object
}
enum class H {
I0 {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class II0
},
<!WRONG_MODIFIER_TARGET!>inner<!> I {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class II
};
inner class J
}
interface K {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class L
}
object N {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class O
}
class P {
companion object {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class Q
}
}
val R = object {
inner class S
}
@@ -1,159 +0,0 @@
package
public val R: kotlin.Any
public val prop: kotlin.Int = 42
public fun foo(): kotlin.Unit
public final class A {
public constructor A()
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 interface B {
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 object C {
private constructor C()
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 D {
public constructor D()
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 companion object Companion {
private constructor Companion()
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 inner class E {
public constructor E()
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 interface F {
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 object G {
private constructor G()
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 enum class R : kotlin.Enum<D.R> {
private constructor R()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: D.R): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<D.R!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): D.R
public final /*synthesized*/ fun values(): kotlin.Array<D.R>
}
public final annotation class S : kotlin.Annotation {
public constructor S()
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 enum class H : kotlin.Enum<H> {
enum entry I0
enum entry I
private constructor H()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: H): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<H!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final inner class J {
public constructor J()
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
}
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): H
public final /*synthesized*/ fun values(): kotlin.Array<H>
}
public interface K {
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 L {
public constructor L()
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 object N {
private constructor N()
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 O {
public constructor O()
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 P {
public constructor P()
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 companion object Companion {
private constructor Companion()
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 Q {
public constructor Q()
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
}
}
}
@@ -1,19 +0,0 @@
// !LANGUAGE: -InnerClassInEnumEntryClass -NestedClassesInEnumEntryShouldBeInner
enum class Enum {
ENTRY_WITH_CLASS {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class TestInner
<!NESTED_CLASS_NOT_ALLOWED!>class TestNested<!>
<!LOCAL_INTERFACE_NOT_ALLOWED, NESTED_CLASS_NOT_ALLOWED!>interface TestInterface<!>
<!LOCAL_OBJECT_NOT_ALLOWED!>object TestObject<!>
<!WRONG_MODIFIER_TARGET!>enum<!> class TestEnumClass {
OTHER_ENTRY
}
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {}
}
}
@@ -1,19 +0,0 @@
// !LANGUAGE: -InnerClassInEnumEntryClass -NestedClassesInEnumEntryShouldBeInner
enum class Enum {
ENTRY_WITH_CLASS {
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>inner<!> class TestInner
<!NESTED_CLASS_DEPRECATED!>class TestNested<!>
<!NESTED_CLASS_DEPRECATED!>interface TestInterface<!>
<!NESTED_CLASS_DEPRECATED!>object TestObject<!>
<!NESTED_CLASS_DEPRECATED!>enum class TestEnumClass<!> {
OTHER_ENTRY
}
<!WRONG_MODIFIER_CONTAINING_DECLARATION!>companion<!> object {}
}
}
@@ -1,20 +0,0 @@
package
public final enum class Enum : kotlin.Enum<Enum> {
enum entry ENTRY_WITH_CLASS
private constructor Enum()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Enum): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<Enum!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Enum
public final /*synthesized*/ fun values(): kotlin.Array<Enum>
}
@@ -1,169 +0,0 @@
// !LANGUAGE: -DefaultMethodsCallFromJava6TargetError
// !JVM_TARGET: 1.6
// FILE: JavaInterface.java
public interface JavaInterface {
static String testStatic() {
return "OK";
}
default String test() {
return "OK";
}
default String testOverride() {
return "OK";
}
}
// FILE: 1.kt
import JavaInterface.testStatic
interface KotlinInterface : JavaInterface {
fun fooo() {
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterface.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
}
val propertyy: String
get() {
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterface.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
return ""
}
override fun testOverride(): String {
return "OK";
}
}
interface KotlinInterfaceIndirectInheritance : KotlinInterface {
fun foooo() {
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterfaceIndirectInheritance.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
}
val propertyyy: String
get() {
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterfaceIndirectInheritance.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
return ""
}
}
open class KotlinClass : JavaInterface {
fun foo(){
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testOverride<!>()
object {
fun run () {
super@KotlinClass.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
}
val property: String
get() {
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testOverride<!>()
object {
fun run () {
super@KotlinClass.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
return ""
}
}
class KotlinClassIndirectInheritance : KotlinClass() {
fun foo2(){
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testOverride<!>()
object {
fun run () {
super@KotlinClassIndirectInheritance.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
}
val property2: String
get() {
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testOverride<!>()
object {
fun run () {
super@KotlinClassIndirectInheritance.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
return ""
}
}
class KotlinClassIndirectInheritance2 : KotlinInterfaceIndirectInheritance {
fun foo(){
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.testOverride()
object {
fun run () {
super@KotlinClassIndirectInheritance2.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
}
val property: String
get() {
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.testOverride()
object {
fun run () {
super@KotlinClassIndirectInheritance2.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
return ""
}
}
fun test() {
JavaInterface.<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
KotlinClass().foo()
KotlinClass().property
KotlinClassIndirectInheritance2().foo()
KotlinClassIndirectInheritance2().property
KotlinClass().test()
KotlinClass().property
KotlinClass().testOverride()
KotlinClassIndirectInheritance().testOverride()
}
@@ -1,169 +0,0 @@
// !LANGUAGE: -DefaultMethodsCallFromJava6TargetError
// !JVM_TARGET: 1.6
// FILE: JavaInterface.java
public interface JavaInterface {
static String testStatic() {
return "OK";
}
default String test() {
return "OK";
}
default String testOverride() {
return "OK";
}
}
// FILE: 1.kt
import JavaInterface.testStatic
interface KotlinInterface : JavaInterface {
fun fooo() {
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterface.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
}
val propertyy: String
get() {
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterface.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
return ""
}
override fun testOverride(): String {
return "OK";
}
}
interface KotlinInterfaceIndirectInheritance : KotlinInterface {
fun foooo() {
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterfaceIndirectInheritance.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
}
val propertyyy: String
get() {
super.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
object {
fun run () {
super@KotlinInterfaceIndirectInheritance.<!INTERFACE_CANT_CALL_DEFAULT_METHOD_VIA_SUPER!>test<!>()
}
}
return ""
}
}
open class KotlinClass : JavaInterface {
fun foo(){
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testOverride<!>()
object {
fun run () {
super@KotlinClass.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
}
val property: String
get() {
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testOverride<!>()
object {
fun run () {
super@KotlinClass.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
return ""
}
}
class KotlinClassIndirectInheritance : KotlinClass() {
fun foo2(){
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.test()
super.testOverride()
object {
fun run () {
super@KotlinClassIndirectInheritance.test()
}
}
}
val property2: String
get() {
super.test()
super.testOverride()
object {
fun run () {
super@KotlinClassIndirectInheritance.test()
}
}
return ""
}
}
class KotlinClassIndirectInheritance2 : KotlinInterfaceIndirectInheritance {
fun foo(){
<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.testOverride()
object {
fun run () {
super@KotlinClassIndirectInheritance2.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
}
val property: String
get() {
super.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
super.testOverride()
object {
fun run () {
super@KotlinClassIndirectInheritance2.<!DEFAULT_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>test<!>()
}
}
return ""
}
}
fun test() {
JavaInterface.<!INTERFACE_STATIC_METHOD_CALL_FROM_JAVA6_TARGET_WARNING!>testStatic<!>()
KotlinClass().foo()
KotlinClass().property
KotlinClassIndirectInheritance2().foo()
KotlinClassIndirectInheritance2().property
KotlinClass().test()
KotlinClass().property
KotlinClass().testOverride()
KotlinClassIndirectInheritance().testOverride()
}
@@ -1,75 +0,0 @@
package
public fun test(): kotlin.Unit
public interface JavaInterface {
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 fun test(): kotlin.String!
public open fun testOverride(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public open fun testStatic(): kotlin.String!
}
public open class KotlinClass : JavaInterface {
public constructor KotlinClass()
public final val property: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun testOverride(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class KotlinClassIndirectInheritance : KotlinClass {
public constructor KotlinClassIndirectInheritance()
public final override /*1*/ /*fake_override*/ val property: kotlin.String
public final val property2: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
public final fun foo2(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun testOverride(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class KotlinClassIndirectInheritance2 : KotlinInterfaceIndirectInheritance {
public constructor KotlinClassIndirectInheritance2()
public final val property: kotlin.String
public open override /*1*/ /*fake_override*/ val propertyy: kotlin.String
public open override /*1*/ /*fake_override*/ val propertyyy: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun fooo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun foooo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun testOverride(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface KotlinInterface : JavaInterface {
public open val propertyy: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open fun fooo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.String!
public open override /*1*/ fun testOverride(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface KotlinInterfaceIndirectInheritance : KotlinInterface {
public open override /*1*/ /*fake_override*/ val propertyy: kotlin.String
public open val propertyyy: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun fooo(): kotlin.Unit
public open fun foooo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun test(): kotlin.String!
public open override /*1*/ /*fake_override*/ fun testOverride(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,71 +0,0 @@
// !LANGUAGE: -LateinitTopLevelProperties -LateinitLocalVariables
import kotlin.reflect.KProperty
class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
}
public abstract class A<T: Any, V: String?>(lateinit var p2: String) {
public <!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val a: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val b: T
private lateinit var c: CharSequence
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val d: String
get
public lateinit var e: String
get
private set
fun a() {
lateinit var a: String
}
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e1: V
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e2: String?
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e3: Int
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e4: Int?
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e5 = "A"
// With initializer, primitive
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e6 = 3
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e7 by CustomDelegate()
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e8: String
get() = "A"
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e9: String
set(v) { field = v }
abstract lateinit var e10: String
lateinit var String.e11: String
lateinit var String.e12: String
}
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val topLevel: String
lateinit var topLevelMutable: String
public interface Intf {
lateinit var str: String
}
public abstract class AbstractClass {
abstract var str: String
}
public class AbstractClassImpl : AbstractClass() {
override lateinit var str: String
}
public class B {
lateinit var a: String
init {
a.length
}
}
@@ -1,71 +0,0 @@
// !LANGUAGE: -LateinitTopLevelProperties -LateinitLocalVariables
import kotlin.reflect.KProperty
class CustomDelegate {
operator fun getValue(thisRef: Any?, prop: KProperty<*>): String = prop.name
operator fun setValue(thisRef: Any?, prop: KProperty<*>, value: String) {}
}
public abstract class A<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var p2: String) {
public <!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val a: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val b: T
private lateinit var c: CharSequence
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val d: String
get
public lateinit var e: String
get
private set
fun a() {
<!UNSUPPORTED_FEATURE!>lateinit<!> var a: String
}
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e1: V
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e2: String?
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e3: Int
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e4: Int?
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e5 = "A"
// With initializer, primitive
<!INAPPLICABLE_LATEINIT_MODIFIER, INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e6 = 3
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e7 by CustomDelegate()
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e8: String
get() = "A"
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e9: String
set(v) { field = v }
abstract <!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e10: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var String.e11: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var String.e12: String
}
<!INAPPLICABLE_LATEINIT_MODIFIER, UNSUPPORTED_FEATURE!>lateinit<!> val topLevel: String
<!UNSUPPORTED_FEATURE!>lateinit<!> var topLevelMutable: String
public interface Intf {
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var str: String
}
public abstract class AbstractClass {
abstract var str: String
}
public class AbstractClassImpl : AbstractClass() {
override lateinit var str: String
}
public class B {
lateinit var a: String
init {
a.length
}
}
@@ -1,70 +0,0 @@
package
public lateinit val topLevel: kotlin.String
public lateinit var topLevelMutable: kotlin.String
public abstract class A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?> {
public constructor A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?>(/*0*/ p2: kotlin.String)
public final lateinit val a: kotlin.String
public final lateinit val b: T
private final lateinit var c: kotlin.CharSequence
public final lateinit val d: kotlin.String
public final lateinit var e: kotlin.String
public final lateinit var e1: V
public abstract lateinit var e10: kotlin.String
public final lateinit var e2: kotlin.String?
public final lateinit var e3: kotlin.Int
public final lateinit var e4: kotlin.Int?
public final lateinit var e5: kotlin.String
public final lateinit var e6: kotlin.Int
public final lateinit var e7: kotlin.String
public final lateinit var e8: kotlin.String
public final lateinit var e9: kotlin.String
public final var p2: kotlin.String
public final lateinit var kotlin.String.e11: kotlin.String
public final lateinit var kotlin.String.e12: kotlin.String
public final fun a(): kotlin.Unit
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 abstract class AbstractClass {
public constructor AbstractClass()
public abstract var str: kotlin.String
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 AbstractClassImpl : AbstractClass {
public constructor AbstractClassImpl()
public open override /*1*/ lateinit var str: kotlin.String
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 B {
public constructor B()
public final lateinit var a: kotlin.String
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 CustomDelegate {
public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final operator fun getValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final operator fun setValue(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<*>, /*2*/ value: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface Intf {
public abstract lateinit var str: kotlin.String
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
}
@@ -1,19 +0,0 @@
// !LANGUAGE: -DivisionByZeroInConstantExpressions
// !DIAGNOSTICS:-DIVISION_BY_ZERO
const val a = 1 / 0.0
const val b = 1.0 / 0
const val c = 0.0 / 0
const val d = 1.0 % 0
const val e = 0.0 % 0
const val g = 0.0.rem(0)
const val h = 0.0.div(0)
const val i = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1 / 0<!>
val nonConst1 = 1.0 / 0
val nonConst2 = 1 / 0
val nonConst3 = 1.0 % 0
val nonConst4 = 1 % 0
val nonConst6 = 1.rem(0)
val nonConst7 = 1.div(0)
@@ -1,19 +0,0 @@
// !LANGUAGE: -DivisionByZeroInConstantExpressions
// !DIAGNOSTICS:-DIVISION_BY_ZERO
const val a = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1 / 0.0<!>
const val b = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1.0 / 0<!>
const val c = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>0.0 / 0<!>
const val d = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1.0 % 0<!>
const val e = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>0.0 % 0<!>
const val g = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>0.0.rem(0)<!>
const val h = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>0.0.div(0)<!>
const val i = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>1 / 0<!>
val nonConst1 = 1.0 / 0
val nonConst2 = 1 / 0
val nonConst3 = 1.0 % 0
val nonConst4 = 1 % 0
val nonConst6 = 1.rem(0)
val nonConst7 = 1.div(0)
@@ -1,16 +0,0 @@
package
public const val a: kotlin.Double
public const val b: kotlin.Double
public const val c: kotlin.Double
public const val d: kotlin.Double
public const val e: kotlin.Double
public const val g: kotlin.Double
public const val h: kotlin.Double
public const val i: kotlin.Int
public val nonConst1: kotlin.Double
public val nonConst2: kotlin.Int
public val nonConst3: kotlin.Double
public val nonConst4: kotlin.Int
public val nonConst6: kotlin.Int
public val nonConst7: kotlin.Int
@@ -1,38 +0,0 @@
// !LANGUAGE: -OperatorRem
// !DIAGNOSTICS: -UNUSED_PARAMETER
object ModAndRem {
operator fun mod(x: Int) {}
operator fun rem(x: Int) {}
}
object OldMod {
operator fun mod(x: Int) {}
}
object ModAndRemExtension
operator fun ModAndRemExtension.mod(x: Int) {}
operator fun ModAndRemExtension.rem(x: Int) {}
object ModExtension
operator fun ModExtension.mod(x: Int) {}
object ModMemberAndRemExtension {
operator fun mod(x: Int) {}
}
operator fun ModMemberAndRemExtension.rem(x: Int) {}
fun foo() {
ModAndRem % 1
OldMod <!NONE_APPLICABLE!>%<!> 1
ModAndRemExtension % 1
ModExtension <!NONE_APPLICABLE!>%<!> 1
ModMemberAndRemExtension % 1
OldMod.mod(1)
ModExtension.mod(1)
}
@@ -1,38 +0,0 @@
// !LANGUAGE: -OperatorRem
// !DIAGNOSTICS: -UNUSED_PARAMETER
object ModAndRem {
operator fun mod(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun rem(x: Int) {}
}
object OldMod {
operator fun mod(x: Int) {}
}
object ModAndRemExtension
operator fun ModAndRemExtension.mod(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun ModAndRemExtension.rem(x: Int) {}
object ModExtension
operator fun ModExtension.mod(x: Int) {}
object ModMemberAndRemExtension {
operator fun mod(x: Int) {}
}
<!UNSUPPORTED_FEATURE!>operator<!> fun ModMemberAndRemExtension.rem(x: Int) {}
fun foo() {
ModAndRem % 1
OldMod % 1
ModAndRemExtension % 1
ModExtension % 1
ModMemberAndRemExtension % 1
OldMod.mod(1)
ModExtension.mod(1)
}
@@ -1,46 +0,0 @@
package
public fun foo(): kotlin.Unit
public operator fun ModAndRemExtension.mod(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModExtension.mod(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModAndRemExtension.rem(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModMemberAndRemExtension.rem(/*0*/ x: kotlin.Int): kotlin.Unit
public object ModAndRem {
private constructor ModAndRem()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public final operator fun rem(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object ModAndRemExtension {
private constructor ModAndRemExtension()
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 object ModExtension {
private constructor ModExtension()
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 object ModMemberAndRemExtension {
private constructor ModMemberAndRemExtension()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object OldMod {
private constructor OldMod()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,32 +0,0 @@
// !LANGUAGE: -OperatorRem
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -EXTENSION_SHADOWED_BY_MEMBER
class Foo {
operator fun rem(x: Int): Foo = Foo()
}
class Bar {
operator fun remAssign(x: Int) {}
}
class Baz {
companion object {
operator fun rem(x: Int) {}
operator fun Int.rem(x: Int) {}
}
}
operator fun Baz.rem(x: Int) {}
fun local() {
operator fun Int.rem(x: Int) {}
operator fun String.remAssign(x: Int) {}
}
fun builtIns(b: Byte, s: Short) {
var a = 1 % 2
var d = 5
d %= 3
b % s
1.0 % 2.0
}
@@ -1,32 +0,0 @@
// !LANGUAGE: -OperatorRem
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -EXTENSION_SHADOWED_BY_MEMBER
class Foo {
<!UNSUPPORTED_FEATURE!>operator<!> fun rem(x: Int): Foo = Foo()
}
class Bar {
<!UNSUPPORTED_FEATURE!>operator<!> fun remAssign(x: Int) {}
}
class Baz {
companion object {
<!UNSUPPORTED_FEATURE!>operator<!> fun rem(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun Int.rem(x: Int) {}
}
}
<!UNSUPPORTED_FEATURE!>operator<!> fun Baz.rem(x: Int) {}
fun local() {
<!UNSUPPORTED_FEATURE!>operator<!> fun Int.rem(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun String.remAssign(x: Int) {}
}
fun builtIns(b: Byte, s: Short) {
var a = 1 <!UNRESOLVED_REFERENCE!>%<!> 2
var d = 5
d <!UNRESOLVED_REFERENCE!>%=<!> 3
b <!UNRESOLVED_REFERENCE!>%<!> s
1.0 <!UNRESOLVED_REFERENCE!>%<!> 2.0
}
@@ -1,37 +0,0 @@
package
public fun builtIns(/*0*/ b: kotlin.Byte, /*1*/ s: kotlin.Short): kotlin.Unit
public fun local(): kotlin.Unit
public operator fun Baz.rem(/*0*/ x: kotlin.Int): kotlin.Unit
public final class Bar {
public constructor Bar()
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 final operator fun remAssign(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Baz {
public constructor Baz()
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 companion object Companion {
private constructor Companion()
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 final operator fun rem(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final operator fun kotlin.Int.rem(/*0*/ x: kotlin.Int): kotlin.Unit
}
}
public final class Foo {
public constructor Foo()
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 final operator fun rem(/*0*/ x: kotlin.Int): Foo
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,39 +0,0 @@
// !LANGUAGE: -OperatorRem
// !DIAGNOSTICS: -UNUSED_PARAMETER
object ModAndRem {
operator fun mod(x: Int) = 0
operator fun rem(x: Int) = ""
}
object ModAssignAndRemAssign {
operator fun modAssign(x: String) {}
operator fun remAssign(x: Int) {}
}
object RemAndModAssign {
operator fun modAssign(x: Int) {}
operator fun rem(x: Int) = RemAndModAssign
}
object OnlyRem {
operator fun rem(x: Int) {}
operator fun remAssign(x: Int) {}
}
fun test() {
takeInt(<!ARGUMENT_TYPE_MISMATCH!>ModAndRem % 1<!>)
val c = ModAssignAndRemAssign
c %= <!ARGUMENT_TYPE_MISMATCH!>""<!>
var c1 = RemAndModAssign
c1 %= 1
OnlyRem % 1
val c2 = OnlyRem
c2 %= 1
}
fun takeInt(x: Int) {}
@@ -1,39 +0,0 @@
// !LANGUAGE: -OperatorRem
// !DIAGNOSTICS: -UNUSED_PARAMETER
object ModAndRem {
operator fun mod(x: Int) = 0
<!UNSUPPORTED_FEATURE!>operator<!> fun rem(x: Int) = ""
}
object ModAssignAndRemAssign {
operator fun modAssign(x: String) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun remAssign(x: Int) {}
}
object RemAndModAssign {
operator fun modAssign(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun rem(x: Int) = RemAndModAssign
}
object OnlyRem {
<!UNSUPPORTED_FEATURE!>operator<!> fun rem(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun remAssign(x: Int) {}
}
fun test() {
takeInt(ModAndRem % 1)
val c = ModAssignAndRemAssign
c %= ""
var c1 = RemAndModAssign
c1 %= 1
OnlyRem <!UNRESOLVED_REFERENCE!>%<!> 1
val c2 = OnlyRem
c2 <!UNRESOLVED_REFERENCE!>%=<!> 1
}
fun takeInt(x: Int) {}
@@ -1,40 +0,0 @@
package
public fun takeInt(/*0*/ x: kotlin.Int): kotlin.Unit
public fun test(): kotlin.Unit
public object ModAndRem {
private constructor ModAndRem()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Int
public final operator fun rem(/*0*/ x: kotlin.Int): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object ModAssignAndRemAssign {
private constructor ModAssignAndRemAssign()
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 final operator fun modAssign(/*0*/ x: kotlin.String): kotlin.Unit
public final operator fun remAssign(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object OnlyRem {
private constructor OnlyRem()
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 final operator fun rem(/*0*/ x: kotlin.Int): kotlin.Unit
public final operator fun remAssign(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object RemAndModAssign {
private constructor RemAndModAssign()
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 final operator fun modAssign(/*0*/ x: kotlin.Int): kotlin.Unit
public final operator fun rem(/*0*/ x: kotlin.Int): RemAndModAssign
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,70 +0,0 @@
// !LANGUAGE: -ShortSyntaxForPropertyGetters
// NI_EXPECTED_FILE
// blockBodyGetter.kt
val x get() {
return 1
}
// cantBeInferred.kt
val x1 get() = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>()
val y1 get() = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!>()
fun <E> foo(): E = null!!
fun <E> bar(): List<E> = null!!
// explicitGetterType.kt
val x2 get(): String = foo()
val y2 get(): List<Int> = bar()
val z2 get(): List<Int> {
return bar()
}
val u get(): String = <!UNRESOLVED_REFERENCE!>field<!>
// members.kt
class A {
val x get() = 1
val y get() = id(1)
val y2 get() = id(id(2))
val z get() = l("")
val z2 get() = l(id(l("")))
val <T> T.u get() = id(this)
}
fun <E> id(x: E) = x
fun <E> l(x: E): List<E> = null!!
// vars
var x3
get() = 1
set(q) {
}
// recursive
val x4 get() = x4
// null as nothing
val x5 get() = null
val y5 get() = null!!
// objectExpression.kt
object Outer {
private var x
get() = object : CharSequence {
override val length: Int
get() = 0
override fun get(index: Int): Char {
return ' '
}
override fun subSequence(startIndex: Int, endIndex: Int) = ""
fun bar() {
}
}
set(q) {
x = q
}
}
@@ -1,70 +0,0 @@
// !LANGUAGE: -ShortSyntaxForPropertyGetters
// NI_EXPECTED_FILE
// blockBodyGetter.kt
<!UNSUPPORTED_FEATURE!>val x get() {
return 1
}<!>
// cantBeInferred.kt
<!UNSUPPORTED_FEATURE!>val x1 get() = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>()<!>
<!UNSUPPORTED_FEATURE!>val y1 get() = <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!>()<!>
fun <E> foo(): E = null!!
fun <E> bar(): List<E> = null!!
// explicitGetterType.kt
<!UNSUPPORTED_FEATURE!>val x2 get(): String = foo()<!>
<!UNSUPPORTED_FEATURE!>val y2 get(): List<Int> = bar()<!>
<!UNSUPPORTED_FEATURE!>val z2 get(): List<Int> {
return bar()
}<!>
<!MUST_BE_INITIALIZED!>val u<!> get(): String = field
// members.kt
class A {
<!UNSUPPORTED_FEATURE!>val x get() = 1<!>
<!UNSUPPORTED_FEATURE!>val y get() = id(1)<!>
<!UNSUPPORTED_FEATURE!>val y2 get() = id(id(2))<!>
<!UNSUPPORTED_FEATURE!>val z get() = l("")<!>
<!UNSUPPORTED_FEATURE!>val z2 get() = l(id(l("")))<!>
<!UNSUPPORTED_FEATURE!>val <T> T.u get() = id(this)<!>
}
fun <E> id(x: E) = x
fun <E> l(x: E): List<E> = null!!
// vars
<!UNSUPPORTED_FEATURE!>var x3
get() = 1
set(q) {
}<!>
// recursive
<!UNSUPPORTED_FEATURE!>val x4 get() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x4<!><!>
// null as nothing
<!UNSUPPORTED_FEATURE!>val x5 get() = null<!>
<!UNSUPPORTED_FEATURE!>val <!IMPLICIT_NOTHING_PROPERTY_TYPE!>y5<!> get() = null!!<!>
// objectExpression.kt
object Outer {
<!UNSUPPORTED_FEATURE!>private var x
get() = object : CharSequence {
override val length: Int
get() = 0
override fun get(index: Int): Char {
return ' '
}
override fun subSequence(startIndex: Int, endIndex: Int) = ""
fun bar() {
}
}
set(q) {
x = q
}<!>
}
@@ -1,28 +0,0 @@
// !LANGUAGE: -DslMarkersSupport
// !DIAGNOSTICS: -UNUSED_PARAMETER
@DslMarker
annotation class Ann
@Ann
class A {
fun a() = 1
}
@Ann
class B {
fun b() = 2
}
fun foo(x: A.() -> Unit) {}
fun bar(x: B.() -> Unit) {}
fun test() {
foo {
a()
bar {
<!DSL_SCOPE_VIOLATION!>a<!>()
this@foo.a()
b()
}
}
}
@@ -1,28 +0,0 @@
// !LANGUAGE: -DslMarkersSupport
// !DIAGNOSTICS: -UNUSED_PARAMETER
@DslMarker
annotation class Ann
@Ann
class A {
fun a() = 1
}
@Ann
class B {
fun b() = 2
}
fun foo(x: A.() -> Unit) {}
fun bar(x: B.() -> Unit) {}
fun test() {
foo {
a()
bar {
a()
this@foo.a()
b()
}
}
}
@@ -1,28 +0,0 @@
package
public fun bar(/*0*/ x: B.() -> kotlin.Unit): kotlin.Unit
public fun foo(/*0*/ x: A.() -> kotlin.Unit): kotlin.Unit
public fun test(): kotlin.Unit
@Ann public final class A {
public constructor A()
public final fun a(): 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
}
@kotlin.DslMarker public final annotation class Ann : kotlin.Annotation {
public constructor Ann()
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
}
@Ann public final class B {
public constructor B()
public final fun b(): 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
}
@@ -1,36 +0,0 @@
// !LANGUAGE: -SafeCastCheckBoundSmartCasts
interface SomeClass {
val data: Any?
}
interface SomeSubClass : SomeClass {
val foo: Any?
}
fun g(a: SomeClass?) {
if (a as? SomeSubClass != null) {
// 'a' can be cast to SomeSubClass
a.hashCode()
a.foo
(a as? SomeSubClass)<!UNSAFE_CALL!>.<!>foo
(a <!USELESS_CAST!>as SomeSubClass<!>).foo
}
val b = (a as? SomeSubClass)?.foo
if (b != null) {
// 'a' can be cast to SomeSubClass
a.hashCode()
a.foo
(a as? SomeSubClass)<!UNSAFE_CALL!>.<!>foo
(a <!USELESS_CAST!>as SomeSubClass<!>).foo
}
val c = a as? SomeSubClass
if (c != null) {
// 'a' and 'c' can be cast to SomeSubClass
a.hashCode()
a.foo
(a as? SomeSubClass)<!UNSAFE_CALL!>.<!>foo
c.hashCode()
c.foo
}
}
@@ -1,36 +0,0 @@
// !LANGUAGE: -SafeCastCheckBoundSmartCasts
interface SomeClass {
val data: Any?
}
interface SomeSubClass : SomeClass {
val foo: Any?
}
fun g(a: SomeClass?) {
if (a as? SomeSubClass != null) {
// 'a' can be cast to SomeSubClass
a<!UNSAFE_CALL!>.<!>hashCode()
a.<!UNRESOLVED_REFERENCE!>foo<!>
(a as? SomeSubClass)<!UNSAFE_CALL!>.<!>foo
(a as SomeSubClass).foo
}
val b = (a as? SomeSubClass)?.foo
if (b != null) {
// 'a' can be cast to SomeSubClass
a<!UNSAFE_CALL!>.<!>hashCode()
a.<!UNRESOLVED_REFERENCE!>foo<!>
(a as? SomeSubClass)<!UNSAFE_CALL!>.<!>foo
(a as SomeSubClass).foo
}
val c = a as? SomeSubClass
if (c != null) {
// 'a' and 'c' can be cast to SomeSubClass
a<!UNSAFE_CALL!>.<!>hashCode()
a.<!UNRESOLVED_REFERENCE!>foo<!>
(a as? SomeSubClass)<!UNSAFE_CALL!>.<!>foo
<!DEBUG_INFO_SMARTCAST!>c<!>.hashCode()
<!DEBUG_INFO_SMARTCAST!>c<!>.foo
}
}
@@ -1,18 +0,0 @@
package
public fun g(/*0*/ a: SomeClass?): kotlin.Unit
public interface SomeClass {
public abstract val data: kotlin.Any?
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 interface SomeSubClass : SomeClass {
public abstract override /*1*/ /*fake_override*/ val data: kotlin.Any?
public abstract val foo: kotlin.Any?
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
}
@@ -1,52 +0,0 @@
// !LANGUAGE: -SafeCallBoundSmartCasts
fun foo(arg: Int?) {
val x = arg
if (x != null) {
arg.hashCode()
}
val y: Any? = arg
if (y != null) {
arg<!UNSAFE_CALL!>.<!>hashCode()
}
val yy: Any?
yy = arg
if (yy != null) {
arg.hashCode()
}
var z = arg
z = z?.let { 42 }
if (z != null) {
arg.hashCode()
}
}
fun kt6840_1(s: String?) {
val hash = s?.hashCode()
if (hash != null) {
s.length
}
}
fun kt6840_2(s: String?) {
if (s?.hashCode() != null) {
s.length
}
}
fun kt1635(s: String?) {
s?.hashCode()!!
s.hashCode()
}
fun kt2127() {
val s: String? = ""
if (s?.length != null) {
s.hashCode()
}
}
fun kt3356(s: String?): Int {
if (s?.length != 1) return 0
return s.length
}
@@ -1,52 +0,0 @@
// !LANGUAGE: -SafeCallBoundSmartCasts
fun foo(arg: Int?) {
val x = arg
if (x != null) {
arg<!UNSAFE_CALL!>.<!>hashCode()
}
val y: Any? = arg
if (y != null) {
arg<!UNSAFE_CALL!>.<!>hashCode()
}
val yy: Any?
yy = arg
if (yy != null) {
arg<!UNSAFE_CALL!>.<!>hashCode()
}
var z = arg
z = z?.let { 42 }
if (z != null) {
arg<!UNSAFE_CALL!>.<!>hashCode()
}
}
fun kt6840_1(s: String?) {
val hash = s?.hashCode()
if (hash != null) {
s<!UNSAFE_CALL!>.<!>length
}
}
fun kt6840_2(s: String?) {
if (s?.hashCode() != null) {
s<!UNSAFE_CALL!>.<!>length
}
}
fun kt1635(s: String?) {
s?.hashCode()!!
s<!UNSAFE_CALL!>.<!>hashCode()
}
fun kt2127() {
val s: String? = ""
if (s?.length != null) {
s<!UNSAFE_CALL!>.<!>hashCode()
}
}
fun kt3356(s: String?): Int {
if (s?.length != 1) return 0
return s<!UNSAFE_CALL!>.<!>length
}
@@ -1,8 +0,0 @@
package
public fun foo(/*0*/ arg: kotlin.Int?): kotlin.Unit
public fun kt1635(/*0*/ s: kotlin.String?): kotlin.Unit
public fun kt2127(): kotlin.Unit
public fun kt3356(/*0*/ s: kotlin.String?): kotlin.Int
public fun kt6840_1(/*0*/ s: kotlin.String?): kotlin.Unit
public fun kt6840_2(/*0*/ s: kotlin.String?): kotlin.Unit
@@ -1,153 +0,0 @@
// !LANGUAGE: -SafeCastCheckBoundSmartCasts -BooleanElvisBoundSmartCasts
// A set of examples for
// "If the result of a safe call is not null, understand that its receiver is not null"
// and some other improvements for nullability detection
fun kt6840_1(s: String?) {
val hash = s?.hashCode()
if (hash != null) {
s.length
}
}
fun kt6840_2(s: String?) {
if (s?.hashCode() != null) {
s.length
}
}
fun kt1635(s: String?) {
s?.hashCode()!!
s.hashCode()
}
fun kt2127() {
val s: String? = ""
if (s?.length != null) {
s.hashCode()
}
}
fun kt3356(s: String?): Int {
if (s?.length != 1) return 0
return s.length
}
open class SomeClass(val data: Any)
class SubClass(val extra: Any, data: Any) : SomeClass(data)
fun kt4565_1(a: SomeClass?) {
val data = a?.data
if (data != null) {
data.hashCode()
a.hashCode()
a.data.hashCode()
}
if (a?.data != null) {
// To be supported (?!)
data.hashCode()
a.hashCode()
a.data.hashCode()
}
if (a?.data is String) {
a.data.length
data.length
}
}
fun kt4565_2(a: SomeClass?) {
// To be supported
if (a as? SubClass != null) {
a.extra.hashCode()
}
val extra = (a as? SubClass)?.extra
if (extra != null) {
a.extra.hashCode()
}
}
inline fun <reified T : SomeClass> kt45345(a: SomeClass?) {
if (a?.data is T) {
a.data
}
}
inline fun <reified T : U, U : SomeClass> kt45345_2(a: SomeClass?) {
if (a?.data is T) {
a.data
}
}
inline fun <reified T : U, U : SomeClass?> kt45345_3(a: SomeClass?) {
if (a?.data is T) {
a<!UNSAFE_CALL!>.<!>data
}
}
class A(val y: Int)
fun kt7491_1() {
val x: A? = A(42)
val z = x?.y ?: return
x.y
}
fun getA(): A? = null
fun useA(a: A): Int = a.hashCode()
fun kt7491_2() {
val a = getA()
(a?.let { useA(a) } ?: a<!UNSAFE_CALL!>.<!>y ).toString()
}
fun String.correct() = true
fun kt8492(s: String?) {
if (s?.correct() ?: false) {
// To be supported
s<!UNSAFE_CALL!>.<!>length
}
}
fun kt11085(prop: String?) {
when (prop?.hashCode()) {
1 -> prop.length
}
}
class HttpExchange(val code: String)
fun kt11313(arg: HttpExchange?) {
when (arg?.code) {
"GET" -> handleGet(arg)
"POST" -> handlePost(arg)
}
}
fun handleGet(arg: HttpExchange) = arg
fun handlePost(arg: HttpExchange) = arg
class Wrapper {
fun unwrap(): String? = "Something not consistent"
}
fun falsePositive(w: Wrapper) {
if (w.unwrap() != null) {
// Here we should NOT have smart cast
w.unwrap()<!UNSAFE_CALL!>.<!>length
}
}
class Invokable(val x: String) {
operator fun invoke() = x
}
class InvokableProperty(val i: Invokable)
fun checkInvokable(ip: InvokableProperty?) {
if (ip?.i() == "Hello") {
ip.hashCode()
}
}
@@ -1,153 +0,0 @@
// !LANGUAGE: -SafeCastCheckBoundSmartCasts -BooleanElvisBoundSmartCasts
// A set of examples for
// "If the result of a safe call is not null, understand that its receiver is not null"
// and some other improvements for nullability detection
fun kt6840_1(s: String?) {
val hash = s?.hashCode()
if (hash != null) {
<!DEBUG_INFO_SMARTCAST!>s<!>.length
}
}
fun kt6840_2(s: String?) {
if (s?.hashCode() != null) {
<!DEBUG_INFO_SMARTCAST!>s<!>.length
}
}
fun kt1635(s: String?) {
s?.hashCode()!!
<!DEBUG_INFO_SMARTCAST!>s<!>.hashCode()
}
fun kt2127() {
val s: String? = ""
if (s?.length != null) {
<!DEBUG_INFO_SMARTCAST!>s<!>.hashCode()
}
}
fun kt3356(s: String?): Int {
if (s?.length != 1) return 0
return <!DEBUG_INFO_SMARTCAST!>s<!>.length
}
open class SomeClass(val data: Any)
class SubClass(val extra: Any, data: Any) : SomeClass(data)
fun kt4565_1(a: SomeClass?) {
val data = a?.data
if (data != null) {
<!DEBUG_INFO_SMARTCAST!>data<!>.hashCode()
<!DEBUG_INFO_SMARTCAST!>a<!>.hashCode()
<!DEBUG_INFO_SMARTCAST!>a<!>.data.hashCode()
}
if (a?.data != null) {
// To be supported (?!)
data<!UNSAFE_CALL!>.<!>hashCode()
<!DEBUG_INFO_SMARTCAST!>a<!>.hashCode()
<!DEBUG_INFO_SMARTCAST!>a<!>.data.hashCode()
}
if (a?.data is String) {
<!DEBUG_INFO_SMARTCAST!>a<!>.data.<!UNRESOLVED_REFERENCE!>length<!>
data.<!UNRESOLVED_REFERENCE!>length<!>
}
}
fun kt4565_2(a: SomeClass?) {
// To be supported
if (a as? SubClass != null) {
a.<!UNRESOLVED_REFERENCE!>extra<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>hashCode<!>()
}
val extra = (a as? SubClass)?.extra
if (extra != null) {
a.<!UNRESOLVED_REFERENCE!>extra<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>hashCode<!>()
}
}
inline fun <reified T : SomeClass> kt45345(a: SomeClass?) {
if (a?.data is T) {
<!DEBUG_INFO_SMARTCAST!>a<!>.data
}
}
inline fun <reified T : U, U : SomeClass> kt45345_2(a: SomeClass?) {
if (a?.data is T) {
<!DEBUG_INFO_SMARTCAST!>a<!>.data
}
}
inline fun <reified T : U, U : SomeClass?> kt45345_3(a: SomeClass?) {
if (a?.data is T) {
a<!UNSAFE_CALL!>.<!>data
}
}
class A(val y: Int)
fun kt7491_1() {
val x: A? = A(42)
val z = x?.y ?: return
<!DEBUG_INFO_SMARTCAST!>x<!>.y
}
fun getA(): A? = null
fun useA(a: A): Int = a.hashCode()
fun kt7491_2() {
val a = getA()
(a?.let { useA(<!DEBUG_INFO_SMARTCAST!>a<!>) } ?: a<!UNSAFE_CALL!>.<!>y ).toString()
}
fun String.correct() = true
fun kt8492(s: String?) {
if (s?.correct() ?: false) {
// To be supported
s<!UNSAFE_CALL!>.<!>length
}
}
fun kt11085(prop: String?) {
when (prop?.hashCode()) {
1 -> <!DEBUG_INFO_SMARTCAST!>prop<!>.length
}
}
class HttpExchange(val code: String)
fun kt11313(arg: HttpExchange?) {
when (arg?.code) {
"GET" -> handleGet(<!DEBUG_INFO_SMARTCAST!>arg<!>)
"POST" -> handlePost(<!DEBUG_INFO_SMARTCAST!>arg<!>)
}
}
fun handleGet(arg: HttpExchange) = arg
fun handlePost(arg: HttpExchange) = arg
class Wrapper {
fun unwrap(): String? = "Something not consistent"
}
fun falsePositive(w: Wrapper) {
if (w.unwrap() != null) {
// Here we should NOT have smart cast
<!SMARTCAST_IMPOSSIBLE!>w.unwrap()<!>.length
}
}
class Invokable(val x: String) {
operator fun invoke() = x
}
class InvokableProperty(val i: Invokable)
fun checkInvokable(ip: InvokableProperty?) {
if (ip?.<!UNSAFE_IMPLICIT_INVOKE_CALL!>i<!>() == "Hello") {
<!DEBUG_INFO_SMARTCAST!>ip<!>.hashCode()
}
}
@@ -1,82 +0,0 @@
package
public fun checkInvokable(/*0*/ ip: InvokableProperty?): kotlin.Unit
public fun falsePositive(/*0*/ w: Wrapper): kotlin.Unit
public fun getA(): A?
public fun handleGet(/*0*/ arg: HttpExchange): HttpExchange
public fun handlePost(/*0*/ arg: HttpExchange): HttpExchange
public fun kt11085(/*0*/ prop: kotlin.String?): kotlin.Unit
public fun kt11313(/*0*/ arg: HttpExchange?): kotlin.Unit
public fun kt1635(/*0*/ s: kotlin.String?): kotlin.Unit
public fun kt2127(): kotlin.Unit
public fun kt3356(/*0*/ s: kotlin.String?): kotlin.Int
public inline fun </*0*/ reified T : SomeClass> kt45345(/*0*/ a: SomeClass?): kotlin.Unit
public inline fun </*0*/ reified T : U, /*1*/ U : SomeClass> kt45345_2(/*0*/ a: SomeClass?): kotlin.Unit
public inline fun </*0*/ reified T : U, /*1*/ U : SomeClass?> kt45345_3(/*0*/ a: SomeClass?): kotlin.Unit
public fun kt4565_1(/*0*/ a: SomeClass?): kotlin.Unit
public fun kt4565_2(/*0*/ a: SomeClass?): kotlin.Unit
public fun kt6840_1(/*0*/ s: kotlin.String?): kotlin.Unit
public fun kt6840_2(/*0*/ s: kotlin.String?): kotlin.Unit
public fun kt7491_1(): kotlin.Unit
public fun kt7491_2(): kotlin.Unit
public fun kt8492(/*0*/ s: kotlin.String?): kotlin.Unit
public fun useA(/*0*/ a: A): kotlin.Int
public fun kotlin.String.correct(): kotlin.Boolean
public final class A {
public constructor A(/*0*/ y: kotlin.Int)
public final val y: 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 HttpExchange {
public constructor HttpExchange(/*0*/ code: kotlin.String)
public final val code: kotlin.String
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 Invokable {
public constructor Invokable(/*0*/ x: kotlin.String)
public final val x: kotlin.String
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 final operator fun invoke(): kotlin.String
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class InvokableProperty {
public constructor InvokableProperty(/*0*/ i: Invokable)
public final val i: Invokable
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 SomeClass {
public constructor SomeClass(/*0*/ data: kotlin.Any)
public final val data: kotlin.Any
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 SubClass : SomeClass {
public constructor SubClass(/*0*/ extra: kotlin.Any, /*1*/ data: kotlin.Any)
public final override /*1*/ /*fake_override*/ val data: kotlin.Any
public final val extra: kotlin.Any
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 Wrapper {
public constructor Wrapper()
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 fun unwrap(): kotlin.String?
}
@@ -1,15 +0,0 @@
// !LANGUAGE: -CapturedInClosureSmartCasts
fun run(f: () -> Unit) = f()
fun foo(s: String?) {
var x: String? = null
if (s != null) {
x = s
}
if (x != null) {
run {
x.hashCode()
}
}
}
@@ -1,15 +0,0 @@
// !LANGUAGE: -CapturedInClosureSmartCasts
fun run(f: () -> Unit) = f()
fun foo(s: String?) {
var x: String? = null
if (s != null) {
x = s
}
if (x != null) {
run {
<!SMARTCAST_IMPOSSIBLE!>x<!>.hashCode()
}
}
}
@@ -1,4 +0,0 @@
package
public fun foo(/*0*/ s: kotlin.String?): kotlin.Unit
public fun run(/*0*/ f: () -> kotlin.Unit): kotlin.Unit
@@ -1,10 +0,0 @@
// !LANGUAGE: -SoundSmartCastsAfterTry
fun foo() {
var s: String?
s = "Test"
try {
s = null
} catch (ex: Exception) {}
s<!UNSAFE_CALL!>.<!>hashCode()
}
@@ -1,10 +0,0 @@
// !LANGUAGE: -SoundSmartCastsAfterTry
fun foo() {
var s: String?
s = "Test"
try {
s = null
} catch (ex: Exception) {}
<!DEBUG_INFO_SMARTCAST!>s<!>.hashCode()
}
@@ -1,3 +0,0 @@
package
public fun foo(): kotlin.Unit
@@ -1,17 +0,0 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -NOTHING_TO_INLINE
// !LANGUAGE: -InlineProperties
inline fun String.test() {
}
inline fun test() {
}
class A {
inline fun String.test() {
}
inline fun test() {
}
}
@@ -1,13 +0,0 @@
package
public inline fun test(): kotlin.Unit
public inline fun kotlin.String.test(): kotlin.Unit
public final class A {
public constructor A()
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 final inline fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final inline fun kotlin.String.test(): kotlin.Unit
}
@@ -1,25 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
class C { companion object }
val ok1 = C::hashCode
val fail1 = C.Companion::hashCode
object O {
class Y {
companion object
}
}
val fail2 = O::hashCode
val ok2 = O::Y
val ok3 = O.Y::hashCode
enum class E {
Entry
}
val ok4 = E.Entry::hashCode
fun hashCode() {}
val fail3 = ""::hashCode
val fail4 = (C)::hashCode
val fail5 = (C.Companion)::hashCode
@@ -1,25 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
class C { companion object }
val ok1 = C::hashCode
val fail1 = <!UNSUPPORTED_FEATURE!>C.Companion<!>::hashCode
object O {
class Y {
companion object
}
}
val fail2 = <!UNSUPPORTED_FEATURE!>O<!>::hashCode
val ok2 = O::Y
val ok3 = O.Y::hashCode
enum class E {
Entry
}
val ok4 = E.Entry::hashCode
fun hashCode() {}
val fail3 = <!UNSUPPORTED_FEATURE!>""<!>::hashCode
val fail4 = <!PARENTHESIZED_COMPANION_LHS_DEPRECATION, UNSUPPORTED_FEATURE!>(C)<!>::hashCode
val fail5 = <!UNSUPPORTED_FEATURE!>(C.Companion)<!>::hashCode
@@ -1,66 +0,0 @@
package
public val fail1: kotlin.reflect.KFunction0<kotlin.Int>
public val fail2: kotlin.reflect.KFunction0<kotlin.Int>
public val fail3: kotlin.reflect.KFunction0<kotlin.Int>
public val fail4: kotlin.reflect.KFunction0<kotlin.Int>
public val fail5: kotlin.reflect.KFunction0<kotlin.Int>
public val ok1: kotlin.reflect.KFunction1<C, kotlin.Int>
public val ok2: kotlin.reflect.KFunction0<O.Y>
public val ok3: kotlin.reflect.KFunction1<O.Y, kotlin.Int>
public val ok4: kotlin.reflect.KFunction1<E.Entry, kotlin.Int>
public fun hashCode(): kotlin.Unit
public final class C {
public constructor C()
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 companion object Companion {
private constructor Companion()
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 enum class E : kotlin.Enum<E> {
enum entry Entry
private constructor E()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<E!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
public final /*synthesized*/ fun values(): kotlin.Array<E>
}
public object O {
private constructor O()
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 Y {
public constructor Y()
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 companion object Companion {
private constructor Companion()
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
}
}
}
@@ -1,18 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
class C { companion object }
val ok1 = C::class
val ok2 = C.Companion::class
object O
val ok3 = O::class
enum class E {
Entry
}
val ok4 = E.Entry::class
val fail1 = ""::class
val fail2 = <!NULLABLE_TYPE_IN_CLASS_LITERAL_LHS!>String?::class<!>
val fail3 = (C)::class
val fail4 = (C.Companion)::class
@@ -1,18 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
class C { companion object }
val ok1 = C::class
val ok2 = C.Companion::class
object O
val ok3 = O::class
enum class E {
Entry
}
val ok4 = E.Entry::class
val fail1 = <!UNSUPPORTED_FEATURE!>""<!>::class
val fail2 = <!NULLABLE_TYPE_IN_CLASS_LITERAL_LHS!>String?::class<!>
val fail3 = <!UNSUPPORTED_FEATURE!>(C)<!>::class
val fail4 = <!UNSUPPORTED_FEATURE!>(C.Companion)<!>::class
@@ -1,50 +0,0 @@
package
public val fail1: kotlin.reflect.KClass<out kotlin.String>
public val fail2: kotlin.reflect.KClass<kotlin.String?>
public val fail3: kotlin.reflect.KClass<out C.Companion>
public val fail4: kotlin.reflect.KClass<out C.Companion>
public val ok1: kotlin.reflect.KClass<C>
public val ok2: kotlin.reflect.KClass<C.Companion>
public val ok3: kotlin.reflect.KClass<O>
public val ok4: kotlin.reflect.KClass<E.Entry>
public final class C {
public constructor C()
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 companion object Companion {
private constructor Companion()
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 enum class E : kotlin.Enum<E> {
enum entry Entry
private constructor E()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: E): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<E!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): E
public final /*synthesized*/ fun values(): kotlin.Array<E>
}
public object O {
private constructor O()
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
}
@@ -1,11 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
// !DIAGNOSTICS: -UNCHECKED_CAST
import kotlin.reflect.KClass
val <T : Any> KClass<T>.java: Class<T> get() = null!!
val <T : Any> KClass<T>.javaObjectType: Class<T>
get() {
return java.<!UNRESOLVED_REFERENCE!>lang<!>.Class::class.<!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>java<!> as Class<T>
}
@@ -1,11 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
// !DIAGNOSTICS: -UNCHECKED_CAST
import kotlin.reflect.KClass
val <T : Any> KClass<T>.java: Class<T> get() = null!!
val <T : Any> KClass<T>.javaObjectType: Class<T>
get() {
return java.<!UNRESOLVED_REFERENCE!>lang<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>Class<!>::class.<!DEBUG_INFO_MISSING_UNRESOLVED!>java<!> <!USELESS_CAST!>as Class<T><!>
}
@@ -1,4 +0,0 @@
package
public val </*0*/ T : kotlin.Any> kotlin.reflect.KClass<T>.java: java.lang.Class<T>
public val </*0*/ T : kotlin.Any> kotlin.reflect.KClass<T>.javaObjectType: java.lang.Class<T>
@@ -1,10 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
import kotlin.reflect.KClass
val <T : Any> KClass<T>.java: Class<T> get() = null!!
val <T : Any> KClass<T>.foo: Any?
get() {
return java.<!UNRESOLVED_REFERENCE!>lang<!>.Integer::hashCode
}
@@ -1,10 +0,0 @@
// !LANGUAGE: -BoundCallableReferences
import kotlin.reflect.KClass
val <T : Any> KClass<T>.java: Class<T> get() = null!!
val <T : Any> KClass<T>.foo: Any?
get() {
return <!UNSUPPORTED_FEATURE!>java.<!UNRESOLVED_REFERENCE!>lang<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>Integer<!><!>::<!OVERLOAD_RESOLUTION_AMBIGUITY!>hashCode<!>
}
@@ -1,4 +0,0 @@
package
public val </*0*/ T : kotlin.Any> kotlin.reflect.KClass<T>.foo: kotlin.Any?
public val </*0*/ T : kotlin.Any> kotlin.reflect.KClass<T>.java: java.lang.Class<T>
@@ -1,28 +0,0 @@
// !LANGUAGE: -CallableReferencesToClassMembersWithEmptyLHS
class A {
fun memberFunction() {}
val memberProperty: Int get() = 42
fun test() {
(::memberFunction)()
(::extensionFunction)()
(::memberProperty)()
(::extensionProperty)()
}
inner class B {
fun memberFunction() { }
val memberProperty: Int get() = 43
fun test() {
(::memberFunction)()
(::extensionFunction)()
(::memberProperty)()
(::extensionProperty)()
}
}
}
fun A.extensionFunction() {}
val A.extensionProperty: Int get() = 44
@@ -1,28 +0,0 @@
// !LANGUAGE: -CallableReferencesToClassMembersWithEmptyLHS
class A {
fun memberFunction() {}
val memberProperty: Int get() = 42
fun test() {
(::<!UNSUPPORTED_FEATURE!>memberFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>memberProperty<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionProperty<!>)()
}
inner class B {
fun memberFunction() { }
val memberProperty: Int get() = 43
fun test() {
(::<!UNSUPPORTED_FEATURE!>memberFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionFunction<!>)()
(::<!UNSUPPORTED_FEATURE!>memberProperty<!>)()
(::<!UNSUPPORTED_FEATURE!>extensionProperty<!>)()
}
}
}
fun A.extensionFunction() {}
val A.extensionProperty: Int get() = 44
@@ -1,24 +0,0 @@
package
public val A.extensionProperty: kotlin.Int
public fun A.extensionFunction(): kotlin.Unit
public final class A {
public constructor A()
public final val memberProperty: 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 final fun memberFunction(): kotlin.Unit
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final inner class B {
public constructor B()
public final val memberProperty: 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 final fun memberFunction(): kotlin.Unit
public final fun test(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -1,23 +0,0 @@
// !LANGUAGE: -DataClassInheritance
interface Allowed
open class NotAllowed
<!INCOMPATIBLE_MODIFIERS!>abstract<!> <!INCOMPATIBLE_MODIFIERS!>data<!> class Base(val x: Int)
class Derived: Base(42)
<!DATA_CLASS_OVERRIDE_CONFLICT!>data<!> class Nasty(val z: Int, val y: Int): Base(z)
data class Complex(val y: Int): Allowed, NotAllowed()
interface AbstractEqualsHashCodeToString {
override fun equals(other: Any?): Boolean
override fun hashCode(): Int
override fun toString(): String
}
data class ImplInterface(val s: String) : AbstractEqualsHashCodeToString
@@ -1,23 +0,0 @@
// !LANGUAGE: -DataClassInheritance
interface Allowed
open class NotAllowed
<!INCOMPATIBLE_MODIFIERS!>abstract<!> <!INCOMPATIBLE_MODIFIERS!>data<!> class Base(val x: Int)
class Derived: Base(42)
<!DATA_CLASS_OVERRIDE_CONFLICT!>data<!> class Nasty(val z: Int, val y: Int): <!DATA_CLASS_CANNOT_HAVE_CLASS_SUPERTYPES!>Base<!>(z)
data class Complex(val y: Int): Allowed, <!DATA_CLASS_CANNOT_HAVE_CLASS_SUPERTYPES!>NotAllowed<!>()
interface AbstractEqualsHashCodeToString {
override fun equals(other: Any?): Boolean
override fun hashCode(): Int
override fun toString(): String
}
data <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class ImplInterface<!>(val s: String) : AbstractEqualsHashCodeToString
@@ -1,74 +0,0 @@
package
public interface AbstractEqualsHashCodeToString {
public abstract override /*1*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract override /*1*/ fun hashCode(): kotlin.Int
public abstract override /*1*/ fun toString(): kotlin.String
}
public interface Allowed {
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 abstract data class Base {
public constructor Base(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public final operator /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ...): Base
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 data class Complex : Allowed, NotAllowed {
public constructor Complex(/*0*/ y: kotlin.Int)
public final val y: kotlin.Int
public final operator /*synthesized*/ fun component1(): kotlin.Int
public final /*synthesized*/ fun copy(/*0*/ y: kotlin.Int = ...): Complex
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Derived : Base {
public constructor Derived()
public final override /*1*/ /*fake_override*/ val x: kotlin.Int
public final override /*1*/ /*fake_override*/ fun component1(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun copy(/*0*/ x: kotlin.Int = ...): Base
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 data class ImplInterface : AbstractEqualsHashCodeToString {
public constructor ImplInterface(/*0*/ s: kotlin.String)
public final val s: kotlin.String
public final operator /*synthesized*/ fun component1(): kotlin.String
public final /*synthesized*/ fun copy(/*0*/ s: kotlin.String = ...): ImplInterface
public abstract override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final data class Nasty : Base {
public constructor Nasty(/*0*/ z: kotlin.Int, /*1*/ y: kotlin.Int)
public final override /*1*/ /*fake_override*/ val x: kotlin.Int
public final val y: kotlin.Int
public final val z: kotlin.Int
public final override /*1*/ /*synthesized*/ fun component1(): kotlin.Int
public final operator /*synthesized*/ fun component2(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun copy(/*0*/ x: kotlin.Int = ...): Base
public final /*synthesized*/ fun copy(/*0*/ z: kotlin.Int = ..., /*1*/ y: kotlin.Int = ...): Nasty
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 NotAllowed {
public constructor NotAllowed()
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
}
@@ -1,11 +0,0 @@
// !LANGUAGE: -InlineProperties
var value: Int = 0
inline var z: Int
get() = ++value
set(p: Int) { value = p }
var z2: Int
inline get() = ++value
inline set(p: Int) { value = p }
@@ -1,11 +0,0 @@
// !LANGUAGE: -InlineProperties
var value: Int = 0
<!UNSUPPORTED_FEATURE!>inline<!> var z: Int
get() = ++value
set(p: Int) { value = p }
var z2: Int
<!UNSUPPORTED_FEATURE!>inline<!> get() = ++value
<!UNSUPPORTED_FEATURE!>inline<!> set(p: Int) { value = p }
@@ -1,5 +0,0 @@
package
public var value: kotlin.Int
public var z: kotlin.Int
public var z2: kotlin.Int
@@ -1,21 +0,0 @@
// !LANGUAGE: -LocalDelegatedProperties
import kotlin.reflect.KProperty
class Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
fun foo(): Int {
val prop: Int by Delegate()
val prop2: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>123<!>
val obj = object {
fun v(): Int {
val prop3: Int by Delegate()
return prop3
}
}
return prop + prop2 + obj.v()
}
@@ -1,21 +0,0 @@
// !LANGUAGE: -LocalDelegatedProperties
import kotlin.reflect.KProperty
class Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
fun foo(): Int {
val prop: Int <!UNSUPPORTED_FEATURE!>by Delegate()<!>
val prop2: Int <!UNSUPPORTED_FEATURE!>by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>123<!><!>
val obj = object {
fun v(): Int {
val prop3: Int <!UNSUPPORTED_FEATURE!>by Delegate()<!>
return prop3
}
}
return prop + prop2 + obj.v()
}
@@ -1,11 +0,0 @@
package
public fun foo(): kotlin.Int
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
}
@@ -1,23 +0,0 @@
// !LANGUAGE: -LocalDelegatedProperties
// FILE: script.kts
import kotlin.reflect.KProperty
class Delegate {
operator fun getValue(t: Any?, p: KProperty<*>): Int = 1
}
fun foo(): Int {
val prop: Int <!UNSUPPORTED_FEATURE!>by Delegate()<!>
val prop2: Int <!UNSUPPORTED_FEATURE!>by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>123<!><!>
return prop + prop2
}
val prop: Int by Delegate()
val prop2: Int by <!DELEGATE_SPECIAL_FUNCTION_MISSING!>123<!>
prop + prop2
@@ -1,20 +0,0 @@
package
public final class Script : kotlin.script.templates.standard.ScriptTemplateWithArgs {
public constructor Script(/*0*/ args: kotlin.Array<kotlin.String>)
public final override /*1*/ /*fake_override*/ val args: kotlin.Array<kotlin.String>
public final val prop: kotlin.Int
public final val prop2: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Int
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
}
}
@@ -1,37 +0,0 @@
// !LANGUAGE: -RefinedSamAdaptersPriority -NewInference
// !CHECK_TYPE
// FILE: A.java
public class A {
public static int foo(Runnable r) { return 0; }
public static String foo(Object r) { return null;}
public static int bar(Runnable r) { return 1; }
public static String bar(CharSequence r) { return null; }
}
// FILE: 1.kt
fun fn() {}
fun x(r: Runnable) {
A.foo(::fn) checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
A.foo {} checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
A.foo(null) checkType { _<Int>() }
A.foo(Runnable { }) checkType { _<Int>() }
A.foo(r) checkType { _<Int>() }
A.foo(123) checkType { _<String>() }
A.foo("") checkType { _<String>() }
A.bar(::fn) checkType { _<Int>() }
A.bar {} checkType { _<Int>() }
A.bar(r) checkType { _<Int>() }
A.<!OVERLOAD_RESOLUTION_AMBIGUITY!>bar<!>(null)
A.bar(null as Runnable?) checkType { _<Int>() }
A.bar(null as CharSequence?) checkType { _<String>() }
A.bar("") checkType { _<String>() }
A.<!NONE_APPLICABLE!>bar<!>(123)
}

Some files were not shown because too many files have changed in this diff Show More