Dmitry Petrov
aa7db727ba
Fold I2L with ICONST_n when beneficial
...
ICONST_0; I2L -> LCONST_0
ICONST_1; I2L -> LCONST_1
2017-07-10 10:51:26 +03:00
Dmitry Petrov
ad80c3cd7f
If at least one of the range bounds is "pure", order doesn't matter
2017-07-10 10:51:26 +03:00
Dmitry Petrov
22e12dc139
Minor: use method names in bytecode text tests
2017-07-10 10:51:26 +03:00
Dmitry Petrov
6a3ff5ca46
Add tests for intrinsified in/!in and mismatching range types
2017-07-10 10:51:26 +03:00
Dmitry Petrov
850e1b11fc
Minor: test modification after review
2017-07-10 10:51:26 +03:00
Dmitry Petrov
9d1901fc7c
Intrinsify some mismatching range/element combinations for in/in!
...
It's safe to upcast integer types to Long,
floating-point types to Double.
So we don't have to create a range instance for cases such as
fun testLongInInt(x: Long, a: Int, b: Int) =
x in a .. b
which is equivalent to
fun testLongInInt(x: Long, a: Int, b: Int) =
x in a.toLong() .. b.toLong()
2017-07-10 10:51:26 +03:00
Dmitry Petrov
36cbc0defd
Ensure that {Collection, CharSequence}.indices intrinsic works with 'in'
2017-07-10 10:51:26 +03:00
Dmitry Petrov
ec99fa2142
Ensure that 'in/!in x until y' intrinsic works
2017-07-10 10:51:26 +03:00
Dmitry Petrov
05cad83c79
Fix tests for in/in! with primitive range literals
...
- ClosedFloatingPointRange<T>
- IntRange, etc
- extensions in kotlin.ranges for ranges of Byte/Int/Short
2017-07-10 10:51:26 +03:00
Dmitry Petrov
5decf65d6a
Ensure that no range instance is created for 'x in array.indices'
2017-07-10 10:51:26 +03:00
Dmitry Petrov
4320b63922
Ensure that no boolean negation is generated for !in expression
...
#KT-18777 Fixed Target versions 1.1.4
2017-07-10 10:51:26 +03:00
Dmitry Petrov
b9c0ecf2b1
Ensure that ranges are not created for in-Comparable-range-literal
...
#KT-6247 Fixed Target versions 1.1.4
2017-07-10 10:51:26 +03:00
Dmitry Petrov
a7071ae7af
Provide intrinsic generators for in/!in expression
...
TODO some tests should fail because range of comparables
(e.g., '"Alpha" .. "Omega"') is currently not implemented
2017-07-10 10:51:26 +03:00
Vsevolod
bd6f83b9b7
KT-5044 intrinsify all contains calls for primitive ranges from stdlib
2016-10-13 10:11:32 +03:00