Implement quick-fix "let type implement interface" #KT-11404 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
2198a8c8d0
commit
1e6f507f5e
@@ -0,0 +1,14 @@
|
||||
// "Let 'B' implement interface 'A'" "true"
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A) {
|
||||
}
|
||||
|
||||
interface A
|
||||
interface C
|
||||
class B : C
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// "Let 'B' implement interface 'A'" "true"
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A) {
|
||||
}
|
||||
|
||||
interface A
|
||||
interface C
|
||||
class B : C, A
|
||||
@@ -0,0 +1,13 @@
|
||||
// "Let 'B' implement interface 'A<Int>'" "true"
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A<Int>) {
|
||||
}
|
||||
|
||||
interface A<T>
|
||||
class B
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// "Let 'B' implement interface 'A<Int>'" "true"
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A<Int>) {
|
||||
}
|
||||
|
||||
interface A<T>
|
||||
class B : A<Int>
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// "Let 'B' implement interface 'A<Int>'" "false"
|
||||
// ACTION: Change parameter 'a' type of function 'let.implement.foo' to 'B'
|
||||
// ACTION: Convert to expression body
|
||||
// ERROR: Type mismatch: inferred type is B but A<Int> was expected
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A<Int>) {
|
||||
}
|
||||
|
||||
interface A<T>
|
||||
class B : A<String>
|
||||
@@ -0,0 +1,17 @@
|
||||
// "Let 'B' implement interface 'A<*>'" "false"
|
||||
// ACTION: Change parameter 'a' type of function 'let.implement.foo' to 'B'
|
||||
// ACTION: Convert to expression body
|
||||
// ERROR: Type mismatch: inferred type is B but A<*> was expected
|
||||
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A<*>) {
|
||||
}
|
||||
|
||||
interface A<T>
|
||||
class B
|
||||
@@ -0,0 +1,13 @@
|
||||
// "Let 'B' implement interface 'A'" "true"
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A) {
|
||||
}
|
||||
|
||||
interface A
|
||||
class B
|
||||
@@ -0,0 +1,13 @@
|
||||
// "Let 'B' implement interface 'A'" "true"
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo(B()<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A) {
|
||||
}
|
||||
|
||||
interface A
|
||||
class B : A
|
||||
@@ -0,0 +1,14 @@
|
||||
// "Let 'C' extend interface 'A'" "true"
|
||||
package let.extend
|
||||
|
||||
fun bar() {
|
||||
foo(B() as C<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A) {
|
||||
}
|
||||
|
||||
interface A
|
||||
interface C
|
||||
class B : C
|
||||
@@ -0,0 +1,14 @@
|
||||
// "Let 'C' extend interface 'A'" "true"
|
||||
package let.extend
|
||||
|
||||
fun bar() {
|
||||
foo(B() as C<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A) {
|
||||
}
|
||||
|
||||
interface A
|
||||
interface C : A
|
||||
class B : C
|
||||
@@ -0,0 +1,17 @@
|
||||
// "Let 'String' implement interface 'A'" "false"
|
||||
// ACTION: Change parameter 'a' type of function 'let.implement.foo' to 'String'
|
||||
// ACTION: Convert to expression body
|
||||
// ACTION: To raw string literal
|
||||
// ERROR: Type mismatch: inferred type is String but A was expected
|
||||
|
||||
package let.implement
|
||||
|
||||
fun bar() {
|
||||
foo("Hello"<caret>)
|
||||
}
|
||||
|
||||
|
||||
fun foo(a: A) {
|
||||
}
|
||||
|
||||
interface A
|
||||
Vendored
+1
@@ -1,6 +1,7 @@
|
||||
// "Change 'A' function return type to 'B'" "false"
|
||||
// ACTION: Change 'b' type to 'A'
|
||||
// ACTION: Convert property initializer to getter
|
||||
// ACTION: Let 'A' implement interface 'B'
|
||||
// ERROR: Type mismatch: inferred type is A but B was expected
|
||||
|
||||
class A constructor() {}
|
||||
|
||||
Reference in New Issue
Block a user