Dmitry Petrov
8763235053
JVM specially hacked method analyzer for FixStack
2021-07-20 19:50:58 +03:00
Roman Artemev
09d30c91bf
[JS TESTS] Disable mangler checker in tests
2021-07-01 17:40:41 +03:00
Ilmir Usmanov
435b522cc5
Minor. Unmute test
2021-06-23 11:18:25 +02:00
pyos
537ce05bc9
JVM_IR: assume function reference adapters are tail-call
...
Meaning, they never need continuation objects. This shouldn't affect
correctness (if the assumption is valid, the continuation object
should always have been removed in the end), but the phantom
continuation sometimes left behind unused accessors (and in case of
inline function references, those accessors would refer to non-existent
functions) - see the modified test and Kotlin/kotlinx.coroutines#2769 .
2021-06-23 11:18:25 +02:00
pyos
cf660cf24a
JVM_IR: expect unboxed return value from suspend default stubs
...
#KT-47206 Fixed
2021-06-21 18:53:31 +03:00
pyos
0bd8d16fe2
JVM_IR: fix Result types in continuations & remove more codegen hacks
...
#KT-47129 Fixed
2021-06-07 09:57:42 +02:00
Steven Schäfer
984e912f8d
JVM IR: Do not unbox Results in suspend lambda invoke methods (KT-46813)
2021-05-20 14:40:00 +02:00
Dmitriy Dolovov
896929cb21
[Native] Support suspend functions as supertypes
...
^KT-46777
2021-05-19 16:09:38 +03:00
Mads Ager
d397efb2bd
[JVM IR] Copy attributes for JVM_STATIC_WRAPPERS.
2021-05-11 16:26:04 +02:00
Ilmir Usmanov
cb89bd0e13
Generate SuspendFunction marker interface if supertype is suspend
...
Otherwise, is/as checks will not work.
#KT-18707
2021-04-29 17:11:31 +03:00
Ilmir Usmanov
0c0710bb79
Fix outer class accesses inside suspendImpl functions
...
We need to generate this$0 fields to get to the outer class and generate
accesses to these fields inside suspendImpl function.
#KT-46214 Fixed
2021-04-27 10:44:18 +02:00
Ilmir Usmanov
dc2485ae71
Support suspend functions as superinterfaces
...
Forbid mixing suspend and non-suspend functional supertypes.
Since JVM BE generates suspend functional types as non-suspend ones
with SuspendFunction marker interface, there is not way to distinguish
non-suspend functional type from suspend one if they are mixed.
#KT-18707 Fixed
2021-04-26 22:14:32 +02:00
Mark Punzalan
9a4742c08d
FIR: Properly build nullable suspend function types, and aggregate
...
modifiers and annotations within KtTypeReference/REFERENCE_TYPE nodes.
2021-04-26 15:11:38 +03:00
Ilmir Usmanov
f7a9bc3521
Minor. Make test actually suspend and add a test without suspension
2021-04-23 03:50:08 +02:00
pyos
23ffbe4d9e
JVM_IR: do not box inline classes in suspend multifile bridges
2021-04-23 03:49:47 +02:00
pyos
7d95943b8b
JVM_IR: do not box inline classes in suspend synthetic accessors
2021-04-23 03:49:43 +02:00
Alexander Udalov
21e9bd7ea2
Add regression tests for obsolete issues
...
#KT-9304
#KT-14961
#KT-16549
#KT-21080
#KT-28234
#KT-30102
#KT-31994
#KT-34291
#KT-38099
#KT-41174
#KT-44622
#KT-44701
#KT-44781
#KT-44849
#KT-44978
#KT-45081
#KT-45286
#KT-45383
#KT-45444
#KT-45907
2021-04-20 21:24:29 +02:00
Ilmir Usmanov
1c48fb28db
Generate return when generating continuation class for expression body
...
Otherwise, the function will return Unit instead of correct value.
#KT-46007 Fixed
2021-04-15 13:54:45 +03:00
Ilmir Usmanov
29c975fc43
Minor. Add regression test
...
#KT-45539 Obsolete
2021-04-14 10:48:57 +02:00
Steven Schäfer
7a9ff15d73
JVM IR: Handle suspend interface default methods with generic types (KT-45166)
2021-04-13 23:04:32 +02:00
Mads Ager
b27a109a1e
[JVM] Fix shrinking of local range for dead variables.
...
Coroutine transform would occasionally *extend* the range of a
local instead of shrinking it (if the next suspension point
is after the end point for the local). That leads to the local
variable table having a local that covers code where it is not
defined. That is invalid and leads to D8 removing the locals
table from the code.
2021-04-09 19:06:13 +03:00
Ilmir Usmanov
786999bcfe
Minor. Add regression tests
...
#KT-44143
2021-04-01 00:51:08 +03:00
Ilya Goncharov
47f1a8a0bb
[IR] Make IrTypeOperatorCall copyable
...
^KT-45655 fixed
2021-03-31 20:14:52 +03:00
Ilmir Usmanov
5e6f52009f
JVM IR: IC coroutines: return boxed type from suspend function if
...
the function overrides function, returning type argument
#KT-45451 Fixed
2021-03-25 16:21:55 +01:00
Dmitry Petrov
4f250ed498
JVM_IR KT-45377 rewrite constants again after AddContinuationLowering
2021-03-23 16:05:24 +03:00
Mikhael Bogdanov
c25a694b6b
Generate private suspend functions as private (not synthetic package-private)
...
#KT-26592 Fixed
2021-03-01 16:20:19 +01:00
Ilmir Usmanov
d44799fa78
JVM IR: Use INVOKESPECIAL instead of INVOKEVIRTUAL for default private
...
suspend functions.
#KT-26592
2021-02-23 18:49:10 +01:00
Ilmir Usmanov
3ee62cb1b2
JVM IR: Do not generate private suspend functions as synthetic package-private
...
#KT-26592
2021-02-23 18:49:06 +01:00
Dmitriy Novozhilov
7b7b8fbea7
[Test] Filter dependent modules by source kind in creating FirModuleInfo
2021-02-18 14:44:44 +03:00
Alexander Udalov
73aa465ee9
Add tests for issues fixed in JVM IR
...
Note that KT-30696 is fixed only in the single-module case, and KT-42012
is not fixed fully (see KT-44855).
#KT-30041
#KT-30629
#KT-30696
#KT-30933
#KT-32351
#KT-32749
#KT-38849
#KT-42012
#KT-42990
#KT-44234
#KT-44529
#KT-44631
#KT-44647
2021-02-10 21:42:10 +01:00
Ilmir Usmanov
cd189c0812
JVM_IR. Do not unbox Result in inline lambda
...
Since JVM_IR generates inline lambdas differently from old backend,
in this case, it generates them as normal functions.
Thus, there is no need to unbox the lambda argument.
#KT-44671 Fixed
2021-02-04 20:22:20 +01:00
Svyatoslav Kuzmich
c9cb7bc0fd
[JS IR] Update tests
2021-02-04 16:16:41 +03:00
Ilmir Usmanov
02f845636e
JVM_IR: Box generic Result parameter in suspend lambda
...
#KT-44527 Fixed
2021-02-03 19:18:27 +01:00
Ilmir Usmanov
a30a961cf5
Minor. Throw exceptions in test coroutine builders
2021-02-03 19:18:24 +01:00
Ilya Goncharov
d6e74b9620
[JS IR] Use local scope for SAM if there are scopes
...
[JS IR] Use private for top level sam wrappers and local otherwise
^KT-44433 fixed
2021-02-03 12:13:52 +03:00
Alexander Udalov
5480faf5c5
Add tests for issues fixed in JVM IR and other obsolete issues
...
#KT-6007
#KT-16445
#KT-17753
#KT-22488
#KT-23881
#KT-24135
#KT-26360
#KT-27427
#KT-27449
#KT-27830
#KT-28042
#KT-29595
#KT-30708
#KT-32793
2021-02-01 18:29:59 +01:00
Dmitriy Novozhilov
98c22f9e59
[TD] Add forgotten bytecode dump
2021-01-25 17:08:32 +03:00
Dmitriy Novozhilov
6a7cd0c811
[Test] Add ability to specify applicability of diagnostic to module or file
2021-01-22 13:51:19 +03:00
Ilmir Usmanov
704366e531
JVM: Mark suspend lambda receiver as used if callable reference
...
accesses it.
#KT-44131 Fixed
2021-01-21 12:47:59 +01:00
Ilmir Usmanov
b476f1cc3e
Minor. Change test to use the feature instead of suppressing error
2021-01-19 16:03:33 +01:00
Zalim Bashorov
47c4197098
[JS old] Revert fix made for KT-44221 in ab753625
...
And mute the test for old BE.
#KT-44221 Open
2021-01-13 01:22:17 +03:00
Dmitriy Novozhilov
2eeed1281c
[Test] Mute failing FIR BB tests related to MPP
2021-01-12 18:35:37 +03:00
Dmitriy Novozhilov
3a41f1e435
[Test] Filter out support module with coroutine helpers from module deps
...
In old tests coroutine helpers was added as separate module named `support`
instead of additional files for current module.
So to safe compatibility with old testdata we need to filter this dependency
2021-01-12 18:35:26 +03:00
Dmitriy Novozhilov
7e92fb8eb9
[Test] Remove redundant empty IGNORE_BACKEND directive
2021-01-12 18:35:23 +03:00
Svyatoslav Kuzmich
ab753625fe
[JS Legacy] Fix returning Char from suspend functions (KT-44221)
...
Mark translated expression with a proper type, like we do with
non-suspending calls, to coerce it later.
2021-01-12 15:42:31 +03:00
Jinseong Jeon
093f62caac
FIR2IR: check non-parameter Unit type for adapted callable references
2021-01-11 16:23:00 +03:00
Ilmir Usmanov
8bfcef415e
Do not generate variables for non-generated fields
...
Use attributes instead of classes.
#KT-43048 Fixed
2020-12-23 19:45:15 +01:00
Dmitriy Novozhilov
b416c669b0
[TEST] Update testdata due to dropped COMMON_COROUTINE_TEST directive
2020-12-10 01:31:04 +03:00
Jinseong Jeon
2dfba10d84
FIR: extend suspend conversion to intersection type
2020-12-09 19:53:25 +03:00
Ilmir Usmanov
7f51f57998
Generate correct $default method for actual suspend function
...
In order to do this, we need to get initial expect suspend function
before generating default value parameters checks.
#KT-43587 Fixed
2020-12-08 04:36:38 +01:00