import java.* import java.util.* fun f_plus(): Int { var x: Int = 1 x = x `kotlin::Int.plus(Int)`+ 1 return x } ~X~class X<~T~T> { fun foo(a : `T`T) : `X`X<`T`T>{} ~plus~fun plus(t : `T`T) : Int {} ~minus~fun minus(t : String) : Int {} ~times~fun times(t : String) : Int {} ~div~fun div(t : String) : Int {} ~mod~fun mod(t : String) : Int {} ~rangeTo~fun rangeTo(t : String) : Int {} ~==~fun equals(a : Any?) : Boolean {} ~contains~fun contains(a : Any?) : Boolean {} } ~t~fun <~t.T~T> t(~t.t~t : `t.T`T) : `t.T`T { `t`t(1)`:kotlin::Int` `t`t<`t.T`T>(`t.t`t)`:t.T` `X`X<`t.T`T>() 1 `kotlin::Int.plus(Int)`+ 1 1 `kotlin::Int.plus(Int)`+= 1 X() `plus`+ "1" X() `plus`plus "sadfas" X().`plus`plus("") val x = X() x `minus`- "" x `times`* "" x `div`/ "" x `mod`% "" x `rangeTo`.. "" x `==`== "" x `==`!= 1 1 `contains`in x 1 `contains`!in x } ~Foo~class Foo { ~set1~fun set(i : Int, val1 : String) {} ~get1~fun get(i : Int) : Int {} ~get2~fun get(i : Int, j : Int) : String {} ~get3~fun get(i : Object) : Any {return i } ~+=~fun plusAssign(a : Any?) : Unit {} } ~Bar~class Bar : Foo { ~not~fun not() : String {} ~inc~fun inc() : Bar ~dec~fun dec() : Bar ~-~fun minus() : Bar ~+~fun plus() : Bar } fun tt(t : T) : T { val x : ArrayList = 0 x`java::java.util.ArrayList.get()`[1] val foo = `Bar`Bar() foo`!!`[null, 1] foo`get2`[1, 1] foo`get1`[1] foo`set1`[1] = "" foo`set1`[1, 2] = "" x`java::java.util.ArrayList.set()`[1] = null (x`java::java.util.ArrayList.set()`[1]) = null x`java::java.util.ArrayList.set()`[null] = null (x`java::java.util.ArrayList.set()`[null, 2]) = null (`not`!foo)[1]`:kotlin::Char` val y = Bar() y`inc`++ `inc`++y `dec`--y y`dec`-- y `+=`+= 1 `+`+y `-`-y 1 `kotlin::Int.compareTo(Double)`> 2.0 1 `kotlin::Int.compareTo(Double)`< 2.0 1 `kotlin::Int.compareTo(Double)`>= 2.0 1 `kotlin::Int.compareTo(Double)`<= 2.0 } class UnitIncDec() { ~uinc~fun inc() : Unit ~udec~fun dec() : Unit } fun testUnitIncDec() { var x = UnitIncDec() x`uinc`++ x`udec`-- }