Introduce Type Alias
#KT-12902 Fixed
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
// NAME:
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
No name provided for type alias
|
||||
@@ -0,0 +1,8 @@
|
||||
// NAME: C
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class A<X, Y>
|
||||
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Type alias cannot refer to types which aren't accessible in the scope where it's defined
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: C
|
||||
class B<X>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class A<X>
|
||||
|
||||
val a: <caret>(B<A<Int>>, A<Int>, A<String>) -> A<Int>
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// NAME: C
|
||||
class B<X>
|
||||
|
||||
typealias C<T, U> = (B<T>, T, U) -> T
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class A<X>
|
||||
|
||||
val a: C<A<Int>, A<String>>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: B
|
||||
class A<X, Y>
|
||||
|
||||
class B
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Type B already exists in the target scope
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// NAME: S
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val t1: <caret>(Int) -> Boolean
|
||||
val t2: (Int) -> Boolean
|
||||
val t3: Int.() -> Boolean
|
||||
val t4: (Int, Int) -> Boolean
|
||||
val t5: (Boolean) -> Int
|
||||
val t6: Function1<Int, Boolean>
|
||||
}
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
typealias S = (Int) -> Boolean
|
||||
|
||||
// NAME: S
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val t1: S
|
||||
val t2: S
|
||||
val t3: Int.() -> Boolean
|
||||
val t4: (Int, Int) -> Boolean
|
||||
val t5: (Boolean) -> Int
|
||||
val t6: S
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// NAME: S
|
||||
|
||||
class A<X>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<T>
|
||||
|
||||
val t1: <caret>(B<Int>) -> ((B<Int>) -> Boolean)
|
||||
val t2: (B<Int>) -> ((B<Int>) -> Boolean)
|
||||
val t3: ((B<Int>) -> B<Int>) -> Boolean
|
||||
val t4: Function1<B<Int>, Function1<B<Int>, Boolean>>
|
||||
val t5: (String) -> ((String) -> Boolean)
|
||||
val t6: (Int) -> ((String) -> Boolean)
|
||||
val t7: (A<B<String>>) -> ((A<B<String>>) -> Boolean)
|
||||
}
|
||||
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
// NAME: S
|
||||
|
||||
class A<X>
|
||||
|
||||
typealias S<T> = (T) -> ((T) -> Boolean)
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<T>
|
||||
|
||||
val t1: S<B<Int>>
|
||||
val t2: S<B<Int>>
|
||||
val t3: ((B<Int>) -> B<Int>) -> Boolean
|
||||
val t4: S<B<Int>>
|
||||
val t5: S<String>
|
||||
val t6: (Int) -> ((String) -> Boolean)
|
||||
val t7: S<A<B<String>>>
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// NAME: F
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: A<<caret>(Int) -> String, String>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: F
|
||||
class A<X, Y>
|
||||
|
||||
typealias F = (Int) -> String
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: A<F, String>
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// NAME: B
|
||||
class A<X, Y>
|
||||
|
||||
fun foo() {
|
||||
// SIBLING:
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: B
|
||||
class A<X, Y>
|
||||
|
||||
fun foo() {
|
||||
// SIBLING:
|
||||
typealias B = A<Int, String>
|
||||
|
||||
val a: B
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: C
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<X, Y>
|
||||
|
||||
val a: <caret>A<B<Int, String>, B<String, Int>>
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// NAME: C
|
||||
class A<X, Y>
|
||||
|
||||
typealias C<T, U> = A<T, U>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<X, Y>
|
||||
|
||||
val a: C<B<Int, String>, B<String, Int>>
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// NAME: B
|
||||
// VISIBILITY: private
|
||||
class A<X, Y>
|
||||
|
||||
fun foo() {
|
||||
// SIBLING:
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
'private' is not allowed in the target context
|
||||
@@ -0,0 +1,7 @@
|
||||
// NAME: B
|
||||
class A<X, Y>
|
||||
|
||||
class Test {
|
||||
// SIBLING
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: B
|
||||
class A<X, Y>
|
||||
|
||||
class Test {
|
||||
typealias B = A<Int, String>
|
||||
|
||||
// SIBLING
|
||||
val a: B
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: C
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<X, Y>
|
||||
|
||||
val a: <caret>A<B<B<Int, String>, String>, B<String, B<Int, String>>>
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// NAME: C
|
||||
class A<X, Y>
|
||||
|
||||
typealias C<T, U> = A<T, U>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<X, Y>
|
||||
|
||||
val a: C<B<B<Int, String>, String>, B<String, B<Int, String>>>
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// NAME: A
|
||||
fun foo() {
|
||||
val x = <caret>1 + 2
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Cannot perform refactoring without a type
|
||||
@@ -0,0 +1,7 @@
|
||||
// NAME: 12
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Type alias name must be a valid identifier: 12
|
||||
@@ -0,0 +1,7 @@
|
||||
// NAME: AN
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: A<Int, String>?<caret>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: AN
|
||||
class A<X, Y>
|
||||
|
||||
typealias AN = A<Int, String>?
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: AN
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// NAME: B
|
||||
// VISIBILITY: private
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// NAME: B
|
||||
// VISIBILITY: private
|
||||
class A<X, Y>
|
||||
|
||||
private typealias B = A<Int, String>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: B
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// NAME: B
|
||||
// VISIBILITY: protected
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
'protected' is not allowed in the target context
|
||||
@@ -0,0 +1,7 @@
|
||||
// NAME: B
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: <caret>A<Int, String>
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// NAME: B
|
||||
class A<X, Y>
|
||||
|
||||
typealias B = A<Int, String>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val a: B
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// NAME: F
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<X>
|
||||
|
||||
val a: A<<caret>(B<Int>) -> B<String>, String>
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// NAME: F
|
||||
class A<X, Y>
|
||||
|
||||
typealias F<T, U> = (T) -> U
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<X>
|
||||
|
||||
val a: A<F<B<Int>, B<String>>, String>
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// NAME: S
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val t1: <caret>A<Int, Boolean>
|
||||
val t2: A<Int, Boolean>
|
||||
val t3: A<Boolean, Int>
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// NAME: S
|
||||
class A<X, Y>
|
||||
|
||||
typealias S = A<Int, Boolean>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
val t1: S
|
||||
val t2: S
|
||||
val t3: A<Boolean, Int>
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// NAME: S
|
||||
class A<X, Y>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<T>
|
||||
|
||||
val t1: <caret>A<B<Int>, A<B<Int>, Boolean>>
|
||||
val t2: A<B<Int>, A<B<Int>, Boolean>>
|
||||
val t3: A<String, A<String, Boolean>>
|
||||
val t4: A<Int, A<String, Boolean>>
|
||||
val t5: A<(Int) -> Int, A<() -> Int, Boolean>>
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
// NAME: S
|
||||
class A<X, Y>
|
||||
|
||||
typealias S<T> = A<T, A<T, Boolean>>
|
||||
|
||||
// SIBLING:
|
||||
fun foo() {
|
||||
class B<T>
|
||||
|
||||
val t1: S<B<Int>>
|
||||
val t2: S<B<Int>>
|
||||
val t3: S<String>
|
||||
val t4: A<Int, A<String, Boolean>>
|
||||
val t5: A<(Int) -> Int, A<() -> Int, Boolean>>
|
||||
}
|
||||
Reference in New Issue
Block a user