Ilmir Usmanov
0559cfb724
Move SuspendFunction{N} interfaces to kotlin.coroutines package
...
#KT-25824: Fixed
2018-08-22 16:21:30 +03:00
Ilmir Usmanov
4a7703ed66
Implement correct is check for SuspendFunction
...
Let callable references implement SuspendFunction
Do not generate CHECKCAST SuspendFunction when LV is 1.2
#KT-25825: Fixed
2018-08-22 16:21:27 +03:00
Dmitry Petrov
533f87ac33
Use proper KotlinType for prefix increment/decrement
...
Otherwise inline class values (such as UByte) are boxed incorrectly,
see KT-26219.
2018-08-22 12:24:50 +03:00
Alexander Udalov
1c2a9e4b21
Map annotation target TYPE -> TYPE_USE if JVM target >= 1.8
...
And TYPE_PARAMETER -> TYPE_PARAMETER similarly
#KT-23857 Fixed
2018-08-21 12:38:05 +02:00
Dmitry Petrov
7d4dfc87b1
Use proper KotlinType in get/set methods for property reference
2018-08-21 08:43:12 +03:00
Ilmir Usmanov
d3dbcae7a4
Get rid of typed create and invoke wherever possible
...
in coroutine lambdas.
#KT-26243 Fixed
2018-08-20 21:33:24 +03:00
Dmitry Petrov
b6e3218ca2
Use mapping mode for inline class underlying type without wrapping
2018-08-16 15:03:50 +03:00
Dmitry Petrov
8e95ecb821
Use underlying type when computing type mapping mode for inline classes
2018-08-15 15:37:46 +03:00
Ilmir Usmanov
a470fd21ca
Eliminate only first {ASTORE, ALOAD} in locals elimination
...
of ALOAD.
#KT-25912: Fixed.
2018-08-15 13:45:24 +03:00
Dmitry Petrov
ebf8ec455d
Box/unbox nullable inline class values with null check
...
When we have a nullable inline class value with non-null underlying
type, corresponding value in unboxed representation is nullable. E.g.:
inline class Str(val value: String)
fun test(s: Str?) = listOf(s)
Here 'test(s: Str?)' accepts nullable 'java.lang.String' as a parameter.
When boxing/unboxing nullable values of such inline classes, take care
of nulls.
#KT-26052 Fixed Target versions 1.3-M2
2018-08-14 10:22:07 +03:00
Dmitry Petrov
0af33462ef
Fix code generation for Array<C> element access where C is inline class
2018-08-13 08:49:04 +03:00
Dmitry Petrov
4f6aa50417
Fix == for inline classes with boxes
...
TODO generalize code generating object vs primitive equality
#KT-25914 Fixed
#KT-25981 Fixed
#KT-25983 Fixed
2018-08-10 10:34:57 +03:00
Mikhail Zarechenskiy
be38263fc7
Introduce conversions from signed pure constants to unsigned ones
...
#KT-24717 In Progress
#KT-25996 Open
#KT-25997 Open
2018-08-09 09:47:48 +03:00
Roman Artemev
efec82c0eb
Update test data
...
* add new tests for coroutines
* add copy of some tests without dependency on stdlib
2018-08-08 18:33:41 +03:00
Mikhail Zarechenskiy
55e7def3c1
Fix coercion for stack value property in case of inline classes
...
#KT-25771 Fixed
2018-08-06 17:45:20 +03:00
Mikhail Zarechenskiy
6d4d244c28
Generate function from Any for inline classes same as for data classes
...
#KT-24873 Fixed
#KT-25293 Fixed
#KT-25299 Fixed
2018-08-06 10:56:01 +03:00
Mikhail Zarechenskiy
043ce1cb27
Support secondary constructors for inline classes
...
#KT-25614 Fixed
#KT-25246 Fixed
KT-25599 Will be fixed after recompilation of unsigned classes
2018-08-06 10:55:57 +03:00
Dmitry Petrov
1bfb75a51b
Generate intrinsic-based numeric comparison only for FP types
2018-08-03 09:34:59 +03:00
Ilmir Usmanov
0c867b4804
Disable callable references to suspend functions in 1.2
...
#KT-25604: Fixed
2018-08-02 18:55:49 +03:00
Mikhael Bogdanov
cb53e86183
Move ir box test under "box/ir"
2018-08-02 09:52:48 +02:00
Alexander Udalov
0c8b231fde
Add tests on coercion to Unit for callable references
...
#KT-11723
2018-08-01 16:26:07 +02:00
Alexander Udalov
9babd90999
Support default arguments and varargs for callable references
...
#KT-8834
#KT-19869
#KT-25514
2018-08-01 16:26:06 +02:00
Dmitry Petrov
566b5856ec
Constructor call normalization mode depends on language version
2018-07-27 09:52:29 +03:00
Roman Artemev
14b1f0ef6a
Fix issue #KT-24475
...
* count coroutine metadata references during RemoveUnusedImport pass in JsInliner
* add cases to test usage of stdlib symbols in inlined functions
2018-07-26 19:23:06 +03:00
Roman Artemev
dec307799a
Fix infinite loop in suspend function in case of return from finally [#KT-21961]
...
* add test
2018-07-25 23:04:57 +03:00
Roman Artemev
eb420a1e0f
Fix [#KT-23921]
...
* make name collector in inliner process handle JsCatch
* visit JsParameter during live analyser in coroutine transformer
2018-07-25 14:22:11 +03:00
Roman Artemev
5241b37ad9
Fix fallthrough in suspendable switch [#KT-22694, #KT-23687]
...
* do not explicitly put break for each case
* add test for related cases
2018-07-24 20:19:35 +03:00
Alexander Udalov
20ddbc9698
Do not generate generic signature for SAM wrapper methods
...
#KT-23870 Fixed
2018-07-24 13:35:47 +02:00
Dmitry Petrov
86e863951e
Compare FP numbers properly when determining if field initializer needed
2018-07-20 17:53:25 +03:00
Mikhail Zarechenskiy
045058c29a
Support inline class values inside string templates through boxing
...
#KT-25626 Fixed
#KT-25613 Open
2018-07-20 13:58:31 +03:00
Mikhail Zarechenskiy
ec9d8e580e
Leave boxing for compareTo/areEqual methods for inline classes
...
Inline classes can override methods and thus introduce side effects
2018-07-20 11:51:34 +03:00
Dmitry Petrov
82f22f92ca
Don't generate ConstantValue for non-const vals in Kotlin 1.3+
2018-07-18 15:02:54 +03:00
Alexander Udalov
79c2aa4acf
Minor, move tests on JvmField into subdirectory
2018-07-18 13:24:45 +02:00
Mikhail Zarechenskiy
bb575866cb
Pass actual invoke parameters for inline functions with inline classes
...
#KT-25511 Fixed
2018-07-17 23:39:38 +03:00
Mikhail Zarechenskiy
77959247d2
Fix bridge generation for inline classes over Any type
2018-07-17 23:39:34 +03:00
Mikhail Zarechenskiy
b6db8971e4
Warn about annotations that targets non-existing accessors
...
#KT-15453 In Progress
2018-07-17 00:22:53 +03:00
Mikhael Bogdanov
1d283d243e
Support @JvmField on interface properties
...
#KT-15807 Fixed
2018-07-16 16:13:15 +02:00
Mikhail Zarechenskiy
857cc0f728
Make tests about mod and varargs valid for 1.3 version
2018-07-16 14:01:59 +03:00
Alexander Udalov
dcbb8045bd
Disallow function types with big arity on JVM if LV < 1.3 or API < 1.3
...
The implementation is a bit obscure because this worked on JS since
Kotlin 1.0 and we should not break that; however, on JVM, a diagnostic
will be reported with old language/API version
#KT-25241 Fixed
2018-07-16 10:41:27 +02:00
Alexander Udalov
56f509ba09
Support function types with >= 23 parameters
...
See https://github.com/Kotlin/KEEP/issues/107
#KT-13764 Fixed
2018-07-16 10:41:27 +02:00
Alexander Udalov
66b383349f
Fix regression in reflection on looking up equals/hashCode/toString in interface
...
Caused by 4266e50be8 and 8ccbbf71ec . Previously it worked because we
used hardcoded signatures of equals/hashCode/toString and always looked
them up in java.lang.Object
#KT-25404 Fixed
2018-07-13 18:45:44 +02:00
Alexander Udalov
0d03d5abf6
Regenerate tests
2018-07-13 18:40:31 +02:00
Georgy Bronnikov
8478c73434
Make @JvmStatic work on JVM_IR
2018-07-13 13:43:02 +03:00
Mikhail Zarechenskiy
4e3674b330
Fix for-in iterator over list of boxed inline class values
...
#KT-25325 Fixed
2018-07-12 18:53:30 +03:00
Mikhail Zarechenskiy
0308e10c11
Fix for-in iterator over array of boxed inline class values
...
#KT-25324 Fixed
2018-07-12 18:53:24 +03:00
Anton Bannykh
0579b52d6b
JS: enabled codegen box tests for release coroutines
2018-07-12 14:18:34 +03:00
Mikhael Bogdanov
9cf9cb3ecd
Fix KotlinType building by IrType: don't miss type parameters of outer for inner class
...
#KT-25405 Fixed
2018-07-11 15:12:43 +02:00
Mikhail Zarechenskiy
8d24ca65a3
Propagate KotlinType into when expression codegen
...
This commit removes unneeded boxing when result expression of `when` is
value of inline class type
2018-07-10 23:10:57 +03:00
Ilya Gorbunov
be8cb94105
Add failing tests for overflow in empty progressions KT-24204
2018-07-09 22:08:01 +03:00
Mikhael Bogdanov
66e68fbb53
Generate sam wrappers in inlined lambda in same way as in inline function
...
#KT-24825 Fixed
2018-07-09 15:52:54 +02:00