Implement "Override hierarchy" view

This commit is contained in:
Alexey Sedunov
2014-01-09 15:01:06 +04:00
parent 4ba01ee1d5
commit 786e59bbfa
33 changed files with 774 additions and 6 deletions
@@ -0,0 +1,12 @@
<node text="A ()" base="true">
<node text="B ()"/>
<node text="T ()">
<node text="C ()"/>
<node text="Y ()"/>
</node>
<node text="X ()">
<node text="Z ()">
<node text="D ()"/>
</node>
</node>
</node>
@@ -0,0 +1,30 @@
class A {
public void <caret>foo() {
}
}
class B extends A {
@Override
public void foo() {
}
}
class C implements T {
@Override
public void foo() {
}
}
class D extends Z {
@Override
public void foo() {
}
}
class S {
}
@@ -0,0 +1,27 @@
trait T: A {
override fun foo() {
}
}
open class X: A() {
override fun foo() {
}
}
open class Y: T {
override fun foo() {
}
}
open class Z: X() {
override fun foo() {
}
}
class SS {
}
@@ -0,0 +1,12 @@
<node text="A ()" base="true">
<node text="B ()"/>
<node text="T ()">
<node text="C ()"/>
<node text="Y ()"/>
</node>
<node text="X ()">
<node text="Z ()">
<node text="D ()"/>
</node>
</node>
</node>
@@ -0,0 +1,28 @@
interface A {
public void <caret>foo();
}
class B implements A {
@Override
public void foo() {
}
}
class C implements T {
@Override
public void foo() {
}
}
class D extends Z {
@Override
public void foo() {
}
}
class S {
}
@@ -0,0 +1,27 @@
trait T: A {
override fun foo() {
}
}
open class X: A {
override fun foo() {
}
}
open class Y: T {
override fun foo() {
}
}
open class Z: X() {
override fun foo() {
}
}
class SS {
}
@@ -0,0 +1,12 @@
<node text="T ()" base="true">
<node text="B ()"/>
<node text="X ()"/>
<node text="Y ()">
<node text="A ()">
<node text="C ()"/>
</node>
<node text="Z ()">
<node text="D ()"/>
</node>
</node>
</node>
@@ -0,0 +1,27 @@
open class T {
open fun <caret>foo() {
}
}
open class X: T() {
override fun foo() {
}
}
open trait Y: T() {
override fun foo() {
}
}
open class Z: Y {
override fun foo() {
}
}
class SS {
}
@@ -0,0 +1,29 @@
interface A extends Y {
@Override
public void foo();
}
class B extends T {
@Override
public void foo() {
}
}
class C implements A {
@Override
public void foo() {
}
}
class D extends Z {
@Override
public void foo() {
}
}
class S {
}
@@ -0,0 +1,13 @@
<node text="T ()" base="true">
<node text="A ()">
<node text="C ()"/>
</node>
<node text="B ()">
<node text="Y ()"/>
</node>
<node text="X ()">
<node text="Z ()">
<node text="D ()"/>
</node>
</node>
</node>
@@ -0,0 +1,25 @@
trait T {
fun <caret>foo()
}
open class X: T {
override fun foo() {
}
}
open class Y: B() {
override fun foo() {
}
}
open class Z: X() {
override fun foo() {
}
}
class SS {
}
@@ -0,0 +1,29 @@
interface A extends T {
@Override
public void foo();
}
class B implements T {
@Override
public void foo() {
}
}
class C implements A {
@Override
public void foo() {
}
}
class D extends Z {
@Override
public void foo() {
}
}
class S {
}
@@ -0,0 +1,12 @@
<node text="T ()" base="true">
<node text="B ()"/>
<node text="Y ()">
<node text="Z ()">
<node text="D ()"/>
</node>
<node text="A ()">
<node text="C ()"/>
</node>
</node>
<node text="X ()"/>
</node>
@@ -0,0 +1,25 @@
open class T {
open var <caret>foo: String = ""
}
open class X: T() {
override var foo: String
get() = ""
set(value: String) {}
}
trait Y: T {
override var foo: String
get() = ""
set(value: String) {}
}
open class Z: Y {
override var foo: String
get() = ""
set(value: String) {}
}
class SS {
}
@@ -0,0 +1,47 @@
interface A extends Y {
@Override
public String getFoo();
@Override
public void setFoo(String value);
}
class B extends T {
@Override
public String getFoo() {
}
@Override
public void setFoo(String value) {
}
}
class C implements A {
@Override
public String getFoo() {
}
@Override
public void setFoo(String value) {
}
}
class D extends Z {
@Override
public String getFoo() {
}
@Override
public void setFoo(String value) {
}
}
class S {
}
@@ -0,0 +1,12 @@
<node text="T ()" base="true">
<node text="Y ()">
<node text="Z ()">
<node text="D ()"/>
</node>
</node>
<node text="B ()"/>
<node text="X ()"/>
<node text="A ()">
<node text="C ()"/>
</node>
</node>
@@ -0,0 +1,25 @@
trait T {
open var <caret>foo: String
}
open class X: T {
override var <caret>foo: String
get() = ""
set(value: String) {}
}
open trait Y: T {
override var <caret>foo: String
get() = ""
set(value: String) {}
}
open class Z: Y {
override var <caret>foo: String
get() = ""
set(value: String) {}
}
class SS {
}
@@ -0,0 +1,47 @@
interface A extends T {
@Override
public String getFoo();
@Override
public void setFoo(String value);
}
class B implements T {
@Override
public String getFoo() {
}
@Override
public void setFoo(String value) {
}
}
class C implements A {
@Override
public String getFoo() {
}
@Override
public void setFoo(String value) {
}
}
class D extends Z {
@Override
public String getFoo() {
}
@Override
public void setFoo(String value) {
}
}
class S {
}