Implement "Safe Delete" refactoring for named functions

Conflicts:
	idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java
This commit is contained in:
Alexey Sedunov
2013-07-12 18:18:46 +04:00
parent 6658564bdd
commit cd6b6e4934
71 changed files with 1442 additions and 43 deletions
@@ -0,0 +1,11 @@
package test
import test.foo
fun <caret>foo() {
}
class B {
}
@@ -0,0 +1,5 @@
package test
class B {
}
@@ -0,0 +1,11 @@
package test
import test.foo
fun <caret>foo() {
}
class B {
val ref = ::foo
}
@@ -0,0 +1,2 @@
Function foo has 1 usage that is not safe to delete.
Of those 0 usages are in strings, comments, or non-code files.
@@ -0,0 +1,9 @@
trait A {
fun foo()
}
class B: A {
override fun <caret>foo() {
}
}
@@ -0,0 +1 @@
fun foo(): jet.Unit in final class B : A implements fun foo(): jet.Unit in trait A.
@@ -0,0 +1,13 @@
trait A {
fun foo()
}
trait Z {
fun foo()
}
class B: A, Z {
override fun <caret>foo() {
}
}
@@ -0,0 +1,2 @@
fun foo(): jet.Unit in final class B : A, Z implements fun foo(): jet.Unit in trait A.
fun foo(): jet.Unit in final class B : A, Z implements fun foo(): jet.Unit in trait Z.
@@ -0,0 +1,7 @@
class C {
fun <caret>foo {
}
}
class B {
}
@@ -0,0 +1,5 @@
class C {
}
class B {
}
@@ -0,0 +1,11 @@
open class A {
open fun foo() {
}
}
class B: A {
override fun <caret>foo() {
}
}
@@ -0,0 +1,8 @@
open class A {
open fun foo() {
}
}
class B: A {
}
@@ -0,0 +1,11 @@
open class A {
open fun <caret>foo() {
}
}
class B: A {
override fun foo() {
}
}
@@ -0,0 +1,5 @@
open class A {
}
class B: A {
}
@@ -0,0 +1,15 @@
open class A {
open fun foo() {
}
}
trait Z {
fun foo()
}
class B: A, Z {
override fun <caret>foo() {
}
}
@@ -0,0 +1 @@
fun foo(): jet.Unit in final class B : A, Z implements fun foo(): jet.Unit in trait Z.
@@ -0,0 +1,15 @@
open class A {
open fun <caret>foo() {
}
}
trait Z {
fun foo()
}
class B: A, Z {
override fun foo() {
}
}
@@ -0,0 +1,12 @@
open class A {
}
trait Z {
fun foo()
}
class B: A, Z {
override fun foo() {
}
}
@@ -0,0 +1,15 @@
open class A {
open fun <caret>foo() {
}
}
class B: A {
fun bar() {
foo()
}
override fun foo() {
}
}
@@ -0,0 +1,12 @@
open class A {
}
class B: A {
fun bar() {
foo()
}
fun foo() {
}
}