// !CHECK_TYPE fun varargByte(vararg v: Byte) = v fun varargShort(vararg v: Short) = v fun varargInt(vararg v: Int) = v fun varargLong(vararg v: Long) = v fun varargFloat(vararg v: Float) = v fun varargDouble(vararg v: Double) = v fun testFun(p: T) {} fun test() { checkSubtype(1) checkSubtype(1) checkSubtype(1) checkSubtype(1) checkSubtype(0x001) checkSubtype(0b001) checkSubtype(0.1) checkSubtype(0.1.toFloat()) checkSubtype(1e5) checkSubtype(1e-5.toFloat()) checkSubtype(1) checkSubtype(1) 1 as Byte 1 as Int 0xff as Long 1.1 as Int checkSubtype(1.1) varargByte(0x77, 1, 3, 200, 0b111) varargShort(0x777, 1, 2, 3, 200000, 0b111) varargInt(0x77777777, 0x7777777777, 1, 2, 3, 2000000000, 0b111) varargLong(0x777777777777, 1, 2, 3, 200000, 0b111) varargFloat(1, 1.0, -0.1, 1e4, 1e-4, -1e4) varargDouble(1, 1.0, -0.1, 1e4, 1e-4, -1e4) testFun(1.0) testFun(1.0) testFun(1.0.toFloat()) testFun(1.0.toFloat()) }