JetUsageTypeProvider: Eliminate SELECTOR type, replace class with object
This commit is contained in:
@@ -32,7 +32,7 @@ import org.jetbrains.jet.lexer.JetTokens
|
|||||||
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache
|
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache
|
||||||
import org.jetbrains.jet.plugin.JetBundle
|
import org.jetbrains.jet.plugin.JetBundle
|
||||||
|
|
||||||
public class JetUsageTypeProvider() : UsageTypeProviderEx {
|
public object JetUsageTypeProvider : UsageTypeProviderEx {
|
||||||
public override fun getUsageType(element: PsiElement?): UsageType? {
|
public override fun getUsageType(element: PsiElement?): UsageType? {
|
||||||
return getUsageType(element, UsageTarget.EMPTY_ARRAY)
|
return getUsageType(element, UsageTarget.EMPTY_ARRAY)
|
||||||
}
|
}
|
||||||
@@ -118,30 +118,27 @@ public class JetUsageTypeProvider() : UsageTypeProviderEx {
|
|||||||
|
|
||||||
val dotQualifiedExpression = element.getParentByType(javaClass<JetDotQualifiedExpression>())
|
val dotQualifiedExpression = element.getParentByType(javaClass<JetDotQualifiedExpression>())
|
||||||
|
|
||||||
return if (dotQualifiedExpression != null) {
|
if (dotQualifiedExpression != null) {
|
||||||
val parent = dotQualifiedExpression.getParent()
|
val parent = dotQualifiedExpression.getParent()
|
||||||
when {
|
when {
|
||||||
dotQualifiedExpression.getReceiverExpression().isAncestor(element) ->
|
dotQualifiedExpression.getReceiverExpression().isAncestor(element) ->
|
||||||
JetUsageTypes.RECEIVER
|
return JetUsageTypes.RECEIVER
|
||||||
|
|
||||||
parent is JetDotQualifiedExpression && parent.getReceiverExpression().isAncestor(element) ->
|
parent is JetDotQualifiedExpression && parent.getReceiverExpression().isAncestor(element) ->
|
||||||
JetUsageTypes.RECEIVER
|
return JetUsageTypes.RECEIVER
|
||||||
|
|
||||||
else -> JetUsageTypes.SELECTOR
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
when {
|
|
||||||
element.getParentByTypeAndPredicate(
|
|
||||||
javaClass<JetBinaryExpression>(), false, { JetPsiUtil.isAssignment(it) }
|
|
||||||
)?.getLeft().isAncestor(element) ->
|
|
||||||
UsageType.WRITE
|
|
||||||
|
|
||||||
element.getParentByType(javaClass<JetSimpleNameExpression>()) != null ->
|
return when {
|
||||||
UsageType.READ
|
element.getParentByTypeAndPredicate(
|
||||||
|
javaClass<JetBinaryExpression>(), false, { JetPsiUtil.isAssignment(it) }
|
||||||
|
)?.getLeft().isAncestor(element) ->
|
||||||
|
UsageType.WRITE
|
||||||
|
|
||||||
else -> null
|
element.getParentByType(javaClass<JetSimpleNameExpression>()) != null ->
|
||||||
}
|
UsageType.READ
|
||||||
|
|
||||||
|
else -> null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,7 +204,6 @@ object JetUsageTypes {
|
|||||||
|
|
||||||
// values
|
// values
|
||||||
val RECEIVER = UsageType(JetBundle.message("usageType.receiver"))
|
val RECEIVER = UsageType(JetBundle.message("usageType.receiver"))
|
||||||
val SELECTOR = UsageType(JetBundle.message("usageType.selector"))
|
|
||||||
val DELEGATE = UsageType(JetBundle.message("usageType.delegate"))
|
val DELEGATE = UsageType(JetBundle.message("usageType.delegate"))
|
||||||
|
|
||||||
// common usage types
|
// common usage types
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
Selector (10: 22) println("${x.a} ${x.b}")
|
Value read (10: 22) println("${x.a} ${x.b}")
|
||||||
Selector (10: 29) println("${x.a} ${x.b}")
|
Value read (10: 29) println("${x.a} ${x.b}")
|
||||||
Selector (11: 11) x.b = 12
|
Value write (11: 11) x.b = 12
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
Selector (4: 22) println("${a.a} ${a.b}")
|
Value read (4: 22) println("${a.a} ${a.b}")
|
||||||
Selector (4: 29) println("${a.a} ${a.b}")
|
Value read (4: 29) println("${a.a} ${a.b}")
|
||||||
Selector (5: 11) a.b = 12
|
Value write (5: 11) a.b = 12
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
Selector (5: 26) println(Server().Foo)
|
|
||||||
Value read (10: 33) open fun processRequest() = Foo
|
Value read (10: 33) open fun processRequest() = Foo
|
||||||
Value read (14: 37) override fun processRequest() = Foo
|
Value read (14: 37) override fun processRequest() = Foo
|
||||||
|
Value read (5: 26) println(Server().Foo)
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
Selector (5: 26) println(Server().foo)
|
|
||||||
Value read (12: 45) override fun processRequest() = "foo" + foo
|
Value read (12: 45) override fun processRequest() = "foo" + foo
|
||||||
|
Value read (5: 26) println(Server().foo)
|
||||||
Value read (8: 33) open fun processRequest() = foo
|
Value read (8: 33) open fun processRequest() = foo
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
Import directive (3: 15) import server.foo
|
Import directive (3: 15) import server.foo
|
||||||
Receiver (8: 35) println("length: ${server.foo.length()}")
|
Receiver (8: 35) println("length: ${server.foo.length()}")
|
||||||
Selector (7: 33) println("foo = ${server.foo}")
|
|
||||||
Unclassified usage (7: 53) System.out.println("foo = " + ServerPackage.getFoo());
|
Unclassified usage (7: 53) System.out.println("foo = " + ServerPackage.getFoo());
|
||||||
Unclassified usage (8: 55) System.out.println("length: " + ServerPackage.getFoo().length());
|
Unclassified usage (8: 55) System.out.println("length: " + ServerPackage.getFoo().length());
|
||||||
Unclassified usage (9: 23) ServerPackage.setFoo("");
|
Unclassified usage (9: 23) ServerPackage.setFoo("");
|
||||||
|
Value read (7: 33) println("foo = ${server.foo}")
|
||||||
|
|||||||
Reference in New Issue
Block a user