Minor. Added regression tests for: KT-3927, KT-9522, KT-10036, KT-7440, KT-9682, KT-9808, KT-9517, KT-9810, KT-9345.

This commit is contained in:
Stanislav Erokhin
2016-01-24 15:39:51 +03:00
parent 298a075381
commit 210c9ab3db
21 changed files with 311 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER
// KT-7440 Cannot complete type inference if two extension functions for interface hierarchy
package inferenceagain
interface Base<T>
interface Derived<T> : Base<T>
fun <R : Comparable<R>, T : Any> Base<T>.maxBy(f: (T) -> R): T? = null
fun <R : Comparable<R>, T : Any> Derived<T>.maxBy(f: (T) -> R): T? = null
fun <T> derivedOf(vararg members: T): Derived<T> = null!!
fun <T> x(l: Derived<T>) {
derivedOf(1, 2, 3).maxBy<Int, Int> { it } // works
derivedOf(1, 2, 3).maxBy { it } // should work
}
+20
View File
@@ -0,0 +1,20 @@
package
package inferenceagain {
public fun </*0*/ T> derivedOf(/*0*/ vararg members: T /*kotlin.Array<out T>*/): inferenceagain.Derived<T>
public fun </*0*/ T> x(/*0*/ l: inferenceagain.Derived<T>): kotlin.Unit
public fun </*0*/ R : kotlin.Comparable<R>, /*1*/ T : kotlin.Any> inferenceagain.Base<T>.maxBy(/*0*/ f: (T) -> R): T?
public fun </*0*/ R : kotlin.Comparable<R>, /*1*/ T : kotlin.Any> inferenceagain.Derived<T>.maxBy(/*0*/ f: (T) -> R): T?
public interface Base</*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
}
public interface Derived</*0*/ T> : inferenceagain.Base<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
}
}