Files
kotlin-fork/idea/testData/codeInsight/lineMarker/recursiveCall/conventionCall.kt
T
Nicolay Mitropolsky dd45780de9 RecursiveMethodCallMarkerInfo and SuspendCallMarkerInfo forced to target Leaf-elements
because of restriction added in IDEA 173
2018-01-12 13:53:45 +03:00

52 lines
1.3 KiB
Kotlin
Vendored

operator fun Any.get(a: Int) {
if (a > 0) {
<lineMarker descr="Recursive call">this</lineMarker>[a - 1]
}
}
class A {
override fun <lineMarker descr="Overrides function in 'Any'">equals</lineMarker>(other: Any?): Boolean {
this <lineMarker descr="Recursive call">==</lineMarker> other
return true
}
operator fun inc(): A {
this<lineMarker descr="Recursive call">++</lineMarker>
<lineMarker descr="Recursive call">++</lineMarker>this
return this
}
operator fun component1(): Int {
// TODO: should be recursion marker too
val (a) = this
return 1
}
operator fun unaryPlus() {
<lineMarker descr="Recursive call">+</lineMarker>this
}
operator fun unaryMinus() {
<lineMarker descr="Recursive call">-</lineMarker>this
}
operator fun plus(a: Int) {
this <lineMarker descr="Recursive call">+</lineMarker> 1
this += 1
}
operator fun invoke() {
val a = A()
a()
a.invoke()
this.<lineMarker descr="Recursive call">invoke</lineMarker>()
<lineMarker descr="Recursive call">this</lineMarker>()
}
}
class B
operator fun B.invoke() {
<lineMarker descr="Recursive call">this</lineMarker>()
<lineMarker descr="Recursive call">invoke</lineMarker>()
}