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