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 get(a: Int, vararg b: Int, c: Int = 0) : Int = 0
}
val test = Test()
test.g<caret>et(1, 3, 4, 5)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(a: Int, vararg b: Int, c: Int = 0) : Int = 0
}
val test = Test()
test[1, 3, 4, 5]
}
@@ -0,0 +1,9 @@
fun test() {
class Test{
fun get(a: Int, b: Int, fn: (i: Int) -> Int) : Int = 0
}
val test = Test()
test.g<caret>et(1, 2) { i ->
i
}
}
@@ -0,0 +1,9 @@
fun test() {
class Test{
fun get(a: Int, b: Int, fn: (i: Int) -> Int) : Int = 0
}
val test = Test()
test[1, 2, { i ->
i
}]
}
@@ -0,0 +1,8 @@
// SHOULD_FAIL_WITH: duplicate.or.missing.arguments
fun test() {
class Test{
fun get(a: Int, b: Int) : Int = 0
}
val test = Test()
test.g<caret>et(a=0, a=1)
}
@@ -0,0 +1,7 @@
fun test() {
class Test()
fun Test.get(i: Int) : Int = 0
val test = Test()
test.g<caret>et(0)
}
@@ -0,0 +1,7 @@
fun test() {
class Test()
fun Test.get(i: Int) : Int = 0
val test = Test()
test[0]
}
@@ -0,0 +1,9 @@
fun test() {
class Test{
fun get(fn: (i: Int) -> Int) : Int = 0
}
val test = Test()
test.g<caret>et() { i ->
i
}
}
@@ -0,0 +1,9 @@
fun test() {
class Test{
fun get(fn: (i: Int) -> Int) : Int = 0
}
val test = Test()
test[{ i ->
i
}]
}
@@ -0,0 +1,8 @@
// SHOULD_FAIL_WITH: invalid.arguments
fun test() {
class Test{
fun get(a: Int=1, b: Int=2) : Int = 0
}
val test = Test()
test.g<caret>et(c=3)
}
@@ -0,0 +1,8 @@
// SHOULD_FAIL_WITH: duplicate.or.missing.arguments
fun test() {
class Test{
fun get(a: Int, b: Int) : Int = 0
}
val test = Test()
test.g<caret>et(0)
}
@@ -0,0 +1,8 @@
// SHOULD_FAIL_WITH: skipped.defaults
fun test() {
class Test{
fun get(a: Int=1, b: Int=2) : Int = 0
}
val test = Test()
test.g<caret>et(b=3)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(a: Int, b: Int) : Int = 0
}
val test = Test()
test.g<caret>et(1, 2)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(a: Int, b: Int) : Int = 0
}
val test = Test()
test[1, 2]
}
@@ -0,0 +1,9 @@
fun test() {
class Test{
fun get(a: Int, b: Int, c: Int = 1, d: Int = 1 fn: (i: Int) -> Int) : Int = 0
}
val test = Test()
test.g<caret>et(1, c=3, b=2) { i ->
i
}
}
@@ -0,0 +1,9 @@
fun test() {
class Test{
fun get(a: Int, b: Int, c: Int = 1, d: Int = 1 fn: (i: Int) -> Int) : Int = 0
}
val test = Test()
test[1, 2, 3, { i ->
i
}]
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
fun test() {
class Test{
fun get() : Int = 0
}
val test = Test()
test.g<caret>et()
}
@@ -0,0 +1,8 @@
// IS_APPLICABLE: false
fun test() {
class Test{
fun get(i: Int) : Int = 0
}
val test = Test()
test.g<caret>ot(0)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(i: Int) : Int = 0
}
val test = Test()
test.g<caret>et(0)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(i: Int) : Int = 0
}
val test = Test()
test[0]
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(a: Int) : Int = 0
}
val test = Test()
test.g<caret>et(a=1)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(a: Int) : Int = 0
}
val test = Test()
test[1]
}
@@ -0,0 +1,8 @@
// SHOULD_FAIL_WITH: vararg.not.last
fun test() {
class Test{
fun get(a: Int, vararg b: Int, c: Int = 0) : Int = 0
}
val test = Test()
test.g<caret>et(1, 3, 4, c=5)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(a: Int = 0, b: Int = 1, c: Int = 2, d: Int = 3) : Int = 0
}
val test = Test()
test.g<caret>et(1, c=3, b=2)
}
@@ -0,0 +1,7 @@
fun test() {
class Test{
fun get(a: Int = 0, b: Int = 1, c: Int = 2, d: Int = 3) : Int = 0
}
val test = Test()
test[1, 2, 3]
}