[IDE-NI-MIGRATE] Migrate QuickFix tests for new inference

This commit is contained in:
Mikhail Zarechenskiy
2019-05-06 03:35:54 +03:00
parent 871925ba31
commit d4d1648e1d
71 changed files with 77 additions and 1 deletions
@@ -231,7 +231,9 @@ object CompilerTestDirectives {
fun configureCompilerOptions(fileText: String, project: Project, module: Module): Boolean {
val version = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// $LANGUAGE_VERSION_DIRECTIVE ")
val jvmTarget = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// $JVM_TARGET_DIRECTIVE ")
val options = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// $COMPILER_ARGUMENTS_DIRECTIVE ")
// We can have several such directives in quickFixMultiFile tests
// TODO: refactor such tests or add sophisticated check for the directive
val options = InTextDirectivesUtils.findListWithPrefixes(fileText, "// $COMPILER_ARGUMENTS_DIRECTIVE ").firstOrNull()
if (version != null || jvmTarget != null || options != null) {
configureLanguageAndApiVersion(project, module, version ?: LanguageVersion.LATEST_STABLE.versionString)
@@ -1,5 +1,6 @@
// "Add 'kotlin.Any' as upper bound for E" "true"
// ERROR: Type parameter bound for U in fun <T : Any, U : Any> foo(x: T, y: U): Int<br> is not satisfied: inferred type F is not a subtype of Any
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun <T : Any, U: Any> foo(x: T, y: U) = 1
@@ -1,5 +1,6 @@
// "Add 'kotlin.Any' as upper bound for E" "true"
// ERROR: Type parameter bound for U in fun <T : Any, U : Any> foo(x: T, y: U): Int<br> is not satisfied: inferred type F is not a subtype of Any
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun <T : Any, U: Any> foo(x: T, y: U) = 1
@@ -1,5 +1,6 @@
// "Add 'kotlin.Any' as upper bound for E" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
import kotlin.reflect.KClass
@@ -1,5 +1,6 @@
// "Add 'kotlin.Any' as upper bound for E" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
import kotlin.reflect.KClass
@@ -3,6 +3,7 @@ import BExtSpace.aaa
// "Import" "true"
// WITH_RUNTIME
// ERROR: Unresolved reference: aaa
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun test() {
AAA().apply {
@@ -1,6 +1,7 @@
// "Import" "true"
// WITH_RUNTIME
// ERROR: Unresolved reference: aaa
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun test() {
AAA().apply {
@@ -1,6 +1,7 @@
// FILE: first.before.kt
// "Import" "true"
// ERROR: 'operator' modifier is required on 'get' in 'some.Some'
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package testing
@@ -28,6 +29,7 @@ operator fun Some.get(s: String) {}
// FILE: first.after.kt
// "Import" "true"
// ERROR: 'operator' modifier is required on 'get' in 'some.Some'
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package testing
@@ -1,6 +1,7 @@
// FILE: first.before.kt
// "Import" "true"
// ERROR: 'operator' modifier is required on 'set' in 'some.Some'
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package testing
@@ -28,6 +29,7 @@ operator fun Some.set(s: String, i: Int) {}
// FILE: first.after.kt
// "Import" "true"
// ERROR: 'operator' modifier is required on 'set' in 'some.Some'
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package testing
@@ -1,5 +1,6 @@
// "Import" "true"
// ERROR: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: <br>public fun String.minus(i: Integer): String defined in h in file minusOperator.before.Main.kt<br>public fun String.minus(str: String): String defined in h in file minusOperator.before.Main.kt
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package h
@@ -1,5 +1,6 @@
// "Import" "true"
// ERROR: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: <br>public fun String.minus(i: Integer): String defined in h in file minusOperator.before.Main.kt<br>public fun String.minus(str: String): String defined in h in file minusOperator.before.Main.kt
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package h
@@ -4,6 +4,7 @@
// ACTION: Add parameter to function 'foo'
// ACTION: Create extension function 'X.foo'
// ACTION: Create member function 'X.foo'
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package main
@@ -30,6 +31,7 @@ fun X.foo(p: String) {
// ACTION: Add parameter to function 'foo'
// ACTION: Create extension function 'X.foo'
// ACTION: Create member function 'X.foo'
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package main
@@ -1,6 +1,7 @@
// FILE: first.before.kt
// "Import" "true"
// ERROR: Type mismatch: inferred type is () -> Unit but Int was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package main
@@ -23,6 +24,7 @@ fun X.foo(filter: (String) -> Boolean){}
// FILE: first.after.kt
// "Import" "true"
// ERROR: Type mismatch: inferred type is () -> Unit but Int was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package main
@@ -4,6 +4,7 @@
// ACTION: Create member function 'JustClass.plus'
// ACTION: Flip '+'
// ACTION: Replace overloaded operator with function call
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class JustClass
@@ -1,5 +1,6 @@
// "Add parameter to function 'foo'" "true"
// ERROR: Too many arguments for public fun foo(): Unit defined in b in file addParameterWithImport.before.Dependency.kt
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package a
import b.foo
@@ -1,5 +1,6 @@
// "Add parameter to function 'foo'" "true"
// ERROR: Too many arguments for public fun foo(): Unit defined in b in file addParameterWithImport.before.Dependency.kt
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
package a
import b.foo
@@ -1,4 +1,5 @@
// "Add parameter to constructor 'Foo'" "true"
// WITH_RUNTIME
// DISABLE-ERRORS
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
private val foo = Foo(1, "2", <caret>setOf("3"))
@@ -1,4 +1,5 @@
// "Add parameter to constructor 'Foo'" "true"
// WITH_RUNTIME
// DISABLE-ERRORS
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
private val foo = Foo(1, "2", <caret>setOf("3"))
@@ -1,4 +1,5 @@
// "Add parameter to function 'bar'" "true"
// WITH_RUNTIME
// DISABLE-ERRORS
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
private val foo = Foo().bar(1, "2", <caret>setOf("3"))
@@ -1,4 +1,5 @@
// "Add parameter to function 'bar'" "true"
// WITH_RUNTIME
// DISABLE-ERRORS
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
private val foo = Foo().bar(1, "2", <caret>setOf("3"))
@@ -3,6 +3,7 @@
// ACTION: Introduce local variable
// ERROR: The integer literal does not conform to the expected type Unit
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun foo(f:()->Int){}
@@ -3,6 +3,7 @@
// ACTION: Introduce local variable
// ERROR: The integer literal does not conform to the expected type Unit
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun foo(f:()->Int){}
@@ -1,5 +1,6 @@
// "Create extension function 'Int.plus'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T)
@@ -1,5 +1,6 @@
// "Create extension function 'Int.plus'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T)
@@ -1,5 +1,6 @@
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T)
@@ -1,5 +1,6 @@
// "Create extension function 'Int.foo'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T)
@@ -1,4 +1,5 @@
// "Create member function 'A.foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T)
@@ -1,4 +1,5 @@
// "Create member function 'A.foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T) {
fun foo(abc: T, ghi: A<T>, def: String): A<T> {
@@ -1,4 +1,5 @@
// "Create function 'bar'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val t: T)
@@ -1,4 +1,5 @@
// "Create function 'bar'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val t: T)
@@ -1,4 +1,5 @@
// "Create function 'foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun <T> run(f: () -> T) = f()
@@ -1,4 +1,5 @@
// "Create function 'foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun <T> run(f: () -> T) = f()
@@ -1,4 +1,5 @@
// "Create function 'bar'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val t: T)
@@ -1,4 +1,5 @@
// "Create function 'bar'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val t: T)
@@ -12,6 +12,7 @@
// ERROR: Type inference failed: inline fun <T> Iterable<T>.firstOrNull(predicate: (T) -> Boolean): T?<br>cannot be applied to<br>receiver: Collection<List<String>> arguments: ((List<String>) -> () -> Boolean)<br>
// ERROR: Type mismatch: inferred type is (List<String>) -> () -> Boolean but (List<String>) -> Boolean was expected
// ERROR: Unresolved reference: maximumSizeOfGroup
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun doSomethingStrangeWithCollection(collection: Collection<String>): Collection<String>? {
val groupsByLength = collection.groupBy { s -> { s.length } }
@@ -1,4 +1,5 @@
// "Create member function 'A.invoke'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T)
@@ -1,4 +1,5 @@
// "Create member function 'A.invoke'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>(val n: T) {
operator fun invoke(abc: T, ghi: A<T>, def: String): A<T> {
@@ -1,5 +1,6 @@
// "Create type parameter 'X' in class 'Foo'" "true"
// ERROR: Type mismatch: inferred type is A<Int> but A<Any?> was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>
open class Foo(x: A<<caret>X>)
@@ -1,5 +1,6 @@
// "Create type parameter 'X' in class 'Foo'" "true"
// ERROR: Type mismatch: inferred type is A<Int> but A<Any?> was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T>
open class Foo<X>(x: A<X>)
@@ -3,6 +3,7 @@
// ERROR: Unresolved reference: _
// ERROR: Unresolved reference: _
// ERROR: Type mismatch: inferred type is A<I> but A<List<[ERROR : _]>> was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<T>>
interface I : List<I>
@@ -3,6 +3,7 @@
// ERROR: Unresolved reference: _
// ERROR: Unresolved reference: _
// ERROR: Type mismatch: inferred type is A<I> but A<List<[ERROR : _]>> was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<T>>
interface I : List<I>
@@ -1,4 +1,5 @@
// "Create type parameter 'X' in class 'Foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<Int>>
open class Foo(x: A<<caret>X>)
@@ -1,4 +1,5 @@
// "Create type parameter 'X' in class 'Foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<Int>>
open class Foo<X : List<Int>>(x: A<X>)
@@ -1,5 +1,6 @@
// "Create type parameter 'X' in function 'foo'" "true"
// ERROR: Unresolved reference: _
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<T>>
interface I : List<I>
@@ -1,5 +1,6 @@
// "Create type parameter 'X' in function 'foo'" "true"
// ERROR: Unresolved reference: _
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<T>>
interface I : List<I>
@@ -1,4 +1,5 @@
// "Create type parameter 'X' in function 'foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<Int>>
fun foo(x: A<<caret>X>) {
@@ -1,4 +1,5 @@
// "Create type parameter 'X' in function 'foo'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A<T : List<Int>>
fun <X : List<Int>> foo(x: A<X>) {
@@ -3,6 +3,7 @@
// ACTION: Create member function 'A.minus'
// ACTION: Replace overloaded operator with function call
// ERROR: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: <br>@InlineOnly public inline operator fun BigDecimal.minus(other: BigDecimal): BigDecimal defined in kotlin<br>@InlineOnly public inline operator fun BigInteger.minus(other: BigInteger): BigInteger defined in kotlin<br>public operator fun <T> Iterable<???>.minus(elements: Array<out ???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Iterable<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Sequence<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<A>.minus(element: A): List<A> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out ???, ???>.minus(keys: Array<out ???>): Map<???, ???> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out ???, ???>.minus(keys: Iterable<???>): Map<???, ???> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out ???, ???>.minus(keys: Sequence<???>): Map<???, ???> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out A, ???>.minus(key: A): Map<A, ???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Array<out ???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Iterable<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Sequence<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<A>.minus(element: A): Set<A> defined in kotlin.collections<br>public operator fun <T> Sequence<???>.minus(elements: Array<out ???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Iterable<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Sequence<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<A>.minus(element: A): Sequence<A> defined in kotlin.sequences
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A
fun bar() {
@@ -3,6 +3,7 @@
// ACTION: Create member function 'A.minus'
// ACTION: Replace overloaded operator with function call
// ERROR: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: <br>@InlineOnly public inline operator fun BigDecimal.minus(other: BigDecimal): BigDecimal defined in kotlin<br>@InlineOnly public inline operator fun BigInteger.minus(other: BigInteger): BigInteger defined in kotlin<br>public operator fun <T> Iterable<???>.minus(elements: Array<out ???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Iterable<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<???>.minus(elements: Sequence<???>): List<???> defined in kotlin.collections<br>public operator fun <T> Iterable<A>.minus(element: A): List<A> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out ???, ???>.minus(keys: Array<out ???>): Map<???, ???> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out ???, ???>.minus(keys: Iterable<???>): Map<???, ???> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out ???, ???>.minus(keys: Sequence<???>): Map<???, ???> defined in kotlin.collections<br>@SinceKotlin public operator fun <K, V> Map<out A, ???>.minus(key: A): Map<A, ???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Array<out ???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Iterable<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<???>.minus(elements: Sequence<???>): Set<???> defined in kotlin.collections<br>public operator fun <T> Set<A>.minus(element: A): Set<A> defined in kotlin.collections<br>public operator fun <T> Sequence<???>.minus(elements: Array<out ???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Iterable<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<???>.minus(elements: Sequence<???>): Sequence<???> defined in kotlin.sequences<br>public operator fun <T> Sequence<A>.minus(element: A): Sequence<A> defined in kotlin.sequences
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A
fun bar() {
@@ -1,6 +1,7 @@
// "Replace with 'New'" "true"
// WITH_RUNTIME
// ERROR: Type inference failed: Not enough information to infer parameter T in constructor New<T>()<br>Please specify it explicitly.<br>
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
abstract class Main<T>
@@ -1,6 +1,7 @@
// "Replace with 'New'" "true"
// WITH_RUNTIME
// ERROR: Type inference failed: Not enough information to infer parameter T in constructor New<T>()<br>Please specify it explicitly.<br>
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
abstract class Main<T>
@@ -1,5 +1,6 @@
// "Replace with 'Factory()'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class Foo<T> @Deprecated("", ReplaceWith("Factory<T>()")) constructor()
fun <T> Factory(): Foo<T> = TODO()
@@ -1,5 +1,6 @@
// "Replace with 'Factory()'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class Foo<T> @Deprecated("", ReplaceWith("Factory<T>()")) constructor()
fun <T> Factory(): Foo<T> = TODO()
@@ -1,5 +1,6 @@
// "Replace with 'addA(d(createDummy, dummyParam1, initDummy), dummyParam)'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
typealias NewDummyRef<V> = (Any) -> V
@@ -1,5 +1,6 @@
// "Replace with 'addA(d(createDummy, dummyParam1, initDummy), dummyParam)'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
typealias NewDummyRef<V> = (Any) -> V
@@ -1,4 +1,5 @@
// "Replace with 'newFun()'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
@Deprecated("", ReplaceWith("newFun<T>()"))
fun <T : Any> oldFun(): T? {
@@ -1,4 +1,5 @@
// "Replace with 'newFun()'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
@Deprecated("", ReplaceWith("newFun<T>()"))
fun <T : Any> oldFun(): T? {
+1
View File
@@ -3,6 +3,7 @@
// ERROR: Val cannot be reassigned
// ERROR: Val cannot be reassigned
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun foo() {
val x = 1
@@ -5,5 +5,6 @@
// ACTION: Replace with safe (this?.) call
// ACTION: Wrap with '?.let { ... }' call
// ERROR: Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String?
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun String?.foo(exec: (String.() -> Unit)) = exec<caret>()
@@ -1,5 +1,6 @@
// "Remove '.java'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun foo() {
bar(Foo::class.java<caret>)
}
@@ -1,5 +1,6 @@
// "Remove '.java'" "true"
// WITH_RUNTIME
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun foo() {
bar(Foo::class<caret>)
}
@@ -1,4 +1,5 @@
// "Cast expression 'x' to 'Foo<*>'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
interface Foo<T: Number> {
fun bar()
@@ -1,4 +1,5 @@
// "Cast expression 'x' to 'Foo<*>'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
interface Foo<T: Number> {
fun bar()
@@ -2,6 +2,7 @@
// ACTION: Change return type of enclosing function 'foo' to 'Foo<Number>'
// ACTION: Introduce import alias
// ERROR: Type mismatch: inferred type is Foo<Number> but Foo<Int> was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class Foo<T>
fun foo(): Foo<Int> {
+1
View File
@@ -6,6 +6,7 @@
// ACTION: Change to '1u'
// ACTION: Do not show hints for current method
// ACTION: Add 'u =' to argument
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun takeUInt(u: UInt) = 0
+1
View File
@@ -1,4 +1,5 @@
// "Change type from 'Int' to 'X'" "true"
// ERROR: Cannot use 'X' as reified type parameter. Use a class instead.
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
inline fun <reified T> inlineReified0(f: (T) -> T) = {}
fun <X> callInlineReified3() = inlineReified0<X>({ x: <caret>Int -> x })
+1
View File
@@ -1,4 +1,5 @@
// "Change type from 'Int' to 'X'" "true"
// ERROR: Cannot use 'X' as reified type parameter. Use a class instead.
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
inline fun <reified T> inlineReified0(f: (T) -> T) = {}
fun <X> callInlineReified3() = inlineReified0<X>({ x: X -> x })
@@ -1,5 +1,6 @@
// "Surround with lambda" "true"
// ERROR: Type mismatch: inferred type is String? but String was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun nullableFn() {
val nullableStr: String? = null
str(<caret>nullableStr)
@@ -1,5 +1,6 @@
// "Surround with lambda" "true"
// ERROR: Type mismatch: inferred type is String? but String was expected
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
fun nullableFn() {
val nullableStr: String? = null
str({ nullableStr })
@@ -1,4 +1,5 @@
// "Change type of 'A.x' to '() -> Int'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A {
var x: Int
get(): Int = if (true) { {42}<caret> } else { {24} }
@@ -1,4 +1,5 @@
// "Change type of 'A.x' to '() -> Int'" "true"
// COMPILER_ARGUMENTS: -XXLanguage:-NewInference
class A {
var x: () -> Int
get(): () -> Int = if (true) { {42}<caret> } else { {24} }