Add tests for obsolete issues

#KT-38804 Obsolete
 #KT-38801 Obsolete
 #KT-38835 Obsolete
 #KT-38737 Obsolete
 #KT-38664 Obsolete
 #KT-38549 Obsolete
 #KT-38766 Obsolete
 #KT-38714 Obsolete
This commit is contained in:
Mikhail Zarechenskiy
2020-08-11 10:11:47 +03:00
parent 7f4df19dd1
commit 2e131b870a
30 changed files with 503 additions and 0 deletions
@@ -0,0 +1,22 @@
// WITH_RUNTIME
// !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
abstract class MainActivity : DIAware1() {
val bar: Bar by instance1()
}
class Bar
open class DIAware1 {
inline fun <reified T : Any> DIAware1.instance1(tag: Any? = null): DIProperty<T> = TODO()
}
class DIProperty<out V> : LazyDelegate<V> {
override fun provideDelegate(receiver: Any?, prop: KProperty<Any?>): Lazy<V> = TODO()
}
interface LazyDelegate<out V> {
operator fun provideDelegate(receiver: Any?, prop: KProperty<Any?>): Lazy<V>
}
@@ -0,0 +1,22 @@
// WITH_RUNTIME
// !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.reflect.KProperty
abstract class MainActivity : DIAware1() {
val bar: Bar by <!DEBUG_INFO_LEAKING_THIS!>instance1<!>()
}
class Bar
open class DIAware1 {
inline fun <reified T : Any> DIAware1.instance1(tag: Any? = null): DIProperty<T> = TODO()
}
class DIProperty<out V> : LazyDelegate<V> {
override fun provideDelegate(receiver: Any?, prop: KProperty<Any?>): Lazy<V> = TODO()
}
interface LazyDelegate<out V> {
operator fun provideDelegate(receiver: Any?, prop: KProperty<Any?>): Lazy<V>
}
@@ -0,0 +1,40 @@
package
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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open class DIAware1 {
public constructor DIAware1()
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 inline fun </*0*/ reified T : kotlin.Any> DIAware1.instance1(/*0*/ tag: kotlin.Any? = ...): DIProperty<T>
}
public final class DIProperty</*0*/ out V> : LazyDelegate<V> {
public constructor DIProperty</*0*/ out 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 open override /*1*/ fun provideDelegate(/*0*/ receiver: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<kotlin.Any?>): kotlin.Lazy<V>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface LazyDelegate</*0*/ out 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 abstract operator fun provideDelegate(/*0*/ receiver: kotlin.Any?, /*1*/ prop: kotlin.reflect.KProperty<kotlin.Any?>): kotlin.Lazy<V>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public abstract class MainActivity : DIAware1 {
public constructor MainActivity()
public final val bar: 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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final override /*1*/ inline /*fake_override*/ fun </*0*/ reified T : kotlin.Any> DIAware1.instance1(/*0*/ tag: kotlin.Any? = ...): DIProperty<T>
}
@@ -0,0 +1,18 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun test(b: TestRepo) {
coEvery1 { b.save(any()) }
}
fun <T> coEvery1(stubBlock: suspend MockKMatcherScope.() -> T) {}
class MockKMatcherScope {
inline fun <reified T : Any> any(): T = TODO()
}
class TestRepo : CrudRepository<Int, String>
interface CrudRepository<T, K> {
fun <S : T?> save(entity: S): S = TODO()
}
@@ -0,0 +1,27 @@
package
public fun </*0*/ T> coEvery1(/*0*/ stubBlock: suspend MockKMatcherScope.() -> T): kotlin.Unit
public fun test(/*0*/ b: TestRepo): kotlin.Unit
public interface CrudRepository</*0*/ T, /*1*/ 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 fun </*0*/ S : T?> save(/*0*/ entity: S): S
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class MockKMatcherScope {
public constructor MockKMatcherScope()
public final inline fun </*0*/ reified T : kotlin.Any> any(): 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
}
public final class TestRepo : CrudRepository<kotlin.Int, kotlin.String> {
public constructor TestRepo()
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 </*0*/ S : kotlin.Int?> save(/*0*/ entity: S): S
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,14 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Inv<T>
fun <T> foo(f: () -> T): Inv<T> = TODO()
fun myExit(): Nothing = TODO()
fun test(x: String?): Inv<String> {
return foo {
if (x == null) myExit()
x
}
}
@@ -0,0 +1,14 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Inv<T>
fun <T> foo(f: () -> T): Inv<T> = TODO()
fun myExit(): Nothing = TODO()
fun test(x: String?): Inv<String> {
return foo {
if (x == null) myExit()
<!DEBUG_INFO_SMARTCAST!>x<!>
}
}
@@ -0,0 +1,12 @@
package
public fun </*0*/ T> foo(/*0*/ f: () -> T): Inv<T>
public fun myExit(): kotlin.Nothing
public fun test(/*0*/ x: kotlin.String?): Inv<kotlin.String>
public final class Inv</*0*/ T> {
public constructor Inv</*0*/ 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
}
@@ -0,0 +1,22 @@
// FIR_IDENTICAL
// !USE_EXPERIMENTAL: kotlin.RequiresOptIn
// !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.experimental.ExperimentalTypeInference
inline fun <reified T, R> emptyFlow(crossinline transform: suspend (Array<T>) -> R): Flow1<R> =
flow1 { emit(transform(emptyArray())) }
inline fun <reified T, R> emptyFlow(crossinline transform: (Array<T>) -> R): Flow1<R> =
flowOf1(transform(emptyArray()))
fun <T> flowOf1(value: T): Flow1<T> = TODO()
@OptIn(ExperimentalTypeInference::class)
fun <T> flow1(@BuilderInference block: suspend FlowCollector1<T>.() -> Unit): Flow1<T> = TODO()
interface FlowCollector1<in T> {
suspend fun emit(value: T)
}
interface Flow1<out T>
@@ -0,0 +1,19 @@
package
public inline fun </*0*/ reified T, /*1*/ R> emptyFlow(/*0*/ crossinline transform: (kotlin.Array<T>) -> R): Flow1<R>
public inline fun </*0*/ reified T, /*1*/ R> emptyFlow(/*0*/ crossinline transform: suspend (kotlin.Array<T>) -> R): Flow1<R>
@kotlin.OptIn(markerClass = {kotlin.experimental.ExperimentalTypeInference::class}) public fun </*0*/ T> flow1(/*0*/ @kotlin.BuilderInference block: suspend FlowCollector1<T>.() -> kotlin.Unit): Flow1<T>
public fun </*0*/ T> flowOf1(/*0*/ value: T): Flow1<T>
public interface Flow1</*0*/ out 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
}
public interface FlowCollector1</*0*/ in T> {
public abstract suspend fun emit(/*0*/ value: 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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,13 @@
private const val dateRangeStart: String = "2020-01-01"
private const val dateRangeEnd: String = "2020-05-01"
private fun String?.toIconList(): List<String> = when (this) {
null -> listOf("DATE_IS_NULL")
<!INAPPLICABLE_CANDIDATE!>in<!> dateRangeStart..dateRangeEnd -> emptyList()
else -> listOf("DATE_IS_OUT_OF_RANGE")
}
fun main() {
println("2019-12-31".toIconList())
println(null.toIconList())
}
@@ -0,0 +1,13 @@
private const val dateRangeStart: String = "2020-01-01"
private const val dateRangeEnd: String = "2020-05-01"
private fun String?.toIconList(): List<String> = when (this) {
null -> listOf("DATE_IS_NULL")
in dateRangeStart..dateRangeEnd -> emptyList()
else -> listOf("DATE_IS_OUT_OF_RANGE")
}
fun main() {
println("2019-12-31".toIconList())
println(null.toIconList())
}
@@ -0,0 +1,6 @@
package
private const val dateRangeEnd: kotlin.String = "2020-05-01"
private const val dateRangeStart: kotlin.String = "2020-01-01"
public fun main(): kotlin.Unit
private fun kotlin.String?.toIconList(): kotlin.collections.List<kotlin.String>
@@ -0,0 +1,17 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
open class A {
open val servers: List<C>
get() = findAndExpand({ "hi" })
.mapNotNull { B.foo(it) }
fun findAndExpand(vararg path: () -> String): List<String> = TODO()
}
object B {
inline fun <reified T : C> foo(bar: String?): T? = TODO()
}
open class C
class D : C()
@@ -0,0 +1,32 @@
package
public open class A {
public constructor A()
public open val servers: kotlin.collections.List<C>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun findAndExpand(/*0*/ vararg path: () -> kotlin.String /*kotlin.Array<out () -> kotlin.String>*/): kotlin.collections.List<kotlin.String>
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object B {
private constructor B()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final inline fun </*0*/ reified T : C> foo(/*0*/ bar: kotlin.String?): T?
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public open 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 final class D : C {
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
}