Return Kotlin fields and methods through KotlinShortNameCache

#KT-12205 Fixed
This commit is contained in:
Simon Ogorodnik
2016-08-30 19:49:10 +03:00
committed by Dmitry Jemerov
parent b06bdcef75
commit 18feb8f622
28 changed files with 1156 additions and 57 deletions
+22
View File
@@ -0,0 +1,22 @@
object B1 {
@JvmStatic
fun foobar() {}
@JvmField
val barfoo = ""
}
object B2 {
@JvmStatic
fun foobar() {}
@JvmField
val barfoo = ""
}
object B3 {
@JvmStatic
fun foobar() {}
@JvmField
val barfoo = ""
}
+16
View File
@@ -0,0 +1,16 @@
object B1 {
@JvmField
val foobar = ""
fun method1(){}
fun methodInBoth(){}
}
object B2 {
val barfoo = ""
fun method2(){}
fun methodInBoth(){}
}
@@ -0,0 +1,7 @@
class C1 {
}
object O1 {
}
@@ -0,0 +1,52 @@
@file:JvmName("KotlinShortNameCacheTestData")
var topLevelVar: String
get() {
return ""
}
set(value) {
}
object B1 {
@JvmStatic
var staticObjectVar: String
get() {
return ""
}
set(value) {
}
var nonStaticObjectVar: String
get() {
return ""
}
set(value) {
}
}
class C1 {
var classVar: String
get() {
return ""
}
set(value) {
}
companion object {
@JvmStatic
var staticCompanionVar: String
get() {
return ""
}
set(value) {
}
var nonStaticCompanionVar: String
get() {
return ""
}
set(value) {
}
}
}
@@ -0,0 +1,22 @@
@file:JvmName("KotlinShortNameCacheTestData")
var topLevelVar = ""
object B1 {
@JvmStatic
var staticObjectVar = ""
var nonStaticObjectVar = ""
}
class C1 {
var classVar = ""
companion object {
@JvmStatic
var staticCompanionVar = ""
var nonStaticCompanionVar = ""
}
}
@@ -0,0 +1,17 @@
@JvmField
var topLevelVar = ""
object B1 {
@JvmField
var objectVar = ""
}
class C1 {
@JvmField
var classVar = ""
companion object {
@JvmField
var companionVar = ""
}
}
@@ -0,0 +1,27 @@
fun topLevelFunction(){
}
object B1 {
@JvmStatic
fun staticMethodOfObject() {
}
fun nonStaticMethodOfObject() {
}
}
class C1 {
fun methodOfClass() {
}
companion object {
@JvmStatic
fun staticMethodOfCompanion() {
}
fun nonStaticMethodOfCompanion() {
}
}
}
@@ -0,0 +1,47 @@
// FILE: bar/Foo.before.java
// "Static import constant 'foo.Bar.Companion.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Rename reference
// ACTION: Create field 'foobar'
// ACTION: Create parameter 'foobar'
// ACTION: Create local variable 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
foobar<caret>
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
companion object {
@JvmField var foobar = "foobar"
}
}
// FILE: bar/Foo.after.java
// "Static import constant 'foo.Bar.Companion.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Rename reference
// ACTION: Create field 'foobar'
// ACTION: Create parameter 'foobar'
// ACTION: Create local variable 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.Companion.foobar;
public class Foo {
public void main()
{
foobar<caret>
}
}
@@ -0,0 +1,43 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
foobar<caret>();
}
}
// FILE: foo/Bar.dependency.kt
package foo
class Bar {
companion object {
@JvmStatic
fun foobar() {
}
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.foobar;
public class Foo {
public void main()
{
foobar<caret>();
}
}
@@ -0,0 +1,41 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
getValue<caret>();
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
companion object {
@JvmStatic val value = "foobar";
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.getValue;
public class Foo {
public void main()
{
getValue<caret>();
}
}
@@ -0,0 +1,41 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
companion object {
@JvmStatic var variable: String;
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.setVariable;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}
@@ -0,0 +1,43 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
getValue<caret>();
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
companion object {
val value = "foobar";
@JvmStatic get() {
}
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.getValue;
public class Foo {
public void main()
{
getValue<caret>();
}
}
@@ -0,0 +1,44 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
companion object {
var variable: String;
@JvmStatic set(value) {
field = value
}
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.setVariable;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}
@@ -0,0 +1,45 @@
// FILE: bar/Foo.before.java
// "Static import constant 'foo.Bar.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Rename reference
// ACTION: Create field 'foobar'
// ACTION: Create parameter 'foobar'
// ACTION: Create local variable 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
foobar<caret>
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
@JvmField var foobar = "foobar"
}
// FILE: bar/Foo.after.java
// "Static import constant 'foo.Bar.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Rename reference
// ACTION: Create field 'foobar'
// ACTION: Create parameter 'foobar'
// ACTION: Create local variable 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.foobar;
public class Foo {
public void main()
{
foobar<caret>
}
}
@@ -0,0 +1,40 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
foobar<caret>();
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
@JvmStatic fun foobar() {
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.foobar'" "true"
// ERROR: Unresolved reference: foobar
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.foobar;
public class Foo {
public void main()
{
foobar<caret>();
}
}
@@ -0,0 +1,39 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
getValue<caret>();
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
@JvmStatic val value = "foobar";
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.getValue;
public class Foo {
public void main()
{
getValue<caret>();
}
}
@@ -0,0 +1,39 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
@JvmStatic var variable: String;
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.setVariable;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}
@@ -0,0 +1,41 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
getValue<caret>();
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
val value = "foobar";
@JvmStatic get() {
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.getValue'" "true"
// ERROR: Unresolved reference: getValue
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.getValue;
public class Foo {
public void main()
{
getValue<caret>();
}
}
@@ -0,0 +1,42 @@
// FILE: bar/Foo.before.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}
// FILE: foo/Bar.dependency.kt
package foo
object Bar {
var variable: String;
@JvmStatic set(value) {
field = value
}
}
// FILE: bar/Foo.after.java
// "Static import method 'foo.Bar.setVariable'" "true"
// ERROR: Unresolved reference: setVariable
// ACTION: Create method 'foobar'
// WITH_RUNTIME
package bar;
import static foo.Bar.setVariable;
public class Foo {
public void main()
{
setVariable<caret>("foobar");
}
}