pyos
8487211ae1
JVM_IR: refine the condition for mangling names of multifile members
...
Private $$forInline versions of public suspend functions should not
be mangled. (Note that there are no $$forInline versions of private
suspend functions, as those are effectively inline-only.)
2020-03-06 14:33:50 +01:00
Igor Chevdar
93394656a3
[IR] Supported fake overrides in SAM lowering + enabled test
2020-03-06 12:47:00 +03:00
Dmitriy Novozhilov
af67aff303
[FIR] Support Clonable
...
#KT-36762 Fixed
2020-03-06 10:44:14 +03:00
Steven Schäfer
bb5a639153
JVM IR: Turn static callable references into singletons
2020-03-05 22:19:53 +03:00
Pavel Kirpichenkov
ac5c255c20
[NI-TESTS] Add regression tests
...
^KT-33638 Obsolete
Add test for case mentioned in KT-33629.
Used to be runtime failure instead of error diagnostic.
2020-03-05 20:20:47 +03:00
Dmitriy Novozhilov
3742586209
[FIR-TEST] Unmute some blackbox tests
2020-03-05 16:48:48 +03:00
Dmitriy Novozhilov
e3e7b40f85
[FIR] Fix determining coercion to Unit
2020-03-05 16:48:48 +03:00
Dmitriy Novozhilov
770dfb69ba
[FIR] Analyze all statements in block except last one in independent mode
...
Some broken tests will be fixed in next commit
#KT-37176 Fixed
2020-03-05 16:48:47 +03:00
Alexander Udalov
0f7122a88a
Support MutablePropertyReferenceN supertypes in LambdaInfo
...
#KT-37087 Fixed
2020-03-05 14:01:30 +01:00
Ilmir Usmanov
354fb3c4ba
JVM_IR: Generate fake continuations and their constructors as public
...
#KT-37093 Fixed
2020-03-04 21:32:35 +01:00
Ilmir Usmanov
c94f8d3767
JVM_IR: Do not generate nullability annotation for synthetic result field
...
of continuation class.
#KT-37084 Fixed
2020-03-04 21:32:34 +01:00
Ilmir Usmanov
4b4a6101c1
JVM_IR: Generate inline functions with reified generics as public synthetic
...
Otherwise, proguard will remove them.
#KT-37004 Fixed
2020-03-04 21:32:31 +01:00
Ilmir Usmanov
f8903ca04b
JVM_IR: Generate private suspend functions as synthetic package-private
...
Do not generate accessors for them.
#KT-37086 Fixed
2020-03-04 21:32:29 +01:00
Ilmir Usmanov
5826db97c7
JVM_IR: Do not duplicate inline suspend functions with reified type parameters
...
They are inline-only.
Generate $$forInline versions of inline suspend functions as private.
This way, there is no nullability annotation on there parameters and return
values. Unfortunately, old BE does generate them.
#KT-37088 Fixed
2020-03-04 21:32:27 +01:00
Dmitry Petrov
3bf2c17f9e
KT-37024 Optimized delegated property metadata generation in inline fun
2020-03-04 18:48:03 +03:00
Mikhail Glukhikh
0fee8a6946
FIR2IR: cache functions and their parents properly
2020-03-04 16:55:33 +03:00
Mikhail Glukhikh
940567b8bd
FIR2IR: set enum class modality properly for complex entries case
2020-03-04 16:55:33 +03:00
Mikhail Glukhikh
50c4c3f4fb
FIR2IR: extract fake override generator
2020-03-04 16:55:32 +03:00
Mikhail Glukhikh
0bb3a42ceb
FIR2IR: mute black box test due to parent logic problems
2020-03-04 16:55:32 +03:00
Mikhail Glukhikh
cfa626ad77
FIR2IR: introduce conversion scope, remove dispatch receiver for lambdas
2020-03-04 16:55:31 +03:00
Mikhael Bogdanov
f84ac5e3f9
Remove configuration kind from AbstractDumpDeclarationsTest tests
2020-03-04 14:51:18 +01:00
Georgy Bronnikov
8b559b20e2
Add a test for getOrDefault() bridge
2020-03-04 16:02:54 +03:00
Georgy Bronnikov
394c660a82
Mute a FIR test
2020-03-04 01:34:17 +03:00
Dmitry Petrov
f678db2f89
KT-36813 Generate optimizable null checks in JVM_IR
2020-03-03 22:38:21 +03:00
Georgy Bronnikov
0c266f9f45
Add hashtable test
2020-03-03 20:01:27 +03:00
Roman Artemev
adc022fde8
Fix some coroutine tests
2020-03-03 18:54:36 +03:00
Roman Artemev
5dcac16cf7
[JS IR] Update test data
2020-03-03 18:54:36 +03:00
Roman Artemev
161bb72439
[JS IR] Update test data
2020-03-03 18:54:36 +03:00
pyos
f66b994946
JVM_IR: make suspend lambda invoke()/create() creation shorter
...
Also, fix finality of fields corresponding to unbound parameters. (They
are set in invoke/create, not in the constructor.)
2020-03-03 15:12:13 +01:00
pyos
159d292ea7
JVM_IR: make continuation detection more consistent
...
* unify various checks for whether a suspend function needs a
continuation;
* mark the continuation parameter with an origin (this also allows
correctly computing the offset of the local in codegen -- see the
new test);
* when wrapping `suspend fun main`, use a suspend reference instead of
a synthetic non-suspend lambda (required to correctly implement the
previous point, as previously the continuation parameter was passed
to main() itself correctly only because of very lenient checks in
AddContinuationLowering).
2020-03-03 15:12:13 +01:00
pyos
ed83e3ccef
Optimize more redundant kotlin/jvm/internal/Refs
...
The number of initializations of the `value` field before the live range
begins does not really matter so long as we insert a write of a default
value to the local if there were none.
2020-03-02 20:20:55 +03:00
pyos
7e6d080123
JVM_IR: default-initialize variables visible in the LVT
...
See KT-36812. Aside from the problem stated there, D8 will throw out the
entire LVT if it sees a variable that has not been written to (and will
generate incorrect SSA if the slot is reused with a different type).
Note: this only fixes a FIR test because it's missing an `else -> throw`
branch, and default initialization satisfies the verifier and masks the
incorrect control flow.
2020-03-02 20:17:10 +03:00
Mikhail Zarechenskiy
d1a8f57740
Disable New Inference in JS backend
...
See #KT-37163 for details
2020-03-02 18:03:41 +03:00
Ilmir Usmanov
22de20e7e5
JVM_IR: Generate PUBLIC constructor for suspend lambda
...
if the lambda is inside inline function.
2020-03-02 14:03:35 +01:00
Ilmir Usmanov
42420cb6fc
JVM_IR: Generate inner classes for continuations
...
Also, generate correct visibilities for constructors and continuation's fields.
2020-03-02 14:03:33 +01:00
Ilmir Usmanov
536e0e23a0
JVM_IR: Lazyly generate continuation classes of suspend functions
...
Otherwise, they will be generated, but unused, if the function is tail-call.
#KT-36795 Fixed
2020-03-02 14:03:31 +01:00
Dmitriy Novozhilov
296ee2da4a
[FIR] Support @LowPriorityInOverloadResolution annotation
2020-03-02 09:49:28 +03:00
Dmitriy Novozhilov
4454a0681b
[FIR] Get rid of copying function call in process of completion
2020-03-02 09:49:28 +03:00
Dmitry Petrov
03913ff029
KT-33119 Generate IINC for primitive types only
2020-02-28 23:20:02 +03:00
Dmitry Petrov
2010d8d2b9
KT-36956 fix back-end part in JVM and JVM_IR
...
PSI2IR: deparenthesize LHS expression when generating assignment
receiver.
FE: record 'set' operator call for code generation.
2020-02-28 23:04:42 +03:00
Steven Schäfer
4ac45eb38b
JVM IR: Fix inline class constructors taking default values of inline class type.
2020-02-28 17:11:59 +01:00
Steven Schäfer
b173284d1d
Add tests for super calls in inline classes
2020-02-28 14:48:17 +01:00
Steven Schäfer
0fe8fec1d1
Mute FIR tests
2020-02-28 14:48:17 +01:00
Steven Schäfer
465e9f2d68
JVM IR: Always produce stubs for interface methods in inline classes
...
This matches the behavior of the JVM backend, with the exception of
@JvmDefault methods, which are currently broken on the JVM backend.
2020-02-28 14:48:17 +01:00
Mikhail Glukhikh
d5fbd93fe6
Unmute additional FIR black box tests
...
This was result of comparison commits together (?) with override commits
2020-02-28 15:29:03 +03:00
Mikhail Glukhikh
883dd95e3c
FIR: fix class / constructor type parameter duplication
2020-02-28 15:29:02 +03:00
Mikhail Glukhikh
2308e5bb7c
FIR2IR: in case of use-site generic type use call from original class
2020-02-28 15:29:02 +03:00
Mikhail Glukhikh
096dc25701
FIR: change callableId of fake overrides to derived class owner
2020-02-28 15:29:02 +03:00
Georgy Bronnikov
963258189a
JVM_IR: change parameter type computation in InlineCallableReferenceToLambda
...
The reference type is approximated in Psi2Ir, so we may get Nothing as
a reference type argument. Better look at the arguments of the
referenced function.
2020-02-28 12:59:21 +03:00
Ilya Gorbunov
b53cb5cb4c
Cover with a test current Double/Float companion values access
2020-02-28 01:26:56 +03:00