allow returning multiple PsiMethod wrappers for a JetFunction or JetPropertyAccessor; use that for handling Java usages through old-style and new-style facades

#KT-9102 Fixed
This commit is contained in:
Dmitry Jemerov
2015-09-11 19:50:49 +02:00
parent 4d09280aa8
commit ab58dc3586
24 changed files with 223 additions and 47 deletions
@@ -0,0 +1,11 @@
package client;
import server.KotlinTopLevelMethodUsages_0Kt;
class JClient {
String s = KotlinTopLevelMethodUsages_0Kt.processRequest();
String sendRequest() {
return KotlinTopLevelMethodUsages_0Kt.processRequest();
}
}
@@ -2,4 +2,6 @@
[kotlinTopLevelMethodUsages.1.kt] Function call (10: 9) processRequest()
[kotlinTopLevelMethodUsages.1.kt] Usage in import (3: 15) import server.processRequest
[kotlinTopLevelMethodUsages.2.java] Unclassified usage (6: 30) String s = ServerPackage.processRequest();
[kotlinTopLevelMethodUsages.2.java] Unclassified usage (9: 30) return ServerPackage.processRequest();
[kotlinTopLevelMethodUsages.2.java] Unclassified usage (9: 30) return ServerPackage.processRequest();
[kotlinTopLevelMethodUsages.3.java] Unclassified usage (6: 47) String s = KotlinTopLevelMethodUsages_0Kt.processRequest();
[kotlinTopLevelMethodUsages.3.java] Unclassified usage (9: 47) return KotlinTopLevelMethodUsages_0Kt.processRequest();
@@ -0,0 +1,7 @@
// PSI_ELEMENT: org.jetbrains.kotlin.psi.JetNamedFunction
// OPTIONS: usages
@file:JvmName("RequestProcessor")
package server
fun <caret>processRequest() = "foo"
@@ -0,0 +1,11 @@
package client;
import server.RequestProcessor;
class JClient {
String s = RequestProcessor.processRequest();
String sendRequest() {
return RequestProcessor.processRequest();
}
}
@@ -0,0 +1,2 @@
Unclassified usage (6: 33) String s = RequestProcessor.processRequest();
Unclassified usage (9: 33) return RequestProcessor.processRequest();
@@ -0,0 +1,11 @@
package client;
import server.KotlinTopLevelPropertyUsages_0Kt;
class JClient {
void fooBar() {
System.out.println("foo = " + KotlinTopLevelPropertyUsages_0Kt.getFoo());
System.out.println("length: " + KotlinTopLevelPropertyUsages_0Kt.getFoo().length());
KotlinTopLevelPropertyUsages_0Kt.setFoo("");
}
}
@@ -3,4 +3,7 @@
[kotlinTopLevelPropertyUsages.1.kt] Value read (7: 33) println("foo = ${server.foo}")
[kotlinTopLevelPropertyUsages.2.java] Unclassified usage (7: 53) System.out.println("foo = " + ServerPackage.getFoo());
[kotlinTopLevelPropertyUsages.2.java] Unclassified usage (8: 55) System.out.println("length: " + ServerPackage.getFoo().length());
[kotlinTopLevelPropertyUsages.2.java] Unclassified usage (9: 23) ServerPackage.setFoo("");
[kotlinTopLevelPropertyUsages.2.java] Unclassified usage (9: 23) ServerPackage.setFoo("");
[kotlinTopLevelPropertyUsages.3.java] Unclassified usage (7: 72) System.out.println("foo = " + KotlinTopLevelPropertyUsages_0Kt.getFoo());
[kotlinTopLevelPropertyUsages.3.java] Unclassified usage (8: 74) System.out.println("length: " + KotlinTopLevelPropertyUsages_0Kt.getFoo().length());
[kotlinTopLevelPropertyUsages.3.java] Unclassified usage (9: 42) KotlinTopLevelPropertyUsages_0Kt.setFoo("");
@@ -0,0 +1,11 @@
@file:JvmName("Bartender")
package testing.rename
public fun bar() = 1
fun usage() {
bar()
}
val some = bar()
@@ -0,0 +1,9 @@
package testing;
import testing.rename.Bartender;
class JavaClient {
public void testing() {
Bartender.bar();
}
}
@@ -0,0 +1,11 @@
@file:JvmName("Bartender")
package testing.rename
public fun foo() = 1
fun usage() {
foo()
}
val some = foo()
@@ -0,0 +1,9 @@
package testing;
import testing.rename.Bartender;
class JavaClient {
public void testing() {
Bartender.foo();
}
}
@@ -0,0 +1,6 @@
{
"type": "JAVA_METHOD",
"classId": "testing/rename/Bartender",
"methodSignature": "int foo()",
"newName": "bar"
}
@@ -0,0 +1,3 @@
package testing.rename
var /*rename*/bar: String = "xyzzy"
@@ -0,0 +1,10 @@
package testing;
import testing.rename.RenameTopLevelVarPropertyKt;
class JavaClientNewFacade {
public void foo() {
String old = RenameTopLevelVarPropertyKt.getBar();
RenameTopLevelVarPropertyKt.setBar(old + "new");
}
}
@@ -0,0 +1,10 @@
package testing;
import testing.rename.RenamePackage;
class JavaClientOldFacade {
public void foo() {
String old = RenamePackage.getBar();
RenamePackage.setBar(old + "new");
}
}
@@ -0,0 +1,3 @@
package testing.rename
var /*rename*/foo: String = "xyzzy"
@@ -0,0 +1,10 @@
package testing;
import testing.rename.RenameTopLevelVarPropertyKt;
class JavaClientNewFacade {
public void foo() {
String old = RenameTopLevelVarPropertyKt.getFoo();
RenameTopLevelVarPropertyKt.setFoo(old + "new");
}
}
@@ -0,0 +1,10 @@
package testing;
import testing.rename.RenamePackage;
class JavaClientOldFacade {
public void foo() {
String old = RenamePackage.getFoo();
RenamePackage.setFoo(old + "new");
}
}
@@ -0,0 +1,5 @@
{
"type": "MARKED_ELEMENT",
"mainFile": "RenameTopLevelVarProperty.kt",
"newName": "bar"
}