Add separate search of constructor usages

This commit is contained in:
Alexey Sedunov
2013-08-13 16:10:48 +04:00
parent 78189e883d
commit b2d1f8d323
33 changed files with 377 additions and 34 deletions
@@ -0,0 +1,6 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages, constructorUsages
package testing
class <caret>Server() {
}
@@ -0,0 +1,13 @@
import testing.*;
class Client {
private Server myServer = new Server();
public void setServer(Server server) {
myServer = server;
}
public Server getMyServer() {
return myServer;
}
}
@@ -0,0 +1,4 @@
Field declaration (4: 13) private Server myServer = new Server();
Method parameter declaration (6: 27) public void setServer(Server server) {
Method return type (10: 12) public Server getMyServer() {
New instance creation (4: 35) private Server myServer = new Server();
@@ -0,0 +1,6 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: constructorUsages
package testing
class <caret>Server() {
}
@@ -0,0 +1,13 @@
import testing.*;
class Client {
private Server myServer = new Server();
public void setServer(Server server) {
myServer = server;
}
public Server getMyServer() {
return myServer;
}
}
@@ -0,0 +1 @@
New instance creation (4: 35) private Server myServer = new Server();
@@ -1,4 +1,5 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages
package testing
class <caret>Server() {
@@ -0,0 +1,13 @@
import testing.*;
class Client {
private Server myServer = new Server();
public void setServer(Server server) {
myServer = server;
}
public Server getMyServer() {
return myServer;
}
}
@@ -0,0 +1,3 @@
Field declaration (4: 13) private Server myServer = new Server();
Method parameter declaration (6: 27) public void setServer(Server server) {
Method return type (10: 12) public Server getMyServer() {
@@ -1,5 +0,0 @@
import testing.*;
class Client {
private Server myServer;
}
@@ -1 +0,0 @@
Field declaration (4: 13) private Server myServer;
@@ -0,0 +1,13 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages, constructorUsages
package server
open class <caret>Server {
class object {
val NAME = "Server"
}
open fun work() {
println("Server")
}
}
@@ -2,8 +2,8 @@ package client
import server.Server
class Client: Server {
var nextServer: Server? = null
class Client: Server() {
var nextServer: Server? = new Server()
val name = Server.NAME
fun foo(s: Server) {
@@ -21,6 +21,10 @@ class Client: Server {
}
}
object ClientObject: Server() {
}
fun Client.bar(s: Server) {
foo(s)
}
@@ -0,0 +1,13 @@
Class/object property type (6: 21) var nextServer: Server? = new Server()
Function return types (14: 26) fun getNextServer(): Server? {
Function return types (36: 21) fun Any.asServer(): Server? {
Import directive (3: 15) import server.Server
Local variable type (10: 21) val server: Server = s
Nested class/object (7: 16) val name = Server.NAME
Parameter type (28: 19) fun Client.bar(s: Server) {
Parameter type (9: 16) fun foo(s: Server) {
Super type qualifier (19: 15) super<Server>.work()
Target type of 'as' operation (37: 40) return if (this is Server) this as Server else null
Target type of 'is' operation (37: 24) return if (this is Server) this as Server else null
Unclassified usage (24: 22) object ClientObject: Server() {
Unclassified usage (5: 15) class Client: Server() {
@@ -1,4 +1,5 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages, constructorUsages
package server
annotation class <caret>X(val x: String)
@@ -1,4 +1,5 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages, constructorUsages
package server
data class <caret>Data
@@ -0,0 +1,13 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: constructorUsages
package server
open class <caret>Server {
class object {
val NAME = "Server"
}
open fun work() {
println("Server")
}
}
@@ -0,0 +1,38 @@
package client
import server.Server
class Client: Server() {
var nextServer: Server? = new Server()
val name = Server.NAME
fun foo(s: Server) {
val server: Server = s
println("Server: $server")
}
fun getNextServer(): Server? {
return nextServer
}
override fun work() {
super<Server>.work()
println("Client")
}
}
object ClientObject: Server() {
}
fun Client.bar(s: Server) {
foo(s)
}
fun Client.hasNextServer(): Boolean {
return getNextServer() != null
}
fun Any.asServer(): Server? {
return if (this is Server) this as Server else null
}
@@ -0,0 +1,2 @@
Unclassified usage (24: 22) object ClientObject: Server() {
Unclassified usage (5: 15) class Client: Server() {
@@ -1,4 +1,5 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages
package server
open class <caret>Server {
@@ -0,0 +1,38 @@
package client
import server.Server
class Client: Server() {
var nextServer: Server? = new Server()
val name = Server.NAME
fun foo(s: Server) {
val server: Server = s
println("Server: $server")
}
fun getNextServer(): Server? {
return nextServer
}
override fun work() {
super<Server>.work()
println("Client")
}
}
object ClientObject: Server() {
}
fun Client.bar(s: Server) {
foo(s)
}
fun Client.hasNextServer(): Boolean {
return getNextServer() != null
}
fun Any.asServer(): Server? {
return if (this is Server) this as Server else null
}
@@ -1,12 +1,11 @@
Class/object property type (6: 21) var nextServer: Server? = null
Class/object property type (6: 21) var nextServer: Server? = new Server()
Function return types (14: 26) fun getNextServer(): Server? {
Function return types (32: 21) fun Any.asServer(): Server? {
Function return types (36: 21) fun Any.asServer(): Server? {
Import directive (3: 15) import server.Server
Local variable type (10: 21) val server: Server = s
Nested class/object (7: 16) val name = Server.NAME
Parameter type (24: 19) fun Client.bar(s: Server) {
Parameter type (28: 19) fun Client.bar(s: Server) {
Parameter type (9: 16) fun foo(s: Server) {
Super type qualifier (19: 15) super<Server>.work()
Supertype (5: 15) class Client: Server {
Target type of 'as' operation (33: 40) return if (this is Server) this as Server else null
Target type of 'is' operation (33: 24) return if (this is Server) this as Server else null
Target type of 'as' operation (37: 40) return if (this is Server) this as Server else null
Target type of 'is' operation (37: 24) return if (this is Server) this as Server else null
@@ -1,5 +1,6 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// FILTERING_RULES: org.jetbrains.jet.plugin.findUsages.JetImportFilteringRule
// OPTIONS: usages, constructorUsages
package testing
@@ -1,4 +1,5 @@
// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass
// OPTIONS: usages, constructorUsages
open class <caret>Foo {
vv open val foo = 1
}