Create subclass intention implemented #KT-8473 Fixed

Can be used for implementing interfaces / abstract classes / sealed classes or extending open classes
This commit is contained in:
Mikhail Glukhikh
2016-02-17 17:06:59 +03:00
parent 7fa9ca8e9f
commit c7f3a31517
55 changed files with 887 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
// "Implement abstract class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
private abstract class <caret>Base {
abstract var x: Int
abstract fun toInt(arg: String): Int
}
+19
View File
@@ -0,0 +1,19 @@
// "Implement abstract class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
private abstract class Base {
abstract var x: Int
abstract fun toInt(arg: String): Int
}
private class BaseImpl : Base() {
override var x: Int
get() = throw UnsupportedOperationException()
set(value) {
}
override fun toInt(arg: String): Int {
throw UnsupportedOperationException()
}
}
+4
View File
@@ -0,0 +1,4 @@
// "Create subclass" "false"
annotation class <caret>My(val x: Int)
+10
View File
@@ -0,0 +1,10 @@
// "Create subclass" "false"
// ACTION: Create test
enum class <caret>My {
SINGLE {
override fun foo(): Int = 0
};
abstract fun foo(): Int
}
+3
View File
@@ -0,0 +1,3 @@
// "Create subclass" "false"
class Base
+8
View File
@@ -0,0 +1,8 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
companion object {
open class <caret>Base
}
}
+10
View File
@@ -0,0 +1,10 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
companion object {
open class Base
}
}
class BaseImpl : Container.Companion.Base()
@@ -0,0 +1,8 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
internal companion object {
open class <caret>Base
}
}
@@ -0,0 +1,10 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
internal companion object {
open class Base
}
}
internal class BaseImpl : Container.Companion.Base()
@@ -0,0 +1,8 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private companion object {
open class <caret>Base
}
}
@@ -0,0 +1,10 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private companion object {
open class Base
}
private class BaseImpl : Companion.Base()
}
@@ -0,0 +1,8 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
protected companion object {
open class <caret>Base
}
}
@@ -0,0 +1,10 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
protected companion object {
open class Base
}
protected class BaseImpl : Companion.Base()
}
+7
View File
@@ -0,0 +1,7 @@
// "Implement interface" "false"
// ACTION: Convert function to property
// ACTION: Convert member to extension
interface Base {
fun <caret>foo(): Int
}
+8
View File
@@ -0,0 +1,8 @@
// "Implement abstract class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
inner abstract class <caret>Base {
abstract fun foo(): String
}
}
+14
View File
@@ -0,0 +1,14 @@
// "Implement abstract class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
inner abstract class Base {
abstract fun foo(): String
}
inner class BaseImpl : Base() {
override fun foo(): String {
throw UnsupportedOperationException()
}
}
}
+8
View File
@@ -0,0 +1,8 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface <caret>Base {
fun foo(x: Int): Int
fun bar(y: String) = y
}
+14
View File
@@ -0,0 +1,14 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface Base {
fun foo(x: Int): Int
fun bar(y: String) = y
}
class BaseImpl : Base {
override fun foo(x: Int): Int {
throw UnsupportedOperationException()
}
}
+8
View File
@@ -0,0 +1,8 @@
// "Implement abstract class" "false"
fun foo() {
abstract class <caret>My {
abstract fun bar(): Int
}
}
+16
View File
@@ -0,0 +1,16 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
interface <caret>Base {
val x: Boolean
val y: Double
get() = 3.14
fun foo(): String = ""
fun bar(z: Int): String
}
}
+25
View File
@@ -0,0 +1,25 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
interface Base {
val x: Boolean
val y: Double
get() = 3.14
fun foo(): String = ""
fun bar(z: Int): String
}
}
class BaseImpl : Container.Base {
override val x: Boolean
get() = throw UnsupportedOperationException()
override fun bar(z: Int): String {
throw UnsupportedOperationException()
}
}
@@ -0,0 +1,8 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private interface <caret>Base {
var z: Double
}
}
@@ -0,0 +1,15 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private interface Base {
var z: Double
}
class BaseImpl : Base {
override var z: Double
get() = throw UnsupportedOperationException()
set(value) {
}
}
}
@@ -0,0 +1,3 @@
// "Implement abstract class" "false"
abstract class Base(val x: Int)
+4
View File
@@ -0,0 +1,4 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
private open class <caret>Base
+5
View File
@@ -0,0 +1,5 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
private open class Base
private class BaseImpl : Base()
@@ -0,0 +1,3 @@
// "Implement abstract class" "false"
abstract class Base private constructor
+10
View File
@@ -0,0 +1,10 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private open class <caret>Base {
open var x: String = ""
open fun foo(): String = ""
}
}
+12
View File
@@ -0,0 +1,12 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private open class Base {
open var x: String = ""
open fun foo(): String = ""
}
private class BaseImpl : Base()
}
@@ -0,0 +1,12 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private open class <caret>Base {
open var x: String = ""
open fun foo(): String = ""
}
private class BaseImpl : Base()
}
@@ -0,0 +1,14 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
private open class Base {
open var x: String = ""
open fun foo(): String = ""
}
private class BaseImpl1 : Base()
private class BaseImpl : Base()
}
+6
View File
@@ -0,0 +1,6 @@
// "Implement abstract class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
protected abstract class <caret>Base
}
+7
View File
@@ -0,0 +1,7 @@
// "Implement abstract class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
class Container {
protected abstract class Base
protected class BaseImpl : Base()
}
+6
View File
@@ -0,0 +1,6 @@
// "Implement sealed class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
sealed class <caret>Base {
abstract fun foo(): Int
}
+11
View File
@@ -0,0 +1,11 @@
// "Implement sealed class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
sealed class Base {
abstract fun foo(): Int
class BaseImpl : Base() {
override fun foo(): Int {
throw UnsupportedOperationException()
}
}
}
+4
View File
@@ -0,0 +1,4 @@
// "Implement sealed class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
sealed class <caret>Sealed
+6
View File
@@ -0,0 +1,6 @@
// "Implement sealed class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
sealed class Sealed {
class SealedImpl : Sealed()
}
+10
View File
@@ -0,0 +1,10 @@
// "Implement sealed class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
sealed class <caret>Base {
abstract fun foo(): Int
class BaseImpl : Base() {
override fun foo() = throw UnsupportedOperationException()
}
}
@@ -0,0 +1,16 @@
// "Implement sealed class" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
sealed class Base {
abstract fun foo(): Int
class BaseImpl : Base() {
override fun foo() = throw UnsupportedOperationException()
}
class BaseImpl1 : Base() {
override fun foo(): Int {
throw UnsupportedOperationException()
}
}
}
+4
View File
@@ -0,0 +1,4 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface <caret>Base<T : Any>
@@ -0,0 +1,5 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface Base<T : Any>
class BaseImpl<T : Any> : Base<T>
+4
View File
@@ -0,0 +1,4 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface <caret>Base<out T>
@@ -0,0 +1,5 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface Base<out T>
class BaseImpl<out T> : Base<T>
@@ -0,0 +1,4 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface <caret>Base<T> where T : Any
@@ -0,0 +1,5 @@
// "Implement interface" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
interface Base<T> where T : Any
class BaseImpl<T> : Base<T> where T : Any
@@ -0,0 +1,4 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
open class <caret>Base<T : Any, L : List<T>>
@@ -0,0 +1,5 @@
// "Create subclass" "true"
// SHOULD_BE_AVAILABLE_AFTER_EXECUTION
open class Base<T : Any, L : List<T>>
class BaseImpl<T : Any, L : List<T>> : Base<T, L>()