FIR checker: report PROPERTY_AS_OPERATOR

This commit is contained in:
Tianyu Geng
2021-08-31 16:57:18 -07:00
committed by Mikhail Glukhikh
parent 4915d8dda3
commit 05fbed68e2
21 changed files with 154 additions and 27 deletions
@@ -73,19 +73,44 @@ class Arifm() {
operator fun invoke(i: Int) {}
}
class Contains() {
operator fun invoke(i: Int): Boolean = true
}
class Getter() {
operator fun invoke(i: Int): Int = 1
}
class Setter() {
operator fun invoke(i: Int, j: Int) {}
}
class Unary<B>() {
operator fun invoke(): B = TODO()
}
class B() {
val plus = Arifm()
val minus = Arifm()
val compareTo = Comp()
val contains = Contains()
val get = Getter()
val set = Setter()
val unaryPlus = Unary<B>()
}
fun case3() {
var b = B()
b + 5
b - 5
b < 5
b >= 5
b <!PROPERTY_AS_OPERATOR!>+<!> 5
b <!PROPERTY_AS_OPERATOR!>-<!> 5
b <!PROPERTY_AS_OPERATOR!><<!> 5
b <!PROPERTY_AS_OPERATOR!>>=<!> 5
1 <!PROPERTY_AS_OPERATOR!>in<!> b
<!PROPERTY_AS_OPERATOR!>b[2]<!>
<!PROPERTY_AS_OPERATOR!>b[3]<!> = 4
<!PROPERTY_AS_OPERATOR!>+<!>b
}
// FILE: TestCase4.kt
/*
* TESTCASE NUMBER: 4
@@ -102,8 +127,8 @@ class B(val minusAssign: Assign = Assign()) {
fun case3() {
var b = B()
b += 2
b -= 3
b <!PROPERTY_AS_OPERATOR!>+=<!> 2
b <!PROPERTY_AS_OPERATOR!>-=<!> 3
}
// FILE: TestCase5.kt
@@ -142,7 +167,7 @@ class B(var a: Int = 0) {
val plus :E =TODO()
fun foo(b: B){
this + 1
this <!PROPERTY_AS_OPERATOR!>+<!> 1
}
operator fun invoke(value: Int) = B()
@@ -82,10 +82,30 @@ class Arifm() {
operator fun invoke(i: Int) {}
}
class Contains() {
operator fun invoke(i: Int): Boolean = true
}
class Getter() {
operator fun invoke(i: Int): Int = 1
}
class Setter() {
operator fun invoke(i: Int, j: Int) {}
}
class Unary<B>() {
operator fun invoke(): B = TODO()
}
class B() {
val plus = Arifm()
val minus = Arifm()
val compareTo = Comp()
val contains = Contains()
val get = Getter()
val set = Setter()
val unaryPlus = Unary<B>()
}
fun case3() {
@@ -94,7 +114,12 @@ fun case3() {
b <!PROPERTY_AS_OPERATOR!>-<!> 5
b <!PROPERTY_AS_OPERATOR!><<!> 5
b <!PROPERTY_AS_OPERATOR!>>=<!> 5
1 <!PROPERTY_AS_OPERATOR!>in<!> b
<!PROPERTY_AS_OPERATOR!>b[2]<!>
<!PROPERTY_AS_OPERATOR!>b[3]<!> = 4
<!PROPERTY_AS_OPERATOR!>+<!>b
}
// FILE: TestCase4.kt
/*
* TESTCASE NUMBER: 4
@@ -21,7 +21,7 @@ class B() {
fun case7(){
var b =B()
<!ASSIGN_OPERATOR_AMBIGUITY!>b+=1<!> //ASSIGN_OPERATOR_AMBIGUITY
this += 1 //ASSIGNMENT_OPERATOR_SHOULD_RETURN_UNIT, PROPERTY_AS_OPERATOR
this <!PROPERTY_AS_OPERATOR!>+=<!> 1 //ASSIGNMENT_OPERATOR_SHOULD_RETURN_UNIT, PROPERTY_AS_OPERATOR
}
}