Move: Fix processing of callable references to Java constructors

This commit is contained in:
Alexey Sedunov
2017-04-10 18:05:21 +03:00
parent bdaf73411a
commit 9979c6e361
31 changed files with 190 additions and 4 deletions
@@ -249,6 +249,7 @@ private fun getReferenceKind(reference: PsiReference, referencedElement: PsiElem
element.getParentOfTypeAndBranch<KtCallableReferenceExpression> { callableReference }?.let {
if (it.receiverExpression != null) return ReferenceKind.IRRELEVANT
if (referencedElement is KtDeclaration && referencedElement.parent is KtFile) return ReferenceKind.UNQUALIFIABLE
if (referencedElement is PsiMember && referencedElement.getContainingClass() == null) return ReferenceKind.UNQUALIFIABLE
}
return ReferenceKind.QUALIFIABLE
@@ -2,8 +2,11 @@ package baz
import foo.A
import foo.J
import foo.JConstr
import foo.O
import foo.O.objectExtensionMember2
import foo.Y
import foo.YConstr
import foo.classExtension
import foo.companionExtension
import foo.objectExtension
@@ -39,6 +42,12 @@ fun test() {
J::javaClassMember
J::javaClassStaticMember
::topLevel
::Y
::YConstr
Y::YY
::J
::JConstr
J::JJ
with(A()) {
classMember()
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -0,0 +1,7 @@
package foo
class Y {
class YY
}
class YConstr(n: Int)
@@ -36,6 +36,12 @@ fun <caret>test() {
J::javaClassMember
J::javaClassStaticMember
::topLevel
::Y
::YConstr
Y::YY
::J
::JConstr
J::JJ
with(A()) {
classMember()
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -0,0 +1,7 @@
package foo
class Y {
class YY
}
class YConstr(n: Int)
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -0,0 +1,7 @@
package foo
class Y {
class YY
}
class YConstr(n: Int)
@@ -32,6 +32,12 @@ fun test() {
J::javaClassMember
J::javaClassStaticMember
::topLevel
::Y
::YConstr
Y::YY
::J
::JConstr
J::JJ
with(A()) {
classMember()
@@ -36,6 +36,12 @@ fun <caret>test() {
J::javaClassMember
J::javaClassStaticMember
::topLevel
::Y
::YConstr
Y::YY
::J
::JConstr
J::JJ
with(A()) {
classMember()
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -0,0 +1,7 @@
package foo
class Y {
class YY
}
class YConstr(n: Int)
@@ -2,8 +2,11 @@ package bar
import foo.A
import foo.J
import foo.JConstr
import foo.O
import foo.O.objectExtensionMember2
import foo.X
import foo.XConstr
import foo.classExtension
import foo.companionExtension
import foo.objectExtension
@@ -39,6 +42,12 @@ fun test() {
J::javaClassMember
J::javaClassStaticMember
::topLevel
::X
::XConstr
X::XX
::J
::JConstr
J::JJ
with(A()) {
classMember()
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -1,4 +1,7 @@
package foo
class X
class X {
class XX
}
class XConstr(n: Int)
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -3,7 +3,10 @@ package foo
import foo.O.objectMember2
import foo.O.objectExtensionMember2
class X
class X {
class XX
}
class XConstr(n: Int)
fun <caret>test() {
A().classMember()
@@ -35,6 +38,12 @@ fun <caret>test() {
J::javaClassMember
J::javaClassStaticMember
::topLevel
::X
::XConstr
X::XX
::J
::JConstr
J::JJ
with(A()) {
classMember()
@@ -2,8 +2,11 @@ package bar
import foo.A
import foo.J
import foo.JConstr
import foo.O
import foo.O.objectExtensionMember2
import foo.X
import foo.XConstr
import foo.classExtension
import foo.companionExtension
import foo.objectExtension
@@ -39,6 +42,12 @@ fun test() {
J::javaClassMember
J::javaClassStaticMember
::topLevel
::X
::XConstr
X::XX
::J
::JConstr
J::JJ
with(A()) {
classMember()
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -1,4 +1,7 @@
package foo
class X
class X {
class XX
}
class XConstr(n: Int)
@@ -1,6 +1,10 @@
package foo;
public class J {
public static class JJ {
}
public void javaClassMember() {
}
@@ -0,0 +1,7 @@
package foo;
public class JConstr {
public JConstr(int n) {
}
}
@@ -2,7 +2,10 @@ package foo
import foo.O.objectExtensionMember2
class X
class X {
class XX
}
class XConstr(n: Int)
fun <caret>test() {
foo.A().classMember()
@@ -34,6 +37,12 @@ fun <caret>test() {
foo.J::javaClassMember
foo.J::javaClassStaticMember
::topLevel
::X
::XConstr
X::XX
::J
::JConstr
J::JJ
with(foo.A()) {
classMember()