Add replacement intentions for operator functions

Add intentions for replacing attribute calls that correspond to
overloadable operators with their respective operators.

This commit includes call replacements for:
 * Binary Infix Operators: plus, minus, times, rangeTo, mod, div
 * Unary Prefix Operators: plus, minus, not
 * Array Index Operator: get
 * In Operator: contains
This commit is contained in:
Steven Allen
2014-02-27 15:57:51 -05:00
parent 08a8d17e97
commit 84a8911822
152 changed files with 1922 additions and 1 deletions
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun plus(a: Int, vararg b: Int, c: Int = 0) : Int = 0
}
val test = Test()
test.p<caret>lus(1)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun plus(a: Int, vararg b: Int, c: Int = 0) : Int = 0
}
val test = Test()
test + 1
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun plus(vararg b: Int, c: Int = 0) : Int = 0
}
val test = Test()
test.p<caret>lus(1)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun plus(vararg b: Int, c: Int = 0) : Int = 0
}
val test = Test()
test + 1
}
@@ -0,0 +1,7 @@
fun test() {
class Test {
fun plus(a: Int, b: Int=5): Test = Test()
}
val test = Test()
test.pl<caret>us(1)
}
@@ -0,0 +1,7 @@
fun test() {
class Test {
fun plus(a: Int, b: Int=5): Test = Test()
}
val test = Test()
test + 1
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '/' operator
fun test() {
class Test {
fun div(a: Int): Test = Test()
}
val test = Test()
test.div<caret>(1)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '/' operator
fun test() {
class Test {
fun div(a: Int): Test = Test()
}
val test = Test()
test / 1
}
@@ -0,0 +1,6 @@
fun test() {
class Test()
fun Test.div(a: Int): Test = Test()
val test = Test()
test.div<caret>(1)
}
@@ -0,0 +1,6 @@
fun test() {
class Test()
fun Test.div(a: Int): Test = Test()
val test = Test()
test / 1
}
@@ -0,0 +1,9 @@
fun test() {
class Test {
fun plus(fn: () -> Test): Test = fn()
}
val test = Test()
test.pl<caret>us {
Test()
}
}
@@ -0,0 +1,9 @@
fun test() {
class Test {
fun plus(fn: () -> Test): Test = fn()
}
val test = Test()
test + {
Test()
}
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '-' operator
fun test() {
class Test {
fun minus(a: Int): Test = Test()
}
val test = Test()
test.min<caret>us(1)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '-' operator
fun test() {
class Test {
fun minus(a: Int): Test = Test()
}
val test = Test()
test - 1
}
@@ -0,0 +1,8 @@
// SHOULD_FAIL_WITH: skipped.defaults
fun test() {
class Test{
fun plus(a: Int=1, b: Int=2) : Int = 0
}
val test = Test()
test.p<caret>lus(b=3)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '%' operator
fun test() {
class Test {
fun mod(a: Int): Test = Test()
}
val test = Test()
test.mod<caret>(1)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '%' operator
fun test() {
class Test {
fun mod(a: Int): Test = Test()
}
val test = Test()
test % 1
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
fun test() {
class Test {
fun plus(a: Int, b: Int): Test = Test()
}
val test = Test()
test.pl<caret>us(1, 2)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '+' operator
fun test() {
class Test {
fun plus(a: Int): Test = Test()
}
val test = Test()
test.pl<caret>us(1)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '+' operator
fun test() {
class Test {
fun plus(a: Int): Test = Test()
}
val test = Test()
test + 1
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '..' operator
fun test() {
class Test {
fun rangeTo(a: Int): Test = Test()
}
val test = Test()
test.rangeTo<caret>(1)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '..' operator
fun test() {
class Test {
fun rangeTo(a: Int): Test = Test()
}
val test = Test()
test..1
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '*' operator
fun test() {
class Test {
fun times(a: Int): Test = Test()
}
val test = Test()
test.time<caret>s(1)
}
@@ -0,0 +1,8 @@
// INTENTION_TEXT: Replace with '*' operator
fun test() {
class Test {
fun times(a: Int): Test = Test()
}
val test = Test()
test * 1
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
fun test() {
class Test {
fun div<T>(a: Test): T? = a as? T
}
val test = Test()
test.div<caret><Int>(Test())
}
@@ -0,0 +1,8 @@
// SHOULD_FAIL_WITH: vararg.not.last
fun test() {
class Test{
fun plus(vararg b: Int, c: Int = 0): Int = 0
}
val test = Test()
test.plus<caret>(c=5)
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
fun test() {
class Test{
fun plus(vararg b: Int, c: Int = 0): Int = 0
}
val test = Test()
test.plus<caret>(0, 1)
}
@@ -0,0 +1,7 @@
fun test() {
class Test {
fun plus(a: Int): Test = Test()
}
val test = Test()
test.pl<caret>us(a=1)
}
@@ -0,0 +1,7 @@
fun test() {
class Test {
fun plus(a: Int): Test = Test()
}
val test = Test()
test + 1
}