Implement Abstract Member Intention: Support primary constructor parameters
#KT-8427 Fixed
This commit is contained in:
@@ -0,0 +1 @@
|
||||
org.jetbrains.kotlin.idea.intentions.ImplementAbstractMemberAsConstructorParameterIntention
|
||||
@@ -0,0 +1,9 @@
|
||||
// WITH_RUNTIME
|
||||
// DISABLE-ERRORS
|
||||
interface T<X> {
|
||||
val <caret>foo: X
|
||||
}
|
||||
|
||||
enum class E : T<Int> {
|
||||
A, B, C
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// WITH_RUNTIME
|
||||
// DISABLE-ERRORS
|
||||
interface T<X> {
|
||||
val <caret>foo: X
|
||||
}
|
||||
|
||||
enum class E(override val foo: Int) : T<Int> {
|
||||
A, B, C
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// IS_APPLICABLE: false
|
||||
// DISABLE-ERRORS
|
||||
interface A {
|
||||
abstract fun <caret>foo(): Int
|
||||
}
|
||||
|
||||
class B : A {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// WITH_RUNTIME
|
||||
// DISABLE-ERRORS
|
||||
interface T<X> {
|
||||
val <caret>foo: X
|
||||
}
|
||||
|
||||
class U : T<String> {
|
||||
|
||||
}
|
||||
|
||||
class V : T<Int> {
|
||||
|
||||
}
|
||||
|
||||
class Z : T<Int> by V() {
|
||||
|
||||
}
|
||||
|
||||
class W : T<Boolean> {
|
||||
override val foo: Boolean
|
||||
get() = throw UnsupportedOperationException()
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
// WITH_RUNTIME
|
||||
// DISABLE-ERRORS
|
||||
interface T<X> {
|
||||
val <caret>foo: X
|
||||
}
|
||||
|
||||
class U(override val foo: String) : T<String> {
|
||||
|
||||
}
|
||||
|
||||
class V(override val foo: Int) : T<Int> {
|
||||
|
||||
}
|
||||
|
||||
class Z : T<Int> by V() {
|
||||
|
||||
}
|
||||
|
||||
class W : T<Boolean> {
|
||||
override val foo: Boolean
|
||||
get() = throw UnsupportedOperationException()
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// IS_APPLICABLE: false
|
||||
// DISABLE-ERRORS
|
||||
enum class E {
|
||||
A, B, C;
|
||||
|
||||
abstract val <caret>foo: Int
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// IS_APPLICABLE: false
|
||||
// ERROR: Abstract property 'foo' in non-abstract class 'A'
|
||||
class A {
|
||||
abstract val <caret>foo: Int
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// IS_APPLICABLE: false
|
||||
// ERROR: Abstract property 'foo' in non-abstract class 'A'
|
||||
object A {
|
||||
abstract val <caret>foo: Int
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// IS_APPLICABLE: false
|
||||
// ERROR: Class 'C' must be declared abstract or implement abstract base class member public abstract val foo: kotlin.Int defined in B
|
||||
interface A {
|
||||
val <caret>foo: Int
|
||||
}
|
||||
|
||||
class X : A {
|
||||
override val foo = 1
|
||||
}
|
||||
|
||||
abstract class B : A {
|
||||
abstract override val foo: Int
|
||||
}
|
||||
|
||||
class C: B() {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// IS_APPLICABLE: false
|
||||
interface A {
|
||||
val <caret>foo: Int
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// IS_APPLICABLE: false
|
||||
open class A {
|
||||
val <caret>foo = 1
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// IS_APPLICABLE: false
|
||||
// ERROR: Property must be initialized or be abstract
|
||||
open class A {
|
||||
val <caret>foo: Int
|
||||
}
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
// IS_APPLICABLE: false
|
||||
interface A {
|
||||
val <caret>foo: Int
|
||||
get() = 1
|
||||
}
|
||||
Reference in New Issue
Block a user