Smart completion: no instantiation of anonymous object with uninferred type arguments in code
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
interface A<T>
|
||||
|
||||
fun <T> foo(a: A<T>){}
|
||||
|
||||
fun g() {
|
||||
foo(<caret>)
|
||||
}
|
||||
|
||||
// EXIST: { lookupString:"object", itemText:"object: A<...>{...}" }
|
||||
@@ -0,0 +1,16 @@
|
||||
interface I<T>
|
||||
|
||||
abstract class C1<T> : I<T>
|
||||
abstract class C2 : I<String>
|
||||
abstract class C3 : I<Int>
|
||||
|
||||
fun foo(i: I<Int>){}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>)
|
||||
}
|
||||
|
||||
// EXIST: { itemText: "object: I<Int>{...}" }
|
||||
// EXIST: { itemText: "object: C1<Int>(){...}" }
|
||||
// EXIST: { itemText: "object: C3(){...}" }
|
||||
// NOTHING_ELSE
|
||||
@@ -0,0 +1,17 @@
|
||||
interface I<T>
|
||||
|
||||
abstract class C1<T> : I<T>
|
||||
abstract class C2 : I<String>
|
||||
abstract class C3 : I<Int>
|
||||
|
||||
fun <T> foo(i: I<T>){}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>)
|
||||
}
|
||||
|
||||
// EXIST: { itemText: "object: I<...>{...}" }
|
||||
// EXIST: { itemText: "object: C1<...>(){...}" }
|
||||
// EXIST: { itemText: "object: C2(){...}" }
|
||||
// EXIST: { itemText: "object: C3(){...}" }
|
||||
// NOTHING_ELSE
|
||||
@@ -0,0 +1,18 @@
|
||||
interface I<T1, T2>
|
||||
|
||||
abstract class C1<T> : I<T, String>
|
||||
abstract class C2 : I<Int, String>
|
||||
abstract class C3 : I<String, Int>
|
||||
abstract class C4<T> : I<String, T>
|
||||
|
||||
fun <T> foo(i: I<T, String>){}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>)
|
||||
}
|
||||
|
||||
// EXIST: { itemText: "object: I<...>{...}" }
|
||||
// EXIST: { itemText: "object: C1<...>(){...}" }
|
||||
// EXIST: { itemText: "object: C2(){...}" }
|
||||
// EXIST: { itemText: "object: C4<String>(){...}" }
|
||||
// NOTHING_ELSE
|
||||
@@ -0,0 +1,13 @@
|
||||
interface I<T1>
|
||||
|
||||
abstract class C<T1, T2> : I<T1>
|
||||
|
||||
fun <T> foo(i: I<T>){}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>)
|
||||
}
|
||||
|
||||
// EXIST: { itemText: "object: I<...>{...}" }
|
||||
// EXIST: { itemText: "object: C<...>(){...}" }
|
||||
// NOTHING_ELSE
|
||||
@@ -0,0 +1,13 @@
|
||||
interface I<T1>
|
||||
|
||||
abstract class C<T1, T2> : I<T1>
|
||||
|
||||
fun foo(i: I<String>){}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>)
|
||||
}
|
||||
|
||||
// EXIST: { itemText: "object: I<String>{...}" }
|
||||
// EXIST: { itemText: "object: C<...>(){...}" }
|
||||
// NOTHING_ELSE
|
||||
@@ -0,0 +1,20 @@
|
||||
interface X
|
||||
interface Y : X
|
||||
interface Z
|
||||
|
||||
interface I<T>
|
||||
|
||||
abstract class C1<T> : I<T>
|
||||
abstract class C2 : I<Y>
|
||||
abstract class C3 : I<Z>
|
||||
|
||||
fun <T : X> foo(i: I<T>){}
|
||||
|
||||
fun bar() {
|
||||
foo(<caret>)
|
||||
}
|
||||
|
||||
// EXIST: { itemText: "object: I<...>{...}" }
|
||||
// EXIST: { itemText: "object: C1<X>(){...}" }
|
||||
// EXIST: { itemText: "object: C2(){...}" }
|
||||
// NOTHING_ELSE
|
||||
Reference in New Issue
Block a user