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
LepilkinaElena
61f5523805
Added Native-specific checker for properties of top level singletons ( #3172 )
2020-03-06 14:58:09 +03:00
Dmitry Petrov
eba45d4f89
KT-36963 Deparenthesize !! argument when generating expression
2020-03-06 14:55:41 +03:00
Dmitry Petrov
71e4b0c9ad
KT-31649 Use 'Any#hashCode' in generated hashCode if class has none
2020-03-06 14:55:40 +03: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
Pavel Kirpichenkov
dc42b20ae3
[NI] Use alternative to intersection type in public declarations
...
The new inference uses inferred intersection types normally, unlike the old inference.
However, intersection types in public declarations are approximated to supertype, which
potentially may give a less presice type, then it would be with the OI.
For non-related T1, T2 the NI approximates {T1 & T2} to Any in public declarations,
and if the OI was inferring T1 instead of the intersection type, it may lead to
less precise declaration type and related errors.
The solution is to remember an alternative for an intersection type when present.
Before approximation the alternative replaces the intersection type.
^KT-36249 Fixed
2020-03-05 20:20:47 +03:00
Dmitry Petrov
4038c758ca
KT-37131 Record default arguments in argument adaptation
...
Also, don't adapt argument when expected type is base reflection type
(KCallable<T>, etc), since such types don't contain parameter types.
2020-03-05 19:32:39 +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
Dmitriy Novozhilov
5f9876479e
[FIR] Add saving of local context in anonymous functions for further resolve
...
#KT-37066 Fixed
2020-03-05 16:48:47 +03:00
Dmitriy Novozhilov
8023d04c61
[FIR] Add separate local scope for init blocks
2020-03-05 16:48:47 +03:00
Dmitriy Novozhilov
25dc9f948a
Revert "[FIR] Support deserialization of annotations on JVM"
...
This is needed because of that commit tragically decreases performance,
so this changes will be delayed for now
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
Mikhail Glukhikh
5af4efd5a7
Remove FIR test data file accidentally left in 8884cbe4
2020-03-05 15:51:41 +03:00
Mikhail Glukhikh
8884cbe415
Introduce FIR_IDENTICAL for FIR vs old frontend tests #KT-36879 Fixed
2020-03-05 09:39:40 +03: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
fe658ce47f
FIR2IR: remove redundant receiver generation from visitor
...
Now static functions have no dispatch receiver: they really shouldn't.
2020-03-04 16:55:34 +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
3ffe1a1876
FIR2IR: create IrEnumConstructorCall even in complex entries
2020-03-04 16:55:33 +03:00
Mikhail Glukhikh
5af3d92271
FIR2IR: cache enum entry classes properly
2020-03-04 16:55:33 +03:00
Mikhail Glukhikh
03eab2ec6c
FIR2IR: get rid of setParentAndContent + fixes around anonymous objects
2020-03-04 16:55:32 +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
32bcab2867
Switch rest of test to new scheme with configuration kind processing
2020-03-04 14:51:21 +01:00
Mikhael Bogdanov
ae9a91e17d
Switch 'AbstractCompilerLightClassTest' to new scheme with configuration kind
2020-03-04 14:51:19 +01:00
Mikhael Bogdanov
f84ac5e3f9
Remove configuration kind from AbstractDumpDeclarationsTest tests
2020-03-04 14:51:18 +01:00
Mikhael Bogdanov
0a8454d5fc
Remove FULL_JDK from AbstractForeignAnnotationsTest tests
2020-03-04 14:51:16 +01:00
LepilkinaElena
b031706ea9
Added Native-specific frontend checker for @SharedImmutable ( #3091 )
2020-03-04 16:45:37 +03: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
Victor Petukhov
d6ccdb3caa
NI: fix extensionLambdasAndArrow test
2020-03-03 13:55:15 +03:00
Pavel Kirpichenkov
ad988dbf43
minor: update test data
2020-03-03 12:57:41 +03:00