Implement Kotlin usage classification
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package client
|
||||
|
||||
import server.Server
|
||||
|
||||
class Client: Server {
|
||||
var nextServer: Server? = null
|
||||
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")
|
||||
}
|
||||
}
|
||||
|
||||
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,11 @@
|
||||
package server
|
||||
|
||||
open class <caret>Server {
|
||||
class object {
|
||||
val NAME = "Server"
|
||||
}
|
||||
|
||||
open fun work() {
|
||||
println("Server")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package client
|
||||
|
||||
import server.X
|
||||
|
||||
X("")
|
||||
class Client {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package server
|
||||
|
||||
annotation class <caret>X(val x: String)
|
||||
@@ -0,0 +1,9 @@
|
||||
package client
|
||||
|
||||
import server.Data
|
||||
|
||||
class Client<T: Data, X> where X: Data {
|
||||
|
||||
}
|
||||
|
||||
val c = Client<Data>()
|
||||
@@ -0,0 +1,3 @@
|
||||
package server
|
||||
|
||||
data class <caret>Data
|
||||
@@ -0,0 +1,12 @@
|
||||
package client
|
||||
|
||||
import server.processRequest
|
||||
|
||||
class Client {
|
||||
val methodRef = ::processRequest()
|
||||
|
||||
fun doProcessRequest() {
|
||||
println("Process...")
|
||||
processRequest()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package server;
|
||||
|
||||
fun <caret>processRequest() = "foo"
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package client;
|
||||
|
||||
import server.O
|
||||
|
||||
class Client {
|
||||
fun fooBar() {
|
||||
println("foo = " + O.instance$.getFoo())
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package server;
|
||||
|
||||
object <caret>O {
|
||||
var foo: String = "foo"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package client
|
||||
|
||||
import server.O
|
||||
|
||||
class Client {
|
||||
fun fooBar() {
|
||||
println("foo = ${O.foo}")
|
||||
val obj = O
|
||||
println("length: ${obj.foo.length()}")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package server;
|
||||
|
||||
object <caret>O {
|
||||
var foo: String = "foo"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package client;
|
||||
|
||||
import server.O
|
||||
|
||||
class Client {
|
||||
fun fooBar() {
|
||||
println("foo = " + O.instance$.getFoo())
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package server;
|
||||
|
||||
object O {
|
||||
var <caret>foo: String = "foo"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package client
|
||||
|
||||
import server.foo
|
||||
|
||||
class Client {
|
||||
fun fooBar() {
|
||||
println("foo = ${server.foo}")
|
||||
println("length: ${server.foo.length()}")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package server;
|
||||
|
||||
var <caret>foo: String = "foo"
|
||||
|
||||
Reference in New Issue
Block a user