diagnostic tests changes after collections mapping
This commit is contained in:
@@ -3,8 +3,8 @@ package conflictingSubstitutions
|
||||
|
||||
import java.util.*
|
||||
|
||||
fun <R> elemAndList(r: R, <!UNUSED_PARAMETER!>t<!>: List<R>): R = r
|
||||
fun <R> R.elemAndListWithReceiver(r: R, <!UNUSED_PARAMETER!>t<!>: List<R>): R = r
|
||||
fun <R> elemAndList(r: R, <!UNUSED_PARAMETER!>t<!>: MutableList<R>): R = r
|
||||
fun <R> R.elemAndListWithReceiver(r: R, <!UNUSED_PARAMETER!>t<!>: MutableList<R>): R = r
|
||||
|
||||
fun test() {
|
||||
val <!UNUSED_VARIABLE!>s<!> = <!TYPE_INFERENCE_CONFLICTING_SUBSTITUTIONS!>elemAndList<!>(11, list("72"))
|
||||
|
||||
@@ -22,7 +22,7 @@ fun test() {
|
||||
|
||||
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size))
|
||||
|
||||
fun <in T, C: Collection<in T>> Array<T>.toCollection(result: C) : C {
|
||||
fun <in T, C: MutableCollection<in T>> Array<T>.toCollection(result: C) : C {
|
||||
for (element in this) result.add(element)
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -27,6 +27,6 @@ fun foo() {
|
||||
|
||||
fun <T> array(vararg t : T) : Array<T> = t
|
||||
|
||||
fun <T, R> Array<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : java.util.List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
fun <T, R> Array<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
|
||||
fun <T, R> Iterable<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : java.util.List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
fun <T, R> Iterable<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
package d
|
||||
|
||||
import java.util.List
|
||||
|
||||
fun <T> asList(<!UNUSED_PARAMETER!>t<!>: T) : List<T>? {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
|
||||
@@ -8,6 +8,6 @@ fun test(numbers: Iterable<Int>) {
|
||||
}
|
||||
|
||||
//from library
|
||||
fun <T, R> Iterable<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : java.util.List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
fun <T, R> Iterable<T>.map(<!UNUSED_PARAMETER!>transform<!> : (T) -> R) : List<R> {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
|
||||
fun <T> Iterable<T>.fold(<!UNUSED_PARAMETER!>initial<!>: T, <!UNUSED_PARAMETER!>operation<!>: (T, T) -> T): T {<!NO_RETURN_IN_FUNCTION_WITH_BLOCK_BODY!>}<!>
|
||||
@@ -2,10 +2,7 @@
|
||||
//+JDK
|
||||
package d
|
||||
|
||||
import java.util.Collection
|
||||
import java.util.List
|
||||
|
||||
public fun <T> Collection<out T>.filterToMy(result : List<in T>, filter : (T) -> Boolean) : Collection<out T> {
|
||||
public fun <T> Collection<out T>.filterToMy(result : MutableList<in T>, filter : (T) -> Boolean) : Collection<out T> {
|
||||
for (t in this){
|
||||
if (filter(t)){
|
||||
result.add(t)
|
||||
@@ -14,11 +11,11 @@ public fun <T> Collection<out T>.filterToMy(result : List<in T>, filter : (T) ->
|
||||
return this
|
||||
}
|
||||
|
||||
fun foo(result: List<in String>, val collection: Collection<String>, prefix : String){
|
||||
fun foo(result: MutableList<in String>, val collection: Collection<String>, prefix : String){
|
||||
collection.filterToMy(result, {it.startsWith(prefix)})
|
||||
}
|
||||
|
||||
fun test(result: List<in Any>, val collection: Collection<String>, prefix : String){
|
||||
fun test(result: MutableList<in Any>, val collection: Collection<String>, prefix : String){
|
||||
val c = collection.filterToMy(result, {it.startsWith(prefix)})
|
||||
c: Collection<out String>
|
||||
}
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
//KT-1558 Exception while analyzing
|
||||
package j
|
||||
|
||||
//+JDK
|
||||
import java.util.List
|
||||
|
||||
|
||||
fun testArrays(val ci: List<Int?>, val cii: List<Int?>) {
|
||||
val c1: Array<Int?> = cii.sure().toArray(<!FUNCTION_CALL_EXPECTED!><!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>Array<!><Int?><!>)
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
//KT-1718 compiler error when not using temporary variable
|
||||
package n
|
||||
|
||||
import java.util.List
|
||||
import java.util.ArrayList
|
||||
|
||||
fun test() {
|
||||
|
||||
@@ -25,17 +25,17 @@ fun test() {
|
||||
|
||||
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size))
|
||||
|
||||
fun <T, R> java.util.Collection<T>.map(transform : (T) -> R) : java.util.List<R> {
|
||||
fun <T, R> Collection<T>.map(transform : (T) -> R) : List<R> {
|
||||
return mapTo(java.util.ArrayList<R>(this.size), transform)
|
||||
}
|
||||
|
||||
fun <T, R, C: Collection<in R>> java.util.Collection<T>.mapTo(result: C, transform : (T) -> R) : C {
|
||||
fun <T, R, C: MutableCollection<in R>> Collection<T>.mapTo(result: C, transform : (T) -> R) : C {
|
||||
for (item in this)
|
||||
result.add(transform(item))
|
||||
return result
|
||||
}
|
||||
|
||||
fun <in T, C: Collection<in T>> Array<T>.toCollection(result: C) : C {
|
||||
fun <in T, C: MutableCollection<in T>> Array<T>.toCollection(result: C) : C {
|
||||
for (element in this) result.add(element)
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ package n
|
||||
|
||||
abstract class Buggy {
|
||||
|
||||
abstract val coll : java.util.Collection<Int>
|
||||
abstract val coll : Collection<Int>
|
||||
|
||||
fun getThree(): Int? {
|
||||
return coll.find{ it > 3 } // works fine
|
||||
|
||||
@@ -27,7 +27,7 @@ fun assertEquals(<!UNUSED_PARAMETER!>expected<!>: Any?, <!UNUSED_PARAMETER!>actu
|
||||
|
||||
fun arrayList<T>(vararg values: T) : ArrayList<T> = values.toCollection(ArrayList<T>(values.size))
|
||||
|
||||
fun <in T, C: Collection<in T>> Array<T>.toCollection(result: C) : C {
|
||||
fun <in T, C: MutableCollection<in T>> Array<T>.toCollection(result: C) : C {
|
||||
for (element in this) result.add(element)
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
package a
|
||||
//+JDK
|
||||
import java.util.List
|
||||
|
||||
fun <T> Array<T>.forEach(operation: (T) -> Unit) : Unit = for (element in this) operation(element)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user