[NI-TESTS] Add regression tests

^KT-33638 Obsolete

Add test for case mentioned in KT-33629.
Used to be runtime failure instead of error diagnostic.
This commit is contained in:
Pavel Kirpichenkov
2020-02-12 18:51:17 +03:00
parent dc42b20ae3
commit ac5c255c20
13 changed files with 130 additions and 0 deletions
@@ -0,0 +1,21 @@
// !WITH_NEW_INFERENCE
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun <E> emptyList(): List<E> = TODO()
data class IntervalTree(
val left: IntervalTree?,
val right: IntervalTree?,
val intervals: List<Interval>,
val median: Float
)
class Interval
fun buildTree(segments: List<Interval>): IntervalTree? = TODO()
fun acquireIntervals(): List<Interval> = TODO()
fun main() {
buildTree(acquireIntervals())
?: emptyList()
}
@@ -0,0 +1,21 @@
// !WITH_NEW_INFERENCE
// !DIAGNOSTICS: -UNUSED_PARAMETER
fun <E> emptyList(): List<E> = TODO()
data class IntervalTree(
val left: IntervalTree?,
val right: IntervalTree?,
val intervals: List<Interval>,
val median: Float
)
class Interval
fun buildTree(segments: List<Interval>): IntervalTree? = TODO()
fun acquireIntervals(): List<Interval> = TODO()
fun main() {
buildTree(acquireIntervals())
?: <!OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!><!NI;NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>emptyList<!>()<!>
}
@@ -0,0 +1,29 @@
package
public fun acquireIntervals(): kotlin.collections.List<Interval>
public fun buildTree(/*0*/ segments: kotlin.collections.List<Interval>): IntervalTree?
public fun </*0*/ E> emptyList(): kotlin.collections.List<E>
public fun main(): kotlin.Unit
public final class Interval {
public constructor Interval()
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 IntervalTree {
public constructor IntervalTree(/*0*/ left: IntervalTree?, /*1*/ right: IntervalTree?, /*2*/ intervals: kotlin.collections.List<Interval>, /*3*/ median: kotlin.Float)
public final val intervals: kotlin.collections.List<Interval>
public final val left: IntervalTree?
public final val median: kotlin.Float
public final val right: IntervalTree?
public final operator /*synthesized*/ fun component1(): IntervalTree?
public final operator /*synthesized*/ fun component2(): IntervalTree?
public final operator /*synthesized*/ fun component3(): kotlin.collections.List<Interval>
public final operator /*synthesized*/ fun component4(): kotlin.Float
public final /*synthesized*/ fun copy(/*0*/ left: IntervalTree? = ..., /*1*/ right: IntervalTree? = ..., /*2*/ intervals: kotlin.collections.List<Interval> = ..., /*3*/ median: kotlin.Float = ...): IntervalTree
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
}