Cleanup: KotlinLineMarkerProvider
This commit is contained in:
+23
-17
@@ -101,6 +101,7 @@ private val OVERRIDDEN_MARK: Icon = AllIcons.Gutter.OverridenMethod
|
|||||||
private val IMPLEMENTED_MARK: Icon = AllIcons.Gutter.ImplementedMethod
|
private val IMPLEMENTED_MARK: Icon = AllIcons.Gutter.ImplementedMethod
|
||||||
|
|
||||||
private val SUBCLASSED_CLASS = MarkerType(
|
private val SUBCLASSED_CLASS = MarkerType(
|
||||||
|
"SUBCLASSED_CLASS",
|
||||||
{ getPsiClass(it)?.let { MarkerType.getSubclassedClassTooltip(it) } },
|
{ getPsiClass(it)?.let { MarkerType.getSubclassedClassTooltip(it) } },
|
||||||
object : LineMarkerNavigator() {
|
object : LineMarkerNavigator() {
|
||||||
override fun browse(e: MouseEvent?, element: PsiElement?) {
|
override fun browse(e: MouseEvent?, element: PsiElement?) {
|
||||||
@@ -109,7 +110,8 @@ private val SUBCLASSED_CLASS = MarkerType(
|
|||||||
})
|
})
|
||||||
|
|
||||||
private val OVERRIDDEN_FUNCTION = MarkerType(
|
private val OVERRIDDEN_FUNCTION = MarkerType(
|
||||||
{ getPsiMethod(it)?.let { getOverriddenMethodTooltip(it) } },
|
"OVERRIDDEN_FUNCTION",
|
||||||
|
{ getPsiMethod(it)?.let(::getOverriddenMethodTooltip) },
|
||||||
object : LineMarkerNavigator() {
|
object : LineMarkerNavigator() {
|
||||||
override fun browse(e: MouseEvent?, element: PsiElement?) {
|
override fun browse(e: MouseEvent?, element: PsiElement?) {
|
||||||
getPsiMethod(element)?.let { navigateToOverriddenMethod(e, it) }
|
getPsiMethod(element)?.let { navigateToOverriddenMethod(e, it) }
|
||||||
@@ -117,6 +119,7 @@ private val OVERRIDDEN_FUNCTION = MarkerType(
|
|||||||
})
|
})
|
||||||
|
|
||||||
private val OVERRIDDEN_PROPERTY = MarkerType(
|
private val OVERRIDDEN_PROPERTY = MarkerType(
|
||||||
|
"OVERRIDDEN_PROPERTY",
|
||||||
{ it?.let { getOverriddenPropertyTooltip(it.parent as KtNamedDeclaration) } },
|
{ it?.let { getOverriddenPropertyTooltip(it.parent as KtNamedDeclaration) } },
|
||||||
object : LineMarkerNavigator() {
|
object : LineMarkerNavigator() {
|
||||||
override fun browse(e: MouseEvent?, element: PsiElement?) {
|
override fun browse(e: MouseEvent?, element: PsiElement?) {
|
||||||
@@ -158,18 +161,20 @@ private fun collectSuperDeclarationMarkers(declaration: KtDeclaration, result: M
|
|||||||
|
|
||||||
val implements = isImplementsAndNotOverrides(resolveWithParents.descriptor!!, resolveWithParents.overriddenDescriptors)
|
val implements = isImplementsAndNotOverrides(resolveWithParents.descriptor!!, resolveWithParents.overriddenDescriptors)
|
||||||
|
|
||||||
|
val anchor = (declaration as? KtNamedDeclaration)?.nameIdentifier ?: declaration
|
||||||
|
|
||||||
// NOTE: Don't store descriptors in line markers because line markers are not deleted while editing other files and this can prevent
|
// NOTE: Don't store descriptors in line markers because line markers are not deleted while editing other files and this can prevent
|
||||||
// clearing the whole BindingTrace.
|
// clearing the whole BindingTrace.
|
||||||
val marker = LineMarkerInfo(
|
|
||||||
declaration,
|
|
||||||
declaration.textOffset,
|
|
||||||
if (implements) IMPLEMENTING_MARK else OVERRIDING_MARK,
|
|
||||||
Pass.UPDATE_OVERRIDEN_MARKERS,
|
|
||||||
SuperDeclarationMarkerTooltip,
|
|
||||||
SuperDeclarationMarkerNavigationHandler()
|
|
||||||
)
|
|
||||||
|
|
||||||
result.add(marker)
|
result.add(LineMarkerInfo(
|
||||||
|
declaration,
|
||||||
|
anchor.textRange,
|
||||||
|
if (implements) IMPLEMENTING_MARK else OVERRIDING_MARK,
|
||||||
|
Pass.UPDATE_OVERRIDDEN_MARKERS,
|
||||||
|
SuperDeclarationMarkerTooltip,
|
||||||
|
SuperDeclarationMarkerNavigationHandler(),
|
||||||
|
GutterIconRenderer.Alignment.RIGHT
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun collectInheritedClassMarker(element: KtClass, result: MutableCollection<LineMarkerInfo<*>>) {
|
private fun collectInheritedClassMarker(element: KtClass, result: MutableCollection<LineMarkerInfo<*>>) {
|
||||||
@@ -186,11 +191,12 @@ private fun collectInheritedClassMarker(element: KtClass, result: MutableCollect
|
|||||||
|
|
||||||
result.add(LineMarkerInfo(
|
result.add(LineMarkerInfo(
|
||||||
anchor,
|
anchor,
|
||||||
anchor.textOffset,
|
anchor.textRange,
|
||||||
if (isTrait) IMPLEMENTED_MARK else OVERRIDDEN_MARK,
|
if (isTrait) IMPLEMENTED_MARK else OVERRIDDEN_MARK,
|
||||||
Pass.UPDATE_OVERRIDEN_MARKERS,
|
Pass.UPDATE_OVERRIDDEN_MARKERS,
|
||||||
SUBCLASSED_CLASS.tooltip,
|
SUBCLASSED_CLASS.tooltip,
|
||||||
SUBCLASSED_CLASS.navigationHandler
|
SUBCLASSED_CLASS.navigationHandler,
|
||||||
|
GutterIconRenderer.Alignment.RIGHT
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,9 +222,9 @@ private fun collectOverriddenPropertyAccessors(properties: Collection<KtNamedDec
|
|||||||
|
|
||||||
result.add(LineMarkerInfo(
|
result.add(LineMarkerInfo(
|
||||||
anchor,
|
anchor,
|
||||||
anchor.textOffset,
|
anchor.textRange,
|
||||||
if (isImplemented(property)) IMPLEMENTED_MARK else OVERRIDDEN_MARK,
|
if (isImplemented(property)) IMPLEMENTED_MARK else OVERRIDDEN_MARK,
|
||||||
Pass.UPDATE_OVERRIDEN_MARKERS,
|
Pass.UPDATE_OVERRIDDEN_MARKERS,
|
||||||
OVERRIDDEN_PROPERTY.tooltip,
|
OVERRIDDEN_PROPERTY.tooltip,
|
||||||
OVERRIDDEN_PROPERTY.navigationHandler,
|
OVERRIDDEN_PROPERTY.navigationHandler,
|
||||||
GutterIconRenderer.Alignment.RIGHT
|
GutterIconRenderer.Alignment.RIGHT
|
||||||
@@ -296,9 +302,9 @@ private fun collectOverriddenFunctions(functions: Collection<KtNamedFunction>, r
|
|||||||
|
|
||||||
result.add(LineMarkerInfo(
|
result.add(LineMarkerInfo(
|
||||||
anchor,
|
anchor,
|
||||||
anchor.textOffset,
|
anchor.textRange,
|
||||||
if (isImplemented(function)) IMPLEMENTED_MARK else OVERRIDDEN_MARK,
|
if (isImplemented(function)) IMPLEMENTED_MARK else OVERRIDDEN_MARK,
|
||||||
Pass.UPDATE_OVERRIDEN_MARKERS, OVERRIDDEN_FUNCTION.tooltip,
|
Pass.UPDATE_OVERRIDDEN_MARKERS, OVERRIDDEN_FUNCTION.tooltip,
|
||||||
OVERRIDDEN_FUNCTION.navigationHandler,
|
OVERRIDDEN_FUNCTION.navigationHandler,
|
||||||
GutterIconRenderer.Alignment.RIGHT
|
GutterIconRenderer.Alignment.RIGHT
|
||||||
))
|
))
|
||||||
|
|||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
interface <lineMarker></lineMarker>Hi {
|
interface <lineMarker>Hi</lineMarker> {
|
||||||
fun <lineMarker></lineMarker>foo(): Int
|
fun <lineMarker>foo</lineMarker>(): Int
|
||||||
}
|
}
|
||||||
|
|
||||||
// Closing brace is intentionally missed
|
// Closing brace is intentionally missed
|
||||||
val id = array("kotlin.FlexibleType"
|
val id = array("kotlin.FlexibleType"
|
||||||
|
|
||||||
private class Some(): Hi {
|
private class Some(): Hi {
|
||||||
override fun <lineMarker></lineMarker>foo() = 1
|
override fun <lineMarker>foo</lineMarker>() = 1
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
open class <lineMarker></lineMarker>A {
|
open class <lineMarker>A</lineMarker> {
|
||||||
open fun <lineMarker></lineMarker>a(){
|
open fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class B:A(){
|
class B:A(){
|
||||||
override fun <lineMarker></lineMarker>a(){
|
override fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+3
-3
@@ -1,11 +1,11 @@
|
|||||||
interface <lineMarker></lineMarker>TestTrait {
|
interface <lineMarker>TestTrait</lineMarker> {
|
||||||
fun <lineMarker></lineMarker>test()
|
fun <lineMarker>test</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
class A {
|
class A {
|
||||||
class B {
|
class B {
|
||||||
companion object : TestTrait { // TODO: No line marker
|
companion object : TestTrait { // TODO: No line marker
|
||||||
override fun <lineMarker descr="Implements function in 'TestTrait'"></lineMarker>test() {
|
override fun <lineMarker descr="Implements function in 'TestTrait'">test</lineMarker>() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
interface <lineMarker></lineMarker>A {
|
interface <lineMarker>A</lineMarker> {
|
||||||
fun <lineMarker></lineMarker>f() {
|
fun <lineMarker>f</lineMarker>() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>B : A
|
interface <lineMarker>B</lineMarker> : A
|
||||||
|
|
||||||
open class <lineMarker></lineMarker>C(b : B) : B by b, A {
|
open class <lineMarker>C</lineMarker>(b : B) : B by b, A {
|
||||||
}
|
}
|
||||||
|
|
||||||
class D(b : B) : C(b) {
|
class D(b : B) : C(b) {
|
||||||
override fun <lineMarker descr="Overrides function in 'A'"></lineMarker>f() {}
|
override fun <lineMarker descr="Overrides function in 'A'">f</lineMarker>() {}
|
||||||
}
|
}
|
||||||
+5
-5
@@ -1,13 +1,13 @@
|
|||||||
interface <lineMarker></lineMarker>A {
|
interface <lineMarker>A</lineMarker> {
|
||||||
val <lineMarker></lineMarker>f: Int
|
val <lineMarker>f</lineMarker>: Int
|
||||||
get() = 3
|
get() = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>B : A
|
interface <lineMarker>B</lineMarker> : A
|
||||||
|
|
||||||
open class <lineMarker></lineMarker>C(b : B) : B by b, A {
|
open class <lineMarker>C</lineMarker>(b : B) : B by b, A {
|
||||||
}
|
}
|
||||||
|
|
||||||
class D(b : B) : C(b) {
|
class D(b : B) : C(b) {
|
||||||
override val <lineMarker descr="Overrides property in 'A'"></lineMarker>f: Int = 2
|
override val <lineMarker descr="Overrides property in 'A'">f</lineMarker>: Int = 2
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
enum class SampleEnum {
|
enum class SampleEnum {
|
||||||
V1 {
|
V1 {
|
||||||
override fun <lineMarker descr="Overrides function in 'SampleEnum'"></lineMarker>any() { super.any() }
|
override fun <lineMarker descr="Overrides function in 'SampleEnum'">any</lineMarker>() { super.any() }
|
||||||
};
|
};
|
||||||
|
|
||||||
open fun <lineMarker descr="<html><body>Is overridden in <br> Enum constant 'V1' in 'SampleEnum'</body></html>"></lineMarker>any() {}
|
open fun <lineMarker descr="<html><body>Is overridden in <br> Enum constant 'V1' in 'SampleEnum'</body></html>">any</lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -1,25 +1,25 @@
|
|||||||
package sample
|
package sample
|
||||||
|
|
||||||
interface <lineMarker descr="*"></lineMarker>S<T> {
|
interface <lineMarker descr="*">S</lineMarker><T> {
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> sample.S2</body></html>"></lineMarker>foo(t: T): T
|
fun <lineMarker descr="<html><body>Is implemented in <br> sample.S2</body></html>">foo</lineMarker>(t: T): T
|
||||||
|
|
||||||
val <lineMarker descr="<html><body>Is implemented in <br/> sample.S2</body></html>"></lineMarker>some: T? get
|
val <lineMarker descr="<html><body>Is implemented in <br/> sample.S2</body></html>">some</lineMarker>: T? get
|
||||||
|
|
||||||
var <lineMarker descr="<html><body>Is implemented in <br/> sample.S2</body></html>"></lineMarker>other: T?
|
var <lineMarker descr="<html><body>Is implemented in <br/> sample.S2</body></html>">other</lineMarker>: T?
|
||||||
get
|
get
|
||||||
set
|
set
|
||||||
}
|
}
|
||||||
|
|
||||||
open abstract class <lineMarker descr="*"></lineMarker>S1 : S<String>
|
open abstract class <lineMarker descr="*">S1</lineMarker> : S<String>
|
||||||
|
|
||||||
class S2 : S1() {
|
class S2 : S1() {
|
||||||
override val <lineMarker descr="Implements property in 'S<T>'"></lineMarker>some: String = "S"
|
override val <lineMarker descr="Implements property in 'S<T>'">some</lineMarker>: String = "S"
|
||||||
|
|
||||||
override var <lineMarker descr="Implements property in 'S<T>'"></lineMarker>other: String?
|
override var <lineMarker descr="Implements property in 'S<T>'">other</lineMarker>: String?
|
||||||
get() = null
|
get() = null
|
||||||
set(value) {}
|
set(value) {}
|
||||||
|
|
||||||
override fun <lineMarker descr="Implements function in 'S<T>'"></lineMarker>foo(t: String): String {
|
override fun <lineMarker descr="Implements function in 'S<T>'">foo</lineMarker>(t: String): String {
|
||||||
return super<S1>.foo(t)
|
return super<S1>.foo(t)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
interface <lineMarker></lineMarker>A {
|
interface <lineMarker>A</lineMarker> {
|
||||||
fun <lineMarker></lineMarker>f() {}
|
fun <lineMarker>f</lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>B : A
|
interface <lineMarker>B</lineMarker> : A
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>C : B, A
|
interface <lineMarker>C</lineMarker> : B, A
|
||||||
|
|
||||||
class SomeClass() : C {
|
class SomeClass() : C {
|
||||||
override fun <lineMarker descr="Overrides function in 'A'"></lineMarker>f() {}
|
override fun <lineMarker descr="Overrides function in 'A'">f</lineMarker>() {}
|
||||||
}
|
}
|
||||||
+6
-6
@@ -1,13 +1,13 @@
|
|||||||
interface <lineMarker></lineMarker>A {
|
interface <lineMarker>A</lineMarker> {
|
||||||
fun <lineMarker></lineMarker><lineMarker></lineMarker>f() {}
|
fun <lineMarker><lineMarker>f</lineMarker></lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>B : A {
|
interface <lineMarker>B</lineMarker> : A {
|
||||||
override fun <lineMarker></lineMarker>f() {}
|
override fun <lineMarker>f</lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>C : B, A
|
interface <lineMarker>C</lineMarker> : B, A
|
||||||
|
|
||||||
class SomeClass() : C {
|
class SomeClass() : C {
|
||||||
override fun <lineMarker descr="Overrides function in 'B'"></lineMarker>f() {}
|
override fun <lineMarker descr="Overrides function in 'B'">f</lineMarker>() {}
|
||||||
}
|
}
|
||||||
+5
-5
@@ -1,12 +1,12 @@
|
|||||||
interface <lineMarker></lineMarker>A {
|
interface <lineMarker>A</lineMarker> {
|
||||||
val <lineMarker></lineMarker>f: Int
|
val <lineMarker>f</lineMarker>: Int
|
||||||
get() = 2
|
get() = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>B : A
|
interface <lineMarker>B</lineMarker> : A
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>C : B, A
|
interface <lineMarker>C</lineMarker> : B, A
|
||||||
|
|
||||||
class SomeClass() : C {
|
class SomeClass() : C {
|
||||||
override val <lineMarker descr="Overrides property in 'A'"></lineMarker>f: Int = 4
|
override val <lineMarker descr="Overrides property in 'A'">f</lineMarker>: Int = 4
|
||||||
}
|
}
|
||||||
+5
-5
@@ -1,9 +1,9 @@
|
|||||||
interface <lineMarker descr="*"></lineMarker>A {
|
interface <lineMarker descr="*">A</lineMarker> {
|
||||||
override fun <lineMarker descr="<html><body>Is implemented in <br> C</body></html>"><lineMarker descr="*"></lineMarker></lineMarker>toString() = "A"
|
override fun <lineMarker descr="<html><body>Is implemented in <br> C</body></html>"><lineMarker descr="*">toString</lineMarker></lineMarker>() = "A"
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class <lineMarker descr="*"></lineMarker>B: A
|
abstract class <lineMarker descr="*">B</lineMarker> : A
|
||||||
|
|
||||||
class C: B() {
|
class C : B() {
|
||||||
override fun <lineMarker descr="Overrides function in 'A'"></lineMarker>toString() = "B"
|
override fun <lineMarker descr="Overrides function in 'A'">toString</lineMarker>() = "B"
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -1,25 +1,25 @@
|
|||||||
interface <lineMarker descr="*"></lineMarker>A {
|
interface <lineMarker descr="*">A</lineMarker> {
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> C</body></html>"></lineMarker>foo(): String = "A"
|
fun <lineMarker descr="<html><body>Is implemented in <br> C</body></html>">foo</lineMarker>(): String = "A"
|
||||||
|
|
||||||
// TODO: B shoudn't be mentioned
|
// TODO: B shoudn't be mentioned
|
||||||
val <lineMarker descr="<html><body>Is implemented in <br/> B<br> C</body></html>"></lineMarker>some: String? get() = null
|
val <lineMarker descr="<html><body>Is implemented in <br/> B<br> C</body></html>">some</lineMarker>: String? get() = null
|
||||||
|
|
||||||
// TODO: B shoudn't be mentioned
|
// TODO: B shoudn't be mentioned
|
||||||
var <lineMarker descr="<html><body>Is implemented in <br/> B<br> C</body></html>"></lineMarker>other: String?
|
var <lineMarker descr="<html><body>Is implemented in <br/> B<br> C</body></html>">other</lineMarker>: String?
|
||||||
get() = null
|
get() = null
|
||||||
set(value) {}
|
set(value) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class <lineMarker descr="*"></lineMarker>B: A
|
open class <lineMarker descr="*">B</lineMarker> : A
|
||||||
|
|
||||||
class C: B() {
|
class C: B() {
|
||||||
override val <lineMarker descr="Overrides property in 'A'"></lineMarker>some: String = "S"
|
override val <lineMarker descr="Overrides property in 'A'">some</lineMarker>: String = "S"
|
||||||
|
|
||||||
override var <lineMarker descr="Overrides property in 'A'"></lineMarker>other: String?
|
override var <lineMarker descr="Overrides property in 'A'">other</lineMarker>: String?
|
||||||
get() = null
|
get() = null
|
||||||
set(value) {}
|
set(value) {}
|
||||||
|
|
||||||
override fun <lineMarker descr="Overrides function in 'A'"></lineMarker>foo(): String {
|
override fun <lineMarker descr="Overrides function in 'A'">foo</lineMarker>(): String {
|
||||||
return super<S1>.foo()
|
return super<S1>.foo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -1,13 +1,13 @@
|
|||||||
interface <lineMarker></lineMarker>A1 {
|
interface <lineMarker>A1</lineMarker> {
|
||||||
fun <lineMarker></lineMarker>foo()
|
fun <lineMarker>foo</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
interface <lineMarker></lineMarker>B1 {
|
interface <lineMarker>B1</lineMarker> {
|
||||||
fun <lineMarker></lineMarker>foo()
|
fun <lineMarker>foo</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
class C1: A1, B1 {
|
class C1: A1, B1 {
|
||||||
override fun <lineMarker descr="Implements function in 'A1'<br/>Implements function in 'B1'"></lineMarker>foo() {}
|
override fun <lineMarker descr="Implements function in 'A1'<br/>Implements function in 'B1'">foo</lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Vendored
+4
-4
@@ -1,9 +1,9 @@
|
|||||||
interface <lineMarker descr="*"></lineMarker>SkipSupport {
|
interface <lineMarker descr="*">SkipSupport</lineMarker> {
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportWithDefaults</body></html>"></lineMarker>skip()
|
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportWithDefaults</body></html>">skip</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface <lineMarker descr="*"></lineMarker>SkipSupportWithDefaults : SkipSupport {
|
public interface <lineMarker descr="*">SkipSupportWithDefaults</lineMarker> : SkipSupport {
|
||||||
override fun <lineMarker descr="Implements function in 'SkipSupport'"></lineMarker>skip() {}
|
override fun <lineMarker descr="Implements function in 'SkipSupport'">skip</lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class SkipSupportImpl : SkipSupportWithDefaults
|
open class SkipSupportImpl : SkipSupportWithDefaults
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
interface <lineMarker descr="*"></lineMarker>A {
|
interface <lineMarker descr="*">A</lineMarker> {
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> B</body></html>"></lineMarker>foo(str: String)
|
fun <lineMarker descr="<html><body>Is implemented in <br> B</body></html>">foo</lineMarker>(str: String)
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> B</body></html>"></lineMarker>foo()
|
fun <lineMarker descr="<html><body>Is implemented in <br> B</body></html>">foo</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
open class B : A {
|
open class B : A {
|
||||||
override fun <lineMarker descr="Implements function in 'A'"></lineMarker>foo(str: String) { }
|
override fun <lineMarker descr="Implements function in 'A'">foo</lineMarker>(str: String) { }
|
||||||
override fun <lineMarker descr="Implements function in 'A'"></lineMarker>foo() { }
|
override fun <lineMarker descr="Implements function in 'A'">foo</lineMarker>() { }
|
||||||
}
|
}
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
open class <lineMarker></lineMarker>A {
|
open class <lineMarker>A</lineMarker> {
|
||||||
open fun <lineMarker></lineMarker>a(){
|
open fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class <lineMarker></lineMarker>B:A(){
|
open class <lineMarker>B</lineMarker> : A(){
|
||||||
override fun <lineMarker></lineMarker><lineMarker></lineMarker>a(){
|
override fun <lineMarker><lineMarker>a</lineMarker></lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class C:B(){
|
class C : B(){
|
||||||
override fun <lineMarker></lineMarker>a(){
|
override fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+7
-7
@@ -1,19 +1,19 @@
|
|||||||
interface <lineMarker descr="*"></lineMarker>SkipSupport {
|
interface <lineMarker descr="*">SkipSupport</lineMarker> {
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl<br> SkipSupportWithDefaults</body></html>"></lineMarker>skip(why: String)
|
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl<br> SkipSupportWithDefaults</body></html>">skip</lineMarker>(why: String)
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportWithDefaults</body></html>"></lineMarker>skip()
|
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportWithDefaults</body></html>">skip</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface <lineMarker descr="*"></lineMarker>SkipSupportWithDefaults : SkipSupport {
|
public interface <lineMarker descr="*">SkipSupportWithDefaults</lineMarker> : SkipSupport {
|
||||||
// TODO: should be "Is overriden in SkipSupportImpl"
|
// TODO: should be "Is overriden in SkipSupportImpl"
|
||||||
override fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl</body></html>"><lineMarker descr="Implements function in 'SkipSupport'"></lineMarker></lineMarker>skip(why: String) {}
|
override fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl</body></html>"><lineMarker descr="Implements function in 'SkipSupport'">skip</lineMarker></lineMarker>(why: String) {}
|
||||||
|
|
||||||
override fun <lineMarker descr="Implements function in 'SkipSupport'"></lineMarker>skip() {
|
override fun <lineMarker descr="Implements function in 'SkipSupport'">skip</lineMarker>() {
|
||||||
skip("not given")
|
skip("not given")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class SkipSupportImpl: SkipSupportWithDefaults {
|
open class SkipSupportImpl: SkipSupportWithDefaults {
|
||||||
override fun <lineMarker descr="Overrides function in 'SkipSupportWithDefaults'"></lineMarker>skip(why: String) = throw RuntimeException(why)
|
override fun <lineMarker descr="Overrides function in 'SkipSupportWithDefaults'">skip</lineMarker>(why: String) = throw RuntimeException(why)
|
||||||
}
|
}
|
||||||
|
|
||||||
// KT-4428 Incorrect override icon shown for overloaded methods
|
// KT-4428 Incorrect override icon shown for overloaded methods
|
||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
abstract class <lineMarker></lineMarker>A {
|
abstract class <lineMarker>A</lineMarker> {
|
||||||
open fun <lineMarker></lineMarker>a(){
|
open fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class B : A(){
|
open class B : A(){
|
||||||
override fun <lineMarker></lineMarker>a(){
|
override fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -1,15 +1,15 @@
|
|||||||
// TODO: Declarations have no implementation and should be considered as "overloaded"
|
// TODO: Declarations have no implementation and should be considered as "overloaded"
|
||||||
interface <lineMarker descr="*"></lineMarker>First {
|
interface <lineMarker descr="*">First</lineMarker> {
|
||||||
val <lineMarker descr="<html><body>Is implemented in <br/> Second</body></html>"></lineMarker>some: Int
|
val <lineMarker descr="<html><body>Is implemented in <br/> Second</body></html>">some</lineMarker>: Int
|
||||||
var <lineMarker descr="<html><body>Is implemented in <br/> Second</body></html>"></lineMarker>other: String
|
var <lineMarker descr="<html><body>Is implemented in <br/> Second</body></html>">other</lineMarker>: String
|
||||||
get
|
get
|
||||||
set
|
set
|
||||||
|
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> Second</body></html>"></lineMarker>foo()
|
fun <lineMarker descr="<html><body>Is implemented in <br> Second</body></html>">foo</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Second : First {
|
interface Second : First {
|
||||||
override val <lineMarker descr="Overrides property in 'First'"></lineMarker>some: Int
|
override val <lineMarker descr="Overrides property in 'First'">some</lineMarker>: Int
|
||||||
override var <lineMarker descr="Overrides property in 'First'"></lineMarker>other: String
|
override var <lineMarker descr="Overrides property in 'First'">other</lineMarker>: String
|
||||||
override fun <lineMarker descr="Overrides function in 'First'"></lineMarker>foo()
|
override fun <lineMarker descr="Overrides function in 'First'">foo</lineMarker>()
|
||||||
}
|
}
|
||||||
Vendored
+5
-5
@@ -1,13 +1,13 @@
|
|||||||
interface <lineMarker descr="*"></lineMarker>SkipSupport {
|
interface <lineMarker descr="*">SkipSupport</lineMarker> {
|
||||||
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl1<br> SkipSupportWithDefaults</body></html>"></lineMarker>skip()
|
fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl1<br> SkipSupportWithDefaults</body></html>">skip</lineMarker>()
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface <lineMarker descr="*"></lineMarker>SkipSupportWithDefaults : SkipSupport {
|
public interface <lineMarker descr="*">SkipSupportWithDefaults</lineMarker> : SkipSupport {
|
||||||
override fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl1</body></html>"><lineMarker descr="Implements function in 'SkipSupport'"></lineMarker></lineMarker>skip() {}
|
override fun <lineMarker descr="<html><body>Is implemented in <br> SkipSupportImpl1</body></html>"><lineMarker descr="Implements function in 'SkipSupport'">skip</lineMarker></lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface SkipSupportImpl1 : SkipSupportWithDefaults {
|
public interface SkipSupportImpl1 : SkipSupportWithDefaults {
|
||||||
override fun <lineMarker descr="Overrides function in 'SkipSupportWithDefaults'"></lineMarker>skip() {}
|
override fun <lineMarker descr="Overrides function in 'SkipSupportWithDefaults'">skip</lineMarker>() {}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class SkipSupportImpl : SkipSupportWithDefaults
|
open class SkipSupportImpl : SkipSupportWithDefaults
|
||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
open class <lineMarker></lineMarker>C(
|
open class <lineMarker>C</lineMarker>(
|
||||||
open val <lineMarker descr="<html><body>Is overridden in <br/> D</body></html>"></lineMarker>s: String
|
open val <lineMarker descr="<html><body>Is overridden in <br/> D</body></html>">s</lineMarker>: String
|
||||||
) {
|
) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class D : C("") {
|
class D : C("") {
|
||||||
override val <lineMarker></lineMarker>s: String get() = "q"
|
override val <lineMarker>s</lineMarker>: String get() = "q"
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
interface <lineMarker></lineMarker>I {
|
interface <lineMarker>I</lineMarker> {
|
||||||
val <lineMarker></lineMarker>name: String
|
val <lineMarker>name</lineMarker>: String
|
||||||
}
|
}
|
||||||
|
|
||||||
class D(
|
class D(
|
||||||
override val <lineMarker descr="Implements property in 'I'"></lineMarker>name: String
|
override val <lineMarker descr="Implements property in 'I'">name</lineMarker>: String
|
||||||
): I
|
): I
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
open class <lineMarker></lineMarker>Base {
|
open class <lineMarker>Base</lineMarker> {
|
||||||
open var <lineMarker></lineMarker>writable: Int = 12
|
open var <lineMarker>writable</lineMarker>: Int = 12
|
||||||
}
|
}
|
||||||
|
|
||||||
class SubBase: Base() {
|
class SubBase: Base() {
|
||||||
override var <lineMarker></lineMarker>writable: Int = 42
|
override var <lineMarker>writable</lineMarker>: Int = 42
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
public interface Foo {
|
public interface Foo {
|
||||||
override fun <lineMarker descr="Overrides function in 'Any'"></lineMarker>toString() = "str"
|
override fun <lineMarker descr="Overrides function in 'Any'">toString</lineMarker>() = "str"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
interface <lineMarker></lineMarker>A {
|
interface <lineMarker>A</lineMarker> {
|
||||||
fun <lineMarker></lineMarker>a(){
|
fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class B :A {
|
class B : A {
|
||||||
override fun <lineMarker></lineMarker>a(){
|
override fun <lineMarker>a</lineMarker>(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,7 @@ operator fun Any.get(a: Int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class A {
|
class A {
|
||||||
override fun <lineMarker descr="Overrides function in 'Any'"></lineMarker>equals(other: Any?): Boolean {
|
override fun <lineMarker descr="Overrides function in 'Any'">equals</lineMarker>(other: Any?): Boolean {
|
||||||
this <lineMarker descr="Recursive call">==</lineMarker> other
|
this <lineMarker descr="Recursive call">==</lineMarker> other
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
open class <lineMarker></lineMarker>Super {
|
open class <lineMarker>Super</lineMarker> {
|
||||||
open fun <lineMarker></lineMarker>f(a: Int) {
|
open fun <lineMarker>f</lineMarker>(a: Int) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class F: Super() {
|
class F: Super() {
|
||||||
override fun <lineMarker></lineMarker>f(a: Int) {
|
override fun <lineMarker>f</lineMarker>(a: Int) {
|
||||||
if (a > 0) {
|
if (a > 0) {
|
||||||
super.f(a - 1)
|
super.f(a - 1)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ package testing
|
|||||||
import junit.framework.TestCase
|
import junit.framework.TestCase
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
abstract class <lineMarker descr="*"><lineMarker descr="Run Test"></lineMarker>KBase</lineMarker> : TestCase() {
|
abstract class <lineMarker descr="*"><lineMarker descr="Run Test">KBase</lineMarker></lineMarker> : TestCase() {
|
||||||
@Test
|
@Test
|
||||||
fun testFoo() {
|
fun testFoo() {
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ package testing
|
|||||||
|
|
||||||
import org.testng.annotations.Test
|
import org.testng.annotations.Test
|
||||||
|
|
||||||
abstract class <lineMarker descr="*"><lineMarker descr="Run Test"></lineMarker>KBase</lineMarker> {
|
abstract class <lineMarker descr="*"><lineMarker descr="Run Test">KBase</lineMarker></lineMarker> {
|
||||||
@Test
|
@Test
|
||||||
fun <lineMarker descr="*">testFoo</lineMarker>() {
|
fun <lineMarker descr="*">testFoo</lineMarker>() {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user