use TypeCheckingProcedure for generating constraints
(in ConstraintSystemImpl)
This commit is contained in:
+10
@@ -0,0 +1,10 @@
|
||||
package b
|
||||
|
||||
fun <T, R> foo(<!UNUSED_PARAMETER!>map<!>: Map<T, R>) : R = throw Exception()
|
||||
|
||||
fun <F, G> getMap() : Map<F, G> = throw Exception()
|
||||
|
||||
fun bar123() {
|
||||
<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>(<!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>getMap<!>(
|
||||
<!SYNTAX!><!>}
|
||||
|
||||
@@ -28,7 +28,7 @@ fun test1(int: Int, any: Any) {
|
||||
val a7 : MyList<in Any> = getMyList(int)
|
||||
|
||||
val a8 : MyList<in Any> = <!TYPE_MISMATCH!>getMyListToReadFrom<Int>(int)<!>
|
||||
val a9 : MyList<in Any> = <!TYPE_MISMATCH!>getMyListToReadFrom(int)<!>
|
||||
val a9 : MyList<in Any> = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>getMyListToReadFrom<!>(int)
|
||||
|
||||
val a10 : MyList<out Int> = <!TYPE_MISMATCH!>getMyList<Any>(any)<!>
|
||||
val a11 : MyList<out Int> = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>getMyList<!>(any)
|
||||
@@ -58,9 +58,9 @@ fun test1(int: Int, any: Any) {
|
||||
writeToMyList(getMyListToWriteTo(any), int)
|
||||
<!TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS!>writeToMyList<!>(getMyListToWriteTo(int), any)
|
||||
|
||||
readFromMyList(<!TYPE_MISMATCH!>getMyListToWriteTo(any)<!>, any)
|
||||
readFromMyList(getMyListToWriteTo(any), any)
|
||||
|
||||
writeToMyList(<!TYPE_MISMATCH!>getMyListToReadFrom(any)<!>, any)
|
||||
<!TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS!>writeToMyList<!>(getMyListToReadFrom(any), any)
|
||||
|
||||
use(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
class Item(val name: String, val rating: Int): Comparable<Item> {
|
||||
public override fun compareTo(other: Item): Int {
|
||||
return compareBy(this, other, { rating }, { name })
|
||||
}
|
||||
}
|
||||
|
||||
// from standard library
|
||||
inline fun <T : Any> compareBy(<!UNUSED_PARAMETER!>a<!>: T?, <!UNUSED_PARAMETER!>b<!>: T?,
|
||||
vararg <!UNUSED_PARAMETER!>functions<!>: T.() -> Comparable<*>?): Int = throw Exception()
|
||||
@@ -6,7 +6,7 @@ fun bar<T>(a: T, b: Map<T, String>) = b.get(a)
|
||||
|
||||
fun test(a: Int) {
|
||||
foo(a, null)
|
||||
<!TYPE_INFERENCE_TYPE_CONSTRUCTOR_MISMATCH!>bar<!>(a, null)
|
||||
bar(a, <!ERROR_COMPILE_TIME_VALUE!>null<!>)
|
||||
}
|
||||
fun test1(a: Int) {
|
||||
<!UNREACHABLE_CODE!>foo(a, throw Exception())<!>
|
||||
|
||||
Reference in New Issue
Block a user