A better heuristics is declaration implemented or overriden

This commit is contained in:
Nikolay Krasko
2014-10-01 15:09:56 +04:00
parent bb7b4daef6
commit f0e7435254
5 changed files with 30 additions and 5 deletions
@@ -3,9 +3,9 @@ package sample
trait <lineMarker descr="*"></lineMarker>S<T> {
fun <lineMarker descr="<html><body>Is implemented in <br>&nbsp;&nbsp;&nbsp;&nbsp;sample.S2</body></html>"></lineMarker>foo(t: T): T
val <lineMarker descr="<html><body>Is overridden in <br/>&nbsp;&nbsp;&nbsp;&nbsp;sample.S2</body></html>"></lineMarker>some: T? get
val <lineMarker descr="<html><body>Is implemented in <br/>&nbsp;&nbsp;&nbsp;&nbsp;sample.S2</body></html>"></lineMarker>some: T? get
var <lineMarker descr="<html><body>Is overridden in <br/>&nbsp;&nbsp;&nbsp;&nbsp;sample.S2</body></html>"></lineMarker>other: T?
var <lineMarker descr="<html><body>Is implemented in <br/>&nbsp;&nbsp;&nbsp;&nbsp;sample.S2</body></html>"></lineMarker>other: T?
get
set
}
@@ -2,10 +2,10 @@ trait <lineMarker descr="*"></lineMarker>A {
fun <lineMarker descr="<html><body>Is implemented in <br>&nbsp;&nbsp;&nbsp;&nbsp;C</body></html>"></lineMarker>foo(): String = "A"
// TODO: B shoudn't be mentioned
val <lineMarker descr="<html><body>Is overridden in <br/>&nbsp;&nbsp;&nbsp;&nbsp;B<br>&nbsp;&nbsp;&nbsp;&nbsp;C</body></html>"></lineMarker>some: String? get() = null
val <lineMarker descr="<html><body>Is implemented in <br/>&nbsp;&nbsp;&nbsp;&nbsp;B<br>&nbsp;&nbsp;&nbsp;&nbsp;C</body></html>"></lineMarker>some: String? get() = null
// TODO: B shoudn't be mentioned
var <lineMarker descr="<html><body>Is overridden in <br/>&nbsp;&nbsp;&nbsp;&nbsp;B<br>&nbsp;&nbsp;&nbsp;&nbsp;C</body></html>"></lineMarker>other: String?
var <lineMarker descr="<html><body>Is implemented in <br/>&nbsp;&nbsp;&nbsp;&nbsp;B<br>&nbsp;&nbsp;&nbsp;&nbsp;C</body></html>"></lineMarker>other: String?
get() = null
set(value) {}
}
@@ -0,0 +1,15 @@
// TODO: Declarations have no implementation and should be considered as "overloaded"
trait <lineMarker descr="*"></lineMarker>First {
val <lineMarker descr="<html><body>Is implemented in <br/>&nbsp;&nbsp;&nbsp;&nbsp;Second</body></html>"></lineMarker>some: Int
var <lineMarker descr="<html><body>Is implemented in <br/>&nbsp;&nbsp;&nbsp;&nbsp;Second</body></html>"></lineMarker>other: String
get
set
fun <lineMarker descr="<html><body>Is implemented in <br>&nbsp;&nbsp;&nbsp;&nbsp;Second</body></html>"></lineMarker>foo()
}
trait Second : First {
override val <lineMarker descr="Overrides property in 'First'"></lineMarker>some: Int
override var <lineMarker descr="Overrides property in 'First'"></lineMarker>other: String
override fun <lineMarker descr="Overrides function in 'First'"></lineMarker>foo()
}