Implement call hierarchy

This commit is contained in:
Alexey Sedunov
2013-09-11 15:23:22 +04:00
parent e4936549ee
commit 41ea7da1e3
61 changed files with 1987 additions and 20 deletions
@@ -0,0 +1,9 @@
<node text="KClient.KClient()" base="true">
<node text="KA.KA()(2 usages) ()"/>
<node text="KA.foo(String) ()"/>
<node text="JA.JA()(2 usages) ()"/>
<node text="JA.getName() ()"/>
<node text="JA.foo(String) ()">
<node text="PrintStream.println(String) (java.io)"/>
</node>
</node>
@@ -0,0 +1,31 @@
class KA {
KA() {
}
public final String name = "A";
public final String foo(String s) {
return "A " + s;
}
}
class KClientBase {
}
class KClient extends KClientBase {
public <caret>KClient() {
super();
new KA().foo(new KA().name);
new JA().foo(new JA().getName());
}
{
new KA().foo(new KA().name);
new JA().foo(new JA().getName());
}
public final void bar() {
new KA().foo(new KA().name);
new JA().foo(new JA().getName());
}
}
@@ -0,0 +1,8 @@
open class JA() {
public var name: String = "A"
public open fun foo(s: String): String {
System.out.println(s)
return "A " + s
}
}
@@ -0,0 +1,18 @@
<node text="KClient.bar()" base="true">
<node text="KA.KA()(2 usages) ()"/>
<node text="KA.foo(String)(2 usages) ()"/>
<node text="JA.JA()(4 usages) ()"/>
<node text="JA.getName()(2 usages) ()"/>
<node text="JA.foo(String)(2 usages) ()">
<node text="PrintStream.println(String) (java.io)"/>
</node>
<node text="Anonymous in bar() in KClient.run() ()">
<node text="KA.KA() ()"/>
<node text="KA.foo(String) ()"/>
<node text="JA.JA()(2 usages) ()"/>
<node text="JA.getName() ()"/>
<node text="JA.foo(String) ()">
<node text="PrintStream.println(String) (java.io)"/>
</node>
</node>
</node>
@@ -0,0 +1,25 @@
class KA {
public KA() {
}
public final String name = "A";
public final String foo(String s) {
return "A " + s;
}
}
class KClient {
public final void <caret>bar() {
new KA().foo("");
new JA().foo(new JA().getName());
new Runnable() {
public void run() {
new KA().foo("");
new JA().foo(new JA().getName());
}
}.run();
}
}
@@ -0,0 +1,8 @@
open class JA() {
public var name: String = "A"
public open fun foo(s: String): String {
System.out.println(s)
return "A " + s
}
}
@@ -0,0 +1,12 @@
<node text="KClient" base="true">
<node text="KClientBase"/>
<node text="KA(4 usages)"/>
<node text="KA.name(2 usages)"/>
<node text="KA.foo(String)(2 usages)"/>
<node text="JA.JA()(4 usages)"/>
<node text="JA.foo(String)(2 usages)">
<node text="PrintStream.println(String) (java.io)"/>
</node>
<node text="packageVal"/>
<node text="packageFun(String)(2 usages)"/>
</node>
@@ -0,0 +1,36 @@
class KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s
val packageVal = ""
open class KClientBase {
}
class <caret>KClient(): KClientBase() {
{
fun localFun(s: String): String = packageFun(s)
KA().foo(KA().name)
JA().foo(JA().name)
localFun(packageVal)
}
val bar = run {
val localVal = packageFun("")
KA().foo(KA().name)
JA().foo(JA().name)
packageFun(localVal)
}
fun bar() {
KA().foo(KA().name)
JA().foo(JA().name)
}
}
@@ -0,0 +1,12 @@
class JA {
public String name = "A";
public JA() {
}
public String foo(String s) {
System.out.println(s);
return "A " + s;
}
}
@@ -0,0 +1,10 @@
<node text="KClient" base="true">
<node text="packageFun(String)(2 usages)"/>
<node text="KA(2 usages)"/>
<node text="KA.name"/>
<node text="KA.foo(String)"/>
<node text="JA.JA()(2 usages)"/>
<node text="JA.foo(String)">
<node text="PrintStream.println(String) (java.io)"/>
</node>
</node>
@@ -0,0 +1,38 @@
class KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s
val packageVal = ""
open class KClientBase {
}
class KClient: KClientBase() {
class <caret>object {
val bar = run {
val localVal = packageFun("")
KA().foo(KA().name)
JA().foo(JA().name)
packageFun(localVal)
}
fun bar() {
KA().foo(KA().name)
JA().foo(JA().name)
}
}
{
fun localFun(s: String): String = packageFun(s)
KA().foo(KA().name)
JA().foo(JA().name)
localFun(packageVal)
}
}
@@ -0,0 +1,12 @@
class JA {
public JA() {
}
public String name = "A";
public String foo(String s) {
System.out.println(s);
return "A " + s;
}
}
@@ -0,0 +1,10 @@
<node text="MyEnum.FIRST" base="true">
<node text="packageFun(String)(2 usages)"/>
<node text="KA(2 usages)"/>
<node text="KA.name"/>
<node text="KA.foo(String)"/>
<node text="JA.JA()(2 usages)"/>
<node text="JA.foo(String)">
<node text="PrintStream.println(String) (java.io)"/>
</node>
</node>
@@ -0,0 +1,45 @@
class KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s
val packageVal = ""
open class KClientBase {
}
enum class MyEnum {
<caret>FIRST {
val bar = run {
val localVal = packageFun("")
KA().foo(KA().name)
JA().foo(JA().name)
packageFun(localVal)
}
}
SECOND {
{
KA().foo(KA().name)
JA().foo(JA().name)
}
}
fun bar() {
KA().foo(KA().name)
JA().foo(JA().name)
}
{
fun localFun(s: String): String = packageFun(s)
KA().foo(KA().name)
JA().foo(JA().name)
localFun(packageVal)
}
}
@@ -0,0 +1,12 @@
class JA {
public JA() {
}
public String name = "A";
public String foo(String s) {
System.out.println(s);
return "A " + s;
}
}
@@ -0,0 +1,11 @@
<node text="KClient.bar()" base="true">
<node text="KA(4 usages)"/>
<node text="KA.name(2 usages)"/>
<node text="KA.foo(String)(2 usages)"/>
<node text="JA.JA()(4 usages)"/>
<node text="JA.foo(String)(2 usages)">
<node text="PrintStream.println(String) (java.io)"/>
</node>
<node text="packageVal"/>
<node text="packageFun(String)"/>
</node>
@@ -0,0 +1,25 @@
class KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s
val packageVal = ""
class KClient() {
fun <caret>bar() {
fun localFun(s: String): String = packageFun(s)
val localVal = localFun("")
KA().foo(KA().name)
JA().foo(JA().name)
localFun(packageVal)
run {
KA().foo(KA().name)
JA().foo(JA().name)
packageFun(localVal)
}
}
}
@@ -0,0 +1,12 @@
class JA {
public JA() {
}
public String name = "A";
public String foo(String s) {
System.out.println(s);
return "A " + s;
}
}
@@ -0,0 +1,10 @@
<node text="KClient.T ()" base="true">
<node text="KA.name ()"/>
<node text="JA.JA()(2 usages) ()"/>
<node text="JA.foo(String) ()">
<node text="PrintStream.println(String) (java.io)"/>
</node>
<node text="packageFun(String)(2 usages) ()"/>
<node text="KA.foo(String) ()"/>
<node text="KA(2 usages) ()"/>
</node>
@@ -0,0 +1,38 @@
class KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s
val packageVal = ""
open class KClientBase {
}
class KClient: KClientBase() {
class <caret>T {
val bar = run {
val localVal = packageFun("")
KA().foo(KA().name)
JA().foo(JA().name)
packageFun(localVal)
}
fun bar() {
KA().foo(KA().name)
JA().foo(JA().name)
}
}
{
fun localFun(s: String): String = packageFun(s)
KA().foo(KA().name)
JA().foo(JA().name)
localFun(packageVal)
}
}
@@ -0,0 +1,12 @@
class JA {
public JA() {
}
public String name = "A";
public String foo(String s) {
System.out.println(s);
return "A " + s;
}
}
@@ -0,0 +1,12 @@
<node text="KClient" base="true">
<node text="KClientBase"/>
<node text="KA(4 usages)"/>
<node text="KA.name(2 usages)"/>
<node text="KA.foo(String)(2 usages)"/>
<node text="JA.JA()(4 usages)"/>
<node text="JA.foo(String)(2 usages)">
<node text="PrintStream.println(String) (java.io)"/>
</node>
<node text="packageVal"/>
<node text="packageFun(String)(2 usages)"/>
</node>
@@ -0,0 +1,36 @@
class KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s
val packageVal = ""
open class KClientBase {
}
object <caret>KClient: KClientBase() {
{
fun localFun(s: String): String = packageFun(s)
KA().foo(KA().name)
JA().foo(JA().name)
localFun(packageVal)
}
val bar = run {
val localVal = packageFun("")
KA().foo(KA().name)
JA().foo(JA().name)
packageFun(localVal)
}
fun bar() {
KA().foo(KA().name)
JA().foo(JA().name)
}
}
@@ -0,0 +1,12 @@
class JA {
public JA() {
}
public String name = "A";
public String foo(String s) {
System.out.println(s);
return "A " + s;
}
}
@@ -0,0 +1,11 @@
<node text="KClient.bar" base="true">
<node text="KA(4 usages)"/>
<node text="KA.name(2 usages)"/>
<node text="KA.foo(String)(2 usages)"/>
<node text="JA.JA()(4 usages)"/>
<node text="JA.foo(String)(2 usages)">
<node text="PrintStream.println(String) (java.io)"/>
</node>
<node text="packageVal"/>
<node text="packageFun(String)"/>
</node>
@@ -0,0 +1,28 @@
class KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s
val packageVal = ""
class KClient() {
val <caret>bar: String
get() {
fun localFun(s: String): String = packageFun(s)
val localVal = localFun("")
KA().foo(KA().name)
JA().foo(JA().name)
localFun(packageVal)
run {
KA().foo(KA().name)
JA().foo(JA().name)
packageFun(localVal)
}
return ""
}
}
@@ -0,0 +1,12 @@
class JA {
public JA() {
}
public String name = "A";
public String foo(String s) {
System.out.println(s);
return "A " + s;
}
}
@@ -0,0 +1,7 @@
<node text="KA.KA()" base="true">
<node text="KClient.bar() ()"/>
<node text="KClient.getBar() ()"/>
<node text="KClient ()"/>
<node text="JA.newKA()"/>
<node text="JA"/>
</node>
@@ -0,0 +1,27 @@
class KA {
public <caret>KA() {
}
public final String name = "A";
public String foo(String s) {
return "A " + s;
}
}
class KClient {
{
new KA();
}
public static final a = new KA();
public final String getBar() {
return new KA().name;
}
public final KA bar() {
return new KA();
}
}
@@ -0,0 +1,7 @@
open class JA() {
public var name: String = KA().getName()
public open fun newKA(): KA? {
return KA()
}
}
@@ -0,0 +1,7 @@
<node text="KA.foo(String)" base="true">
<node text="KClient(2 usages) ()"/>
<node text="KClient.getBar() ()"/>
<node text="KClient.bar() ()"/>
<node text="JA.foo()"/>
<node text="JA"/>
</node>
@@ -0,0 +1,23 @@
class KA {
public final String name = "A"
public final String <caret>foo(String s) {
return "A " + s;
}
}
class KClient {
{
new KA().foo("");
}
public static final String a = new KA().foo("");
public final String getBar() {
return new KA().foo("");
}
public final String bar() {
return new KA().foo("");
}
}
@@ -0,0 +1,7 @@
open class JA() {
public var name: String = KA().foo("")
public open fun foo(): String {
return KA().foo("")
}
}
@@ -0,0 +1,11 @@
<node text="KA" base="true">
<node text="JA"/>
<node text="JA.newKA()"/>
<node text="KClient"/>
<node text="KClient"/>
<node text="KClient.bar"/>
<node text="KClient.bar()(2 usages)"/>
<node text="KClientObj"/>
<node text="main0.kt"/>
<node text="packageFun(String)"/>
</node>
@@ -0,0 +1,31 @@
class <caret>KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = s + KA().name
val packageVal = KA().name
class KClient {
{
KA()
}
class object {
val a = KA()
}
val bar: String
get() = KA().name
fun bar() {
fun localFun() = KA()
KA()
}
}
object KClientObj {
val a = KA()
}
@@ -0,0 +1,7 @@
class JA {
public String name = new KA().getName();
public KA newKA() {
return new KA();
}
}
@@ -0,0 +1,11 @@
<node text="KA.foo(String)" base="true">
<node text="JA"/>
<node text="JA.foo()"/>
<node text="KClient"/>
<node text="KClient"/>
<node text="KClient.bar"/>
<node text="KClient.bar()(2 usages)"/>
<node text="KClientObj"/>
<node text="main0.kt"/>
<node text="packageFun(String)"/>
</node>
@@ -0,0 +1,31 @@
class KA {
val name = "A"
fun <caret>foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = KA().foo(s)
val packageVal = KA().foo("")
class KClient {
{
KA().foo("")
}
class object {
val a = KA().foo("")
}
val bar: String
get() = KA().foo("")
fun bar() {
fun localFun() = KA().foo("")
KA().foo("")
}
}
object KClientObj {
val a = KA().foo("")
}
@@ -0,0 +1,7 @@
class JA {
public String name = new KA().foo("");
public String foo() {
return new KA().foo("");
}
}
@@ -0,0 +1,12 @@
<node text="T.KA ()" base="true">
<node text="main0.kt ()"/>
<node text="JA.newKA() ()"/>
<node text="KClientObj ()"/>
<node text="KClient ()"/>
<node text="packageFun(String) ()"/>
<node text="KClient.bar ()"/>
<node text="bar.localFun() ()"/>
<node text="KClient ()"/>
<node text="JA ()"/>
<node text="KClient.bar() ()"/>
</node>
@@ -0,0 +1,33 @@
class T {
class <caret>KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
}
fun packageFun(s: String): String = s + T.KA().name
val packageVal = T.KA().name
class KClient {
{
T.KA()
}
class object {
val a = T.KA()
}
val bar: String
get() = T.KA().name
fun bar() {
fun localFun() = T.KA()
T.KA()
}
}
object KClientObj {
val a = T.KA()
}
@@ -0,0 +1,7 @@
class JA {
public String name = new T.KA().getName();
public KA newKA() {
return new T.KA();
}
}
@@ -0,0 +1,12 @@
<node text="T.KA ()" base="true">
<node text="KClient.bar ()"/>
<node text="JA.newKA() ()"/>
<node text="bar.localFun() ()"/>
<node text="JA ()"/>
<node text="KClient ()"/>
<node text="KClientObj ()"/>
<node text="KClient.bar() ()"/>
<node text="packageFun(String) ()"/>
<node text="KClient ()"/>
<node text="main0.kt ()"/>
</node>
@@ -0,0 +1,33 @@
class T {
inner class <caret>KA {
val name = "A"
fun foo(s: String): String = "A: $s"
}
}
fun packageFun(s: String): String = s + T().KA().name
val packageVal = T().KA().name
class KClient {
{
T().KA()
}
class object {
val a = T().KA()
}
val bar: String
get() = T().KA().name
fun bar() {
fun localFun() = T().KA()
T().KA()
}
}
object KClientObj {
val a = T().KA()
}
@@ -0,0 +1,7 @@
class JA {
public String name = new T().new KA().getName();
public KA newKA() {
return new T().new KA();
}
}
@@ -0,0 +1,11 @@
<node text="KA.name" base="true">
<node text="JA"/>
<node text="JA.getName()"/>
<node text="KClient(2 usages)"/>
<node text="KClient(2 usages)"/>
<node text="KClient.bar()(4 usages)"/>
<node text="KClient.bar(4 usages)"/>
<node text="KClientObj(4 usages)"/>
<node text="main0.kt(2 usages)"/>
<node text="packageFun(String)(2 usages)"/>
</node>
@@ -0,0 +1,35 @@
class KA {
var <caret>name = "A"
fun foo(s: String): String = "A: $s"
}
fun packageFun(s: String): String = KA().name
val packageVal = KA().name
class KClient {
{
KA().name = ""
}
class object {
val a = KA().name
}
val bar: String
get() = KA().name
set(value: String) {KA().name = value}
fun bar() {
fun localFun() = KA().name
val s = KA().name
}
}
object KClientObj {
val a = KA().name
{
KA().name = ""
}
}
@@ -0,0 +1,7 @@
class JA {
public String name = new KA().getName();
public String getName() {
return new KA().getName();
}
}