Mikaël Peltier
ef6b6cd261
Fix NPE into isArraySizeAccess
2018-02-15 12:41:33 +03:00
Mikaël Peltier
3c2f137fd5
Exclude tests from JS backend due to a bug into it
2018-02-15 12:41:33 +03:00
Mikaël Peltier
be07a348ea
Reformat tests
2018-02-15 12:41:33 +03:00
Mikaël Peltier
8676ca34d7
KT-22334 Specialized loops using range such as integer..array.size-1
...
- Into PrimitiveNumberRangeLiteralRangeValue modifies how bounded
value are created by checking if the high bound range can be modified
to be exclusive instead of inclusive such as the generated code will
be optimized.
- Add black box tests checking that the specialization does not fail
on any kind of arrays.
- Add a bytecode test checking that the code is correctly optimized.
Fix of https://youtrack.jetbrains.com/issue/KT-22334
2018-02-15 12:41:33 +03:00
Denis Zharkov
c47c1c5ffd
Fix runtime CCE in case of out-projected SAM
...
Probably, when NI is there this fix will become unnecessary because
there will be no approximation applied, thus the value parameter
will remain Hello<#Captured> instead of Nothing
#KT-17171 Fixed
2018-02-14 10:29:14 +03:00
Mikhail Zarechenskiy
e017e9cb5f
Support passing inline class values with spread operator
2018-02-13 13:16:45 +03:00
Mikhail Zarechenskiy
3919dc94e1
Box values of inline class types when passing to function as varargs
2018-02-13 13:16:44 +03:00
Mikhail Zarechenskiy
6687751cf5
Generate as check for inline classes using wrapper
...
Should be improved when inline class is based on non-null reference
2018-02-13 13:16:44 +03:00
Mikhail Zarechenskiy
a88dbefcd9
Generate is check for inline classes same as for primitives
...
Should be improved when inline class is based on non-null reference
2018-02-13 13:16:44 +03:00
Mikhail Zarechenskiy
d606e5bc89
Correct boxing for functional types containing inline classes
2018-02-13 13:16:43 +03:00
Mikhail Zarechenskiy
1d16d21dbb
Fix boxing for non-local and labeled returns with inline classes
2018-02-13 13:16:42 +03:00
Mikhail Zarechenskiy
80dd5c106e
Propagate KotlinType through call generator, fix boxing on arguments
2018-02-13 13:16:42 +03:00
Mikhail Zarechenskiy
22b9c25dd0
Add KotlinType info about this inside inline class
2018-02-13 13:16:41 +03:00
Mikhail Zarechenskiy
c86d3e354b
Skip call to the underlying value of inline class
2018-02-13 13:16:41 +03:00
Mikhail Zarechenskiy
ce601bebbe
Fix detection of erased this for inline class
2018-02-13 13:16:40 +03:00
Mikhail Zarechenskiy
b361d0e9c0
Add test and check that iterator over UInt folds to a simple for-loop
2018-02-13 13:16:40 +03:00
Mikhail Zarechenskiy
059f1e9eed
Support inline classes working with collection elements (get/set)
2018-02-13 13:16:39 +03:00
Mikhail Zarechenskiy
8015295059
Desugar constructor call of inline class to the underlying value
...
Also add information about KotlinType to the constant stack values
2018-02-13 13:16:39 +03:00
Dmitry Petrov
839ebba157
ProperNumberComparisons is disabled by default (until LDC decision)
2018-02-13 09:26:00 +03:00
Dmitry Petrov
a790195808
Implement "proper numeric comparisons" support in JVM BE
2018-02-13 09:25:40 +03:00
Anton Bannykh
cd3a797f2a
JS: fix corner case in when translation (fix crash in KT-22544)
2018-02-12 17:15:48 +03:00
Mikhail Zarechenskiy
913e4b42bb
Support inline classes as last expression in lambda
2018-02-09 05:06:32 +03:00
Mikhail Zarechenskiy
396cc7d02b
Support unboxing of inline classes in elvis
2018-02-09 05:06:31 +03:00
Mikhail Zarechenskiy
fefcddc803
Support boxing/unboxing for captured vars of inline class types
2018-02-09 05:06:29 +03:00
Mikhail Zarechenskiy
9f24bbd980
Support unboxing of inline classes after assertion operator
2018-02-09 05:06:27 +03:00
Mikhail Zarechenskiy
30c79ffadc
Support generating computable properties inside inline classes
2018-02-09 04:57:20 +03:00
Mikhail Zarechenskiy
47aeeb36e4
Get accessors for companion object properties through wrapper class
2018-02-09 04:56:46 +03:00
Mikhail Zarechenskiy
c5c8d84719
Support boxing/unboxing for method return types
2018-02-09 04:56:36 +03:00
Mikhail Zarechenskiy
390c214943
Support boxing for inline classes on function calls
2018-02-09 04:56:08 +03:00
Mikhail Zarechenskiy
0d682879f5
Initial boxing for inline classes: local variable assignments
2018-02-09 04:55:44 +03:00
Mikaël Peltier
126afbb8ac
Avoid to generate unecessary checkcast
...
StackValue already avoid to generate checkcast from a type or an
array to java.lang.Object. Add a new case to avoid to generate a
checkcast from an array to an array of java.lang.Object when arrays
have the same dimensions.
#KT-22714 Fixed
2018-02-08 16:38:46 +01:00
Denis Zharkov
ef01f641f3
Imitate support for suspend modifier on parameterless lambdas
...
#KT-22766 In Progress
2018-02-08 17:47:37 +03:00
Mikhael Bogdanov
0954d1ab1b
Don't generate hash in sam wrapper class name
...
#KT-17091 Fixed
2018-02-08 10:11:48 +01:00
Ilmir Usmanov
ad385f42a9
Fix continuaion retrieval on generated coroutineContext intrinsic code
...
Use fake continuation instead on real one in JVM BE.
Pass continuation parameter to closure generator in JS BE.
#KT-22577: Fixed
2018-02-06 21:14:37 +03:00
Mikhael Bogdanov
ad48099ca6
Move java 8 tests to java8 folder
2018-02-06 10:32:14 +01:00
Mikaël Peltier
a2a3043607
KT-18731 Use reference equality to compare enums
...
Fix of https://youtrack.jetbrains.com/issue/KT-18731
2018-02-05 18:34:44 +03:00
Alexander Udalov
9e500831dd
Allow expect/actual annotation constructors to have default values
...
When a parameter has a default argument value both in the expected
annotation and in the actual annotation, they must be equal. This check
has been only implemented for the case when actual annotation is Kotlin
source code, and NOT a Java class coming from an actual typealias. The
latter case would require a bit more work in passing a platform-specific
annotation-value-reading component to ExpectedActualDeclarationChecker,
and is therefore postponed.
For now, Java annotations that are visible through actual type aliases
cannot have default argument values for parameters which already have
default values in the expected annotation declaration
#KT-22703 Fixed
#KT-22704 Open
2018-02-05 14:13:32 +01:00
Alexander Udalov
db4ce703a6
Support default arguments for expected declarations
...
#KT-21913 Fixed
2018-02-05 13:38:05 +01:00
Mikhail Zarechenskiy
5dacfae793
Support calling inline functions inside inline classes
2018-02-05 12:07:41 +03:00
Mikhail Zarechenskiy
2536eb4d45
Generate argument expression instead of constructor for inline classes
2018-02-05 12:07:40 +03:00
Anton Bannykh
3ead464671
JS: fix callable reference with implicit extension receiver (KT-22638 fixed)
2018-02-02 14:34:34 +03:00
Ilmir Usmanov
18c03f94f8
Move coroutineContext to correct package
...
from kotlin.coroutines.experimental.instrinsics to kotlin.coroutines.experimental
#KT-22400
2018-02-01 13:18:32 +03:00
Mikhael Bogdanov
cc346aef64
Support @JvmStatic for interface companion objects in backend
2018-01-26 10:09:21 +01:00
Dmitry Petrov
5e34f290ce
Reified 'as?' produces nullable result
...
Previously, this was treated as a regular CHECKCAST, causing KT-22410.
#Fixed KT-22410 Target versions 1.2.30
2018-01-26 10:22:59 +03:00
Alexander Udalov
543db380d2
Use isJvmInterface in JVM back-end instead of isInterface
...
To support const vals and proper initialization order for companions of
annotations (since 1.3+) as well as interfaces
#KT-16962 Fixed
2018-01-24 15:54:35 +01:00
Alexander Udalov
a46a2b9b1c
Support nested classes in annotation classes
...
#KT-16962 In Progress
2018-01-24 15:54:35 +01:00
Dmitry Petrov
72ffbb9825
Add test for array modification within for-in-array-withIndex loop body
2018-01-23 10:55:24 +03:00
Dmitry Petrov
40d1925e19
Provide optimized code generation for for-in-withIndex for sequences
...
#KT-5177 In Progress
2018-01-23 10:55:24 +03:00
Dmitry Petrov
2399a39414
Provide optimized code generation for for-in-withIndex for CharSequences
...
#KT-5177 In Progress
2018-01-23 10:55:24 +03:00
Dmitry Petrov
9c9e507172
Provide optimized code generation for for-in-withIndex for iterables
...
#KT-5177 In Progress
2018-01-23 10:55:24 +03:00