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
Alexander Udalov
871b896a21
Add internal compiler argument to change metadata version
...
Will be used in tests to check how we behave on binaries produced by a
"future" compiler
2018-07-18 17:59:37 +02:00
Alexander Udalov
cfc0f5e453
Support correct way of writing/loading version requirement table
...
Tests are added in subsequent commits.
KT-25120 Fixed
2018-07-18 17:59:37 +02:00
Alexander Udalov
4122021090
Add BinaryVersion to DeserializationContext
...
This will be useful to implement version-dependent deserialization,
which is needed for gradual fixes of issues in metadata
#KT-25120 In Progress
2018-07-18 17:58:46 +02:00
Alexander Udalov
1e9694f1db
Fix version requirement serialization for nested classes
...
Use the version requierement table of the outer DescriptorSerializer
instance when serializing metadata for a class. Pass parent serializer
to DescriptorSerializer.create to make sure the correct table is used.
Serialize nested classes before the outer class in JS and common code,
to make sure requirements are not lost. Also, split
VersionRequirementTest to JVM and JS
#KT-25120 In Progress
2018-07-18 17:58:46 +02:00
Roman Artemev
e4b314c26c
Fix inlining of invoke operator [#KT-25474]
...
* add test
2018-07-18 16:12:41 +03:00
Svyatoslav Kuzmich
b23dabb8b7
Revert EXPECTED_REACHABLE_NODES for failed tests
2018-07-18 15:31:29 +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
Alexander Udalov
ae6627fe94
Simplify code in JS serialization related to module descriptors
...
Do not use `JsModuleDescriptor<...>` where only its `data` is needed
2018-07-17 20:26:31 +02:00
Alexander Udalov
77405b2cca
Reformat module 'js.serializer'
2018-07-17 20:26:31 +02:00
Svyatoslav Kuzmich
1abb4f42ac
[JS IR BE] Add ranges to runtime, rangeTo for primitive numbers
2018-07-17 20:18:29 +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
e00b7a993f
Write version requirements for @JvmField in interface companion
2018-07-16 16:13:18 +02:00
Mikhael Bogdanov
b412c90cef
Move version requirements serialization for @JvmDefault to JvmSerializerExtension
2018-07-16 16:13:17 +02:00
Mikhael Bogdanov
1d283d243e
Support @JvmField on interface properties
...
#KT-15807 Fixed
2018-07-16 16:13:15 +02:00
Ilmir Usmanov
8fa3584c5c
Minor. Fix test
2018-07-16 15:09:23 +03:00
Ilmir Usmanov
bc4a7aec76
Remove suspendCoroutineOrReturn intrinsic from compiler
...
#KT-21240: Fixed
Also, change logic of intrinsics check.
#KT-23438: Fixed
2018-07-16 15:09:18 +03:00
Alexander Udalov
ce34deb9af
Delete DefaultImportProvider, refactor TargetPlatform.defaultImports
2018-07-16 13:45:11 +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
Zalim Bashorov
3f0b31dc23
Speed up JS IR BE tests compiling the common parts (runtime + test common utils) once (on demand) and sharing the result between tests
...
It's a temporary hack until we implement IR based library format.
It relies on the fact that currently, IR BE generates stable (enough) names.
2018-07-13 23:42:41 +03:00
Zalim Bashorov
34758110ee
JS IR test runner: collect all .kt files from the "irRuntime" dir automatically instead of declaring each one in the list
2018-07-13 23:42:40 +03: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
6a9b8d27e6
JS: update DCE test data
2018-07-12 14:18:34 +03:00
Anton Bannykh
cf9ad635e1
JS: add more tests
2018-07-12 14:18:34 +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
Anton Bannykh
9c6452778f
JS IR: unmute tests
2018-07-11 15:25:41 +03:00
Anton Bannykh
ac1a97ad83
JS IR: unmute tests
2018-07-11 14:49:36 +03:00
Anton Bannykh
9233e6c176
JS IR: char (always boxed for now)
2018-07-11 14:49:36 +03: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
Svyatoslav Kuzmich
77ad97a39e
[JS IR BE] Bridges construction
2018-07-10 14:11:09 +03:00
Anton Bannykh
07b3b66fd9
JS IR: unmute tests
2018-07-10 13:34:19 +03:00
Anton Bannykh
65846d783d
JS IR: Long
2018-07-10 13:34:19 +03:00
Anton Bannykh
4872c97929
JS: enable release coroutines
2018-07-10 13:11:39 +03:00
Ilya Gorbunov
be8cb94105
Add failing tests for overflow in empty progressions KT-24204
2018-07-09 22:08:01 +03:00
Denis Zharkov
820506d9c6
Fix tests after new Continuation API support
...
#KT-24863 Fixed
2018-07-09 15:27:19 +03:00
Alexander Udalov
959c2f4843
Get rid of split packages in descriptors, descriptors.jvm, deserialization
...
Also move some other files to related packages and reformat moved files
2018-07-06 14:08:35 +02:00
Ilmir Usmanov
bc8295b137
Minor: regenerate tests
2018-07-05 15:09:13 +03:00
Ilmir Usmanov
4ec82cad90
Minor: add test to call callable references from Java
2018-07-05 15:09:06 +03:00
Ilmir Usmanov
28ad498956
Use AnonymousFunctionDescriptor for suspend callable references
...
Also use it for local suspend functions, which allows us to remove hack
with dropSuspend.
Regenerate tests.
2018-07-05 15:08:49 +03:00
Ilmir Usmanov
eea95441c5
Add diagnostics tests. Forbid callable reference to coroutineContext
...
#KT-16908: Fixed
2018-07-05 15:08:42 +03:00
Ilmir Usmanov
f94b579d19
Implement callable references to suspend functions
...
In FE they have type KSuspendFunctionN
In BE they are treated like normal callable references with additional
parameter in invoke function.
2018-07-05 15:08:34 +03:00
Mikhail Zarechenskiy
2939d9c8c6
Use correct lhs KotlinType & AsmType for is check generation
...
There were two problems:
- For asm type `OBJECT_TYPE` was used, which can be wrong in case of
inline classes, because it can be an underlying value of some inline class
- For KotlinType, type from rhs was used
2018-07-05 12:55:43 +03:00