// WITH_STDLIB // FULL_JDK // !LANGUAGE: +ProgressionsChangingResolve -DisableCheckingChangedProgressionsResolve // This test is not K1/K2 identical due to KT-58789 not implemented yet // FILE: JavaSmartList.java import kotlin.ranges.ClosedRange; import java.util.Collection; public class JavaSmartList { JavaSmartList(E x) {} JavaSmartList(Collection x) {} static void append(Object x) {} static void append(Collection x) {} static void append2(Iterable x) {} static void append2(Collection x) {} public static class In { In(T x) {} } static void append3(In x) {} static void append3(In> x) {} static void append4(E x) {} static > void append4(E x) {} static void takes(T x) {} static & ClosedRange> void takes(T x) {} } // FILE: main.kt fun main() { JavaSmartList(1..2) // warning JavaSmartList(1..10) // no warning JavaSmartList.append(1..10) // warning JavaSmartList.append((1..10) as Any) // no warning JavaSmartList.append((1..10) as Iterable) // no warning JavaSmartList.append("a".."z") // no warning, the range is not iterable JavaSmartList.append(1.0..2.0) JavaSmartList.append2(1..10) // no warning JavaSmartList.append3(JavaSmartList.In(1..10)) // no warning JavaSmartList.append4(1..10) // warning JavaSmartList.append4(1..10) // warning JavaSmartList.takes(1..10) // warning }