Mikhail Zarechenskiy
83975bd6ac
Generate stub for specialized equals inside inline class
2018-09-06 10:39:33 +03:00
Dmitry Petrov
a2900282fd
Call factory method for primary constructors of inner classes
...
We might want to add 'init' blocks later, so now, for the sake of
binary compatibility with 1.3-RC binaries, we have to generate these
'constructor' calls.
Note that in some tests inline class boxing is no longer redundant,
because resulting value is passed to 'constructor' as an argument.
2018-09-05 12:20:57 +03:00
Dmitry Petrov
05daa21657
Fix inline class secondary constructor call generation
...
Don't generate NEW+DUP for inline class constructor calls.
2018-09-05 12:20:57 +03:00
Dmitry Petrov
3080b65f7d
Inline (wrapper) class IC extends erased inline class IC$Erased
2018-09-05 12:20:57 +03:00
Svyatoslav Kuzmich
ad58fdd158
[JS IR BE] Unmute tests after adding stdlib
2018-09-04 20:19:04 +03:00
Svyatoslav Kuzmich
197a5969e2
[JS IR BE] Fix stdlib files list for 1.3
2018-09-04 20:19:04 +03:00
Svyatoslav Kuzmich
c3b9a5108e
[JS IR BE] Add more stdlib files to runtime
...
Keep old sources list for coroutine tests
2018-09-04 20:19:04 +03:00
Roman Artemev
6387cc45aa
Update testIr.html
2018-09-04 12:43:39 +03:00
Roman Artemev
a46b1cf126
[JS IR BE] Remove workaround to run coroutine tests
2018-09-04 12:43:39 +03:00
Mikhail Zarechenskiy
9a978d2c8f
Fix test data after daadba0927
2018-08-31 18:17:34 +03:00
Roman Artemev
8a871b3f0c
Update tests
2018-08-31 15:34:18 +03:00
Roman Artemev
d1621b80cc
Fake wrapped descriptors first working draft
...
get rid of descriptors in Bridge and Enum lowerings
Replace property accessors function type with IrSimpleFunction because they couldn't be constructors
get rid of descriptors in Callable reference lowering
refactored descriptor factory and inner class lowering
Add isReified property to IrTypeParameter declaration
keep getting rid of descriptors
Get rid of descriptors in Shared Variable Manager
LocalDeclarationLowering also uses no descriptors
Fix psi2ir
Fix nested classes names
Fix outer reference in inner classes
Fix name generator
get rid of descriptors in coroutines - something is working
Fix name generator
Fix unbound symbols in JVM BE
Rename DeclarationFactory members
2018-08-31 15:34:18 +03:00
Ilya Gorbunov
056db883c3
Fix JS IR runtime compilation for tests after applying OptionalExpectation
...
Jvm-specific actuals were removed from stdlib/js runtime.
Recreate them in irRuntime so they can be resolved when compiling runtime for IR tests.
2018-08-31 04:17:42 +03:00
Alexander Udalov
ac14c5e74f
Fix KType.javaType for suspend function return type
...
#KT-26293 Fixed
2018-08-30 16:47:48 +02:00
Ilmir Usmanov
f3879af9f6
Implement suspend lambdas of big arity
...
Suspend functions and callable references to suspend lambdas are already
supported.
Support callSuspendBy of suspend function of big arity.
#KT-24854: Fixed
2018-08-30 17:29:09 +03:00
Anton Bannykh
9af8fad43f
JS: more coroutines 1.3 API related fixes
2018-08-30 16:24:45 +03:00
Anton Bannykh
8975a6e17e
JS: adapt to 1.3 coroutines API
...
Also update a line number test
2018-08-30 16:24:43 +03:00
Dmitry Savvinov
e29de37ac4
Fix JS IR BlackBox tests after contracts publishing
...
- Add necessary files to compilation
- Opt-in for experimentality
See changes at e2606b72bdbec2fea567d4127197707869eb801e
2018-08-30 16:19:58 +03:00
Ilmir Usmanov
22f9a6ce08
Add coroutines debug metadata: compiler
...
#KT-25557 Fixed
#KT-25559 Fixed
2018-08-30 16:19:41 +03:00
Ilmir Usmanov
fe451dce31
Implement correct is check for SuspendFunction
...
Add test for suspend functions with language version 1.2.
Minor edit in SuspendFunction docs.
2018-08-30 16:17:46 +03:00
Dmitry Petrov
a205019156
Additional tests and fixes for function name mangling
2018-08-30 14:58:54 +03:00
Dmitry Petrov
a56d1d3ce8
Mangle function names with inline class parameters
...
Avoid name clashes in cases such as
inline class Login(val login: String)
inline class Password(val password: String)
fun validate(login: Login) { ... }
fun validate(password: Password) { ... }
2018-08-30 14:58:50 +03:00
Ilmir Usmanov
e93683621a
Implement callSuspend and callSuspendBy functions as KCallable's
...
extension methods.
Also make isSuspend a member of KCallable.
#KT-21972: Fixed
2018-08-30 14:57:48 +03:00
Anton Bannykh
a83baee67b
review fixes + DCE data update + test (un)muting
2018-08-30 14:57:27 +03:00
Anton Bannykh
6103df0b31
JS: support signed constant expressions as unsigned primitive arguments
2018-08-30 14:57:22 +03:00
Anton Bannykh
934e11aa60
JS: support unsigned primitive vararg's
2018-08-30 14:57:20 +03:00
Anton Bannykh
a11c4871ea
JS: equals, hashCode, toString support in inline classes
2018-08-30 14:57:16 +03:00
Alexander Udalov
ceb909d261
Inherit KType from KAnnotatedElement, implement KType.annotations
...
#KT-16795 Fixed
2018-08-30 14:56:57 +03:00
Ilya Gorbunov
99de68507d
Workaround for new MPP dependency configuration limitations
2018-08-30 14:56:46 +03:00
Alexander Udalov
cbc92bc9a1
Add KClass.sealedSubclasses to get direct subclasses of sealed class
...
#KT-14657 Fixed
2018-08-30 14:56:21 +03:00
Mikhail Zarechenskiy
d94b47bcd3
Support other kinds of translation for unsigned literals
2018-08-30 14:55:34 +03:00
Roman Artemev
d1df5f5783
Fix unsigned constants translation (Int to UInt)
2018-08-30 14:54:30 +03:00
Mikhail Zarechenskiy
61efbea9a8
Initial support of unsigned literals translation in JS
2018-08-30 14:54:27 +03:00
Ilya Gorbunov
e4d7efcf06
Update expected reachable node count in JS tests
...
Caused by new coroutine API an its js support
2018-08-30 14:52:43 +03:00
Ilya Gorbunov
516ea04d18
Update expected reachable node count in JS tests
...
Caused by introduction of new random API
2018-08-30 14:52:40 +03:00
Roman Artemev
cc14442be1
Add tests for primitive companion object
...
Update test data
2018-08-24 14:58:42 +03:00
Roman Artemev
450ed63690
[JS IR BE] Implement primitive companion object
2018-08-24 14:58:42 +03:00
Dmitry Petrov
2a524920a5
Don't remap inline function args requiring inline class boxing/unboxing
...
Same as for primitives: inline lambda expects to see a boxed value,
so, even if an argument is a local variable, it can't be remapped,
because it contains unboxed representation.
2018-08-24 14:52:29 +03:00
Dmitry Petrov
6e2d05cd94
Fix argument original type order in InlineCodegen
...
Arguments are put on stack in the direct order, and then stored into
local variables for inlining in the reversed order:
<arg0>
<arg1>
<arg2>
store <param2>
store <param1>
store <param0>
Original value parameter types were taken in direct order, though.
2018-08-24 14:52:29 +03:00
Anton Bannykh
4e496cf2b2
JS: don't throw AssertionError from RedundantCallElimination
...
Also mark JS `call` function to avoid removing a custom `call`
2018-08-23 14:44:40 +03:00
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
Anton Bannykh
04b04f919d
JS: fix complex nested cross-module inlining (KT-26117 fixed)
2018-08-21 20:42:02 +03:00
Zalim Bashorov
503fcd5cd3
[JS FE] Minor: cleanup JsExternalChecker.kt
2018-08-21 17:09:34 +03:00
Zalim Bashorov
589085369e
[JS FE] Unify how the compiler checks parameters and return types for external declarations
2018-08-21 17:09:33 +03:00
Zalim Bashorov
9d0b880f67
[JS FE] Prohibit inline classes as parameter type and return type of external declarations
...
#KT-26171 Fixed
2018-08-21 17:09:33 +03:00
Zalim Bashorov
839bce5236
[JS FE] Prohibit external inline classes
...
#KT-26138 Fixed
2018-08-21 17:09:33 +03: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