Commit Graph

10899 Commits

Author SHA1 Message Date
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