71 lines
1.3 KiB
Plaintext
71 lines
1.3 KiB
Plaintext
fun Int?.optint() : Unit {}
|
|
val Int?.optval : Unit = ()
|
|
|
|
fun <T, E> T.foo(x : E, y : A) : T {
|
|
y.plus(1)
|
|
y plus 1
|
|
y + 1.0
|
|
|
|
this<warning>?.</warning>minus<T>(this)
|
|
|
|
return this
|
|
}
|
|
|
|
class A
|
|
|
|
fun A.plus(a : Any) {
|
|
|
|
1.foo()
|
|
true.<error>foo()</error>
|
|
|
|
1
|
|
}
|
|
|
|
fun A.plus(a : Int) {
|
|
1
|
|
}
|
|
|
|
fun <T> T.minus(t : T) : Int = 1
|
|
|
|
fun test() {
|
|
val y = 1.abs
|
|
}
|
|
val Int.abs : Int
|
|
get() = if (this > 0) this else -this;
|
|
|
|
val <T> T.<error>foo</error> : T
|
|
|
|
fun Int.foo() = this
|
|
|
|
namespace null_safety {
|
|
|
|
fun parse(cmd: String): Command? { return null }
|
|
class Command() {
|
|
// fun equals(other : Any?) : Boolean
|
|
val foo : Int = 0
|
|
}
|
|
|
|
fun Any.equals(other : Any?) : Boolean = true
|
|
fun Any?.equals1(other : Any?) : Boolean = true
|
|
fun Any.equals2(other : Any?) : Boolean = true
|
|
|
|
fun main(args: Array<String>) {
|
|
|
|
System.out?.print(1)
|
|
|
|
val command = parse("")
|
|
|
|
command<error>.</error>foo
|
|
|
|
command.equals(null)
|
|
command<warning>?.</warning>equals(null)
|
|
command.equals1(null)
|
|
command<warning>?.</warning>equals1(null)
|
|
|
|
val c = Command()
|
|
c<warning>?.</warning>equals2(null)
|
|
|
|
if (command == null) 1
|
|
}
|
|
|
|
} |