Misc: Support light-methodless members in overrider search

In particular, support line markers for expect-class members
and navigation to expect-class members from corresponding base members
This commit is contained in:
Alexey Sedunov
2017-09-27 13:29:58 +03:00
parent 17abce2811
commit 4cc1e22a5a
22 changed files with 292 additions and 86 deletions
@@ -3,5 +3,5 @@ enum class SampleEnum {
override fun <lineMarker descr="Overrides function in 'SampleEnum'">any</lineMarker>() { super.any() }
};
open fun <lineMarker descr="<html><body>Is overridden in <br>&nbsp;&nbsp;&nbsp;&nbsp;Enum constant 'V1' in 'SampleEnum'</body></html>">any</lineMarker>() {}
open fun <lineMarker descr="<html><body>Is overridden in <br>&nbsp;&nbsp;&nbsp;&nbsp;SampleEnum.V1</body></html>">any</lineMarker>() {}
}
@@ -1,9 +1,21 @@
package test
open class <lineMarker>SimpleParent</lineMarker>
open class <lineMarker>SimpleParent</lineMarker> {
open fun <lineMarker>foo</lineMarker>(n: Int) {}
open val <lineMarker>bar</lineMarker>: Int get() = 1
}
expect open class <lineMarker><lineMarker>ExpectedChild</lineMarker></lineMarker> : SimpleParent
expect open class <lineMarker><lineMarker>ExpectedChild</lineMarker></lineMarker> : SimpleParent {
override fun <lineMarker><lineMarker>foo</lineMarker></lineMarker>(n: Int)
override val <lineMarker><lineMarker>bar</lineMarker></lineMarker>: Int
}
class ExpectedChildChild : ExpectedChild()
class ExpectedChildChild : ExpectedChild() {
override fun <lineMarker>foo</lineMarker>(n: Int) {}
override val <lineMarker>bar</lineMarker>: Int get() = 1
}
class SimpleChild : SimpleParent()
class SimpleChild : SimpleParent() {
override fun <lineMarker>foo</lineMarker>(n: Int) {}
override val <lineMarker>bar</lineMarker>: Int get() = 1
}
@@ -2,6 +2,12 @@
package test
actual open class ExpectedChild : SimpleParent()
actual open class ExpectedChild : SimpleParent() {
actual override fun foo(n: Int) {}
actual override val bar: Int get() = 1
}
class ExpectedChildChildJvm : ExpectedChild()
class ExpectedChildChildJvm : ExpectedChild() {
override fun foo(n: Int) {}
override val bar: Int get() = 1
}
@@ -2,10 +2,22 @@
package test
open class <caret>SimpleParent
open class SimpleParent {
open fun foo(n: Int) {}
open val bar: Int get() = 1
}
expect open class ExpectedChild : SimpleParent
expect open class ExpectedChild : SimpleParent {
override fun foo(n: Int)
override val bar: Int
}
class ExpectedChildChild : ExpectedChild()
class ExpectedChildChild : ExpectedChild() {
override fun foo(n: Int) {}
override val bar: Int get() = 1
}
class SimpleChild : SimpleParent()
class SimpleChild : SimpleParent() {
override fun foo(n: Int) {}
override val bar: Int get() = 1
}
@@ -1,5 +1,11 @@
package test
actual open class <lineMarker><lineMarker>ExpectedChild</lineMarker></lineMarker> : SimpleParent()
actual open class <lineMarker><lineMarker>ExpectedChild</lineMarker></lineMarker> : SimpleParent() {
actual override fun <lineMarker><lineMarker><lineMarker>foo</lineMarker></lineMarker></lineMarker>(n: Int) {}
actual override val <lineMarker><lineMarker><lineMarker>bar</lineMarker></lineMarker></lineMarker>: Int get() = 1
}
class ExpectedChildChildJvm : ExpectedChild()
class ExpectedChildChildJvm : ExpectedChild() {
override fun <lineMarker>foo</lineMarker>(n: Int) {}
override val <lineMarker>bar</lineMarker>: Int get() = 1
}
@@ -0,0 +1,20 @@
package test
open class SimpleParent {
open fun foo(n: Int) {}
}
expect open class ExpectedChild : SimpleParent {
override fun <caret>foo(n: Int)
}
class ExpectedChildChild : ExpectedChild() {
override fun foo(n: Int) {}
}
class SimpleChild : SimpleParent() {
override fun foo(n: Int) {}
}
// REF: [common] (in test.ExpectedChildChild).foo(Int)
// REF: [jvm] (in test.ExpectedChildChildJvm).foo(Int)
@@ -0,0 +1,9 @@
package test
actual open class ExpectedChild : SimpleParent() {
actual override fun foo(n: Int) {}
}
class ExpectedChildChildJvm : ExpectedChild() {
override fun foo(n: Int) {}
}
@@ -0,0 +1,20 @@
package test
open class SimpleParent {
open val bar: Int get() = 1
}
expect open class ExpectedChild : SimpleParent {
override val <caret>bar: Int
}
class ExpectedChildChild : ExpectedChild() {
override val bar: Int get() = 1
}
class SimpleChild : SimpleParent() {
override val bar: Int get() = 1
}
// REF: [common] (in test.ExpectedChildChild).bar
// REF: [jvm] (in test.ExpectedChildChildJvm).bar
@@ -0,0 +1,9 @@
package test
actual open class ExpectedChild : SimpleParent() {
actual override val bar: Int get() = 1
}
class ExpectedChildChildJvm : ExpectedChild() {
override val bar: Int get() = 1
}
@@ -0,0 +1,23 @@
package test
open class SimpleParent {
open fun <caret>foo(n: Int) {}
}
expect open class ExpectedChild : SimpleParent {
override fun foo(n: Int)
}
class ExpectedChildChild : ExpectedChild() {
override fun foo(n: Int) {}
}
class SimpleChild : SimpleParent() {
override fun foo(n: Int) {}
}
// REF: [common] (in test.ExpectedChild).foo(Int)
// REF: [common] (in test.ExpectedChildChild).foo(Int)
// REF: [common] (in test.SimpleChild).foo(Int)
// REF: [jvm] (in test.ExpectedChild).foo(Int)
// REF: [jvm] (in test.ExpectedChildChildJvm).foo(Int)
@@ -0,0 +1,9 @@
package test
actual open class ExpectedChild : SimpleParent() {
actual override fun foo(n: Int) {}
}
class ExpectedChildChildJvm : ExpectedChild() {
override fun foo(n: Int) {}
}
@@ -0,0 +1,23 @@
package test
open class SimpleParent {
open val <caret>bar: Int get() = 1
}
expect open class ExpectedChild : SimpleParent {
override val bar: Int
}
class ExpectedChildChild : ExpectedChild() {
override val bar: Int get() = 1
}
class SimpleChild : SimpleParent() {
override val bar: Int get() = 1
}
// REF: [common] (in test.ExpectedChild).bar
// REF: [common] (in test.ExpectedChildChild).bar
// REF: [common] (in test.SimpleChild).bar
// REF: [jvm] (in test.ExpectedChild).bar
// REF: [jvm] (in test.ExpectedChildChildJvm).bar
@@ -0,0 +1,9 @@
package test
actual open class ExpectedChild : SimpleParent() {
actual override val bar: Int get() = 1
}
class ExpectedChildChildJvm : ExpectedChild() {
override val bar: Int get() = 1
}