Kirill Rakhman
d00513599b
[FIR2IR] Expand typealias in callable reference receiver generation
...
^KT-56750 Fixed
2023-03-02 08:20:04 +00:00
Ivan Kochurkin
ee53c5780f
[FIR] Extract K2 MPP test data to the separated directory
2023-03-01 22:10:11 +00:00
Ivan Kochurkin
585343d646
[FIR] Remove SessionUtils because it's not used
2023-03-01 22:10:09 +00:00
Ivan Kochurkin
9d0e02658f
[FIR] Support of ACTUAL_TYPE_ALIAS_WITH_COMPLEX_SUBSTITUTION diagnostic
2023-03-01 22:10:09 +00:00
Ivan Kochurkin
3e33258f36
[FIR] Support of ACTUAL_TYPE_ALIAS_WITH_USE_SITE_VARIANCE diagnostic
2023-03-01 22:10:08 +00:00
Ivan Kochurkin
cf1bd9837a
[FIR] Support of ACTUAL_TYPE_ALIAS_TO_CLASS_WITH_DECLARATION_SITE_VARIANCE diagnostic
2023-03-01 22:10:08 +00:00
Ivan Kochurkin
8bf9d6c92f
[FIR] Support of ACTUAL_TYPE_ALIAS_NOT_TO_CLASS diagnostic
...
^KT-56514 Fixed
2023-03-01 22:10:08 +00:00
Ivan Kochurkin
c418a7a7bf
[FIR] Support of ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS diagnostic
...
^KT-56522 Fixed
2023-03-01 22:10:07 +00:00
Ivan Kochurkin
f1fef62f76
[FIR] Consider default values from expect function during serialization
...
It's not possible to unmute some tests for K2 because it causes testData structure changing
If change testData, NATIVE doesn't work even with `IGNORE_BACKEND`
2023-03-01 22:10:07 +00:00
Ivan Kochurkin
d87619e06e
[FIR & IR] Support of default values for arguments in expect functions
...
Add FirActualDeclarationChecker that checks expect/actual return types
^KT-56331 Fixed, ^KT-56334 Fixed
2023-03-01 22:10:07 +00:00
Igor Chevdar
c038bbde08
[box-tests] Added a reproducer for KT-56965
2023-03-01 08:09:51 +00:00
Kirill Rakhman
fbc0796ed2
[FIR] Accept opt-in annotations on primary ctor params of properties
...
For backward compatibility with K1.
KT-56177
2023-02-28 10:19:20 +00:00
Kirill Rakhman
2139914061
[FIR] Add diagnostic when annotation argument is resolved ambiguously
...
Annotation arguments that are resolved in COMPILER_REQUIRED_ANNOTATIONS
phase are resolved again in ANNOTATION_ARGUMENTS phase. If they resolve
to a different symbol, report an error.
KT-56177
2023-02-28 10:19:19 +00:00
Kirill Rakhman
9dda5e4fcd
[Test] Remove redundant FIR_DISABLE_LAZY_RESOLVE_CHECKS directives
...
KT-56177
2023-02-28 10:19:18 +00:00
Kirill Rakhman
eee66ab43f
[FIR] Remove duplicate annotations from primary ctor params/properties
...
If an annotation doesn't specify an explicit use-site target,
previously it was added to both, the primary constructor value parameter
and the property in the FIR. Then, in FIR2IR, only the "correct" one was
added to the IR. Move up the deduplication logic into the frontend.
^KT-56177 Fixed
2023-02-28 10:19:17 +00:00
Kirill Rakhman
9268fd0e87
[FIR] Call enum entries in deserialized annotations as property access
...
KT-56177
2023-02-28 10:19:15 +00:00
Kirill Rakhman
a0de481de6
[FIR] Format FirDeclarationsResolveTransformer
2023-02-28 10:19:14 +00:00
Mikhail Glukhikh
37838963c6
IR: extract AbstractIrLazyFunction and tryLoadIr
2023-02-28 10:07:28 +00:00
Mikhail Glukhikh
f075c9d50b
IR: extract & rename getTopLevelDeclaration() to IrLazyFunctionBase
2023-02-28 10:07:28 +00:00
pyos
7420008af9
FIR2IR: load property setter noinline/crossinline flags
...
#KT-56234 Fixed
2023-02-28 10:07:27 +00:00
Dmitriy Novozhilov
8ff4af034a
[FIR] Don't drop directly inherited functions from origins for intersection overrides in intersection scope
...
```
open class Base<T> {
fun foo(): T = ...
}
class Derived<T> : Base<T> {
override fun foo(): T = ...
}
```
In intersection scope of type `Base<T> & Other<R>` we should create
intersection override based on `Base.foo(): T` and `Derived.foo(): R`
at the same time, despite the fact that `Derived.foo` actually directly
overrides `Base.foo`
^KT-56722 Fixed
2023-02-28 09:17:41 +00:00
Dmitriy Novozhilov
e0fa1e64b9
[FIR] Properly setup java parser version for CLI pipeline with light tree
...
^KT-56549 Fixed
2023-02-28 09:17:41 +00:00
Dmitriy Novozhilov
f836d16dc6
[FIR] Don't generate synthetic declarations from java records from binary dependencies
...
^KT-56548 Fixed
2023-02-28 09:17:40 +00:00
Dmitriy Novozhilov
244dbb37cf
[FIR] Properly set isOperator flag for java functions
...
^KT-56875 Fixed
2023-02-28 09:17:40 +00:00
Dmitriy Novozhilov
df47581c5a
[FIR] Consider call site in argument mapping handling for set operator call
...
^KT-56542 Fixed
^KT-56714 Fixed
2023-02-28 09:17:40 +00:00
Dmitriy Novozhilov
cbc8b74e89
[FE 1.0] Don't check star projections in PrivateInlineFunctionsReturningAnonymousObjectsChecker
...
^KT-56692 Fixed
2023-02-28 09:17:39 +00:00
Dmitriy Novozhilov
2a022ca9e0
[FIR] Properly propagate deadness from try main block throw finally block
...
^KT-56476 Fixed
2023-02-28 09:17:39 +00:00
Nikolay Lunyak
72823657c9
[FIR] Assume SafeCallsAreAlwaysNullable is always on
2023-02-27 15:00:30 +00:00
Nikolay Lunyak
be5850112a
[FIR] KT-56723: Ensure safe access over non-expressions is always Unit
...
^KT-56723 Fixed
2023-02-27 15:00:30 +00:00
wrongwrong
b039f2e574
Fix ArrayStoreException from InlineClassAwareCaller.call
...
#KT-56650 Fixed
2023-02-27 14:29:51 +01:00
Mikhail Glukhikh
f7036aa79c
FIR2IR: don't generate default parameters for delegated members
...
#KT-55465 Fixed
2023-02-27 12:58:27 +00:00
Mikhail Glukhikh
b68a26865a
FIR2IR: add test for KT-55465
2023-02-27 12:58:26 +00:00
Egor Kulikov
163017fcaf
[FIR] Do not dereference delegate in lazy mode
...
Tenth step for ^KT-52615
2023-02-24 19:42:11 +00:00
Ilya Kirillov
d2f3dce8c9
[FIR] do not resolve to status inside FirNamedFunctionSymbol.isLocal
...
1. this optimizes the isLocal call
2. this allows to check isLocal without resolving the status from the `FirNamedFunctionSymbol.canBeDeprecated`
2023-02-24 16:10:58 +01:00
Ilya Kirillov
c366a7a9b0
[FIR] optimize FirSymbol.resolvedContextReceivers
2023-02-24 16:10:58 +01:00
Ilya Kirillov
69c024a5ce
[FIR] optimize deprecation calculation for symbols
...
All symbols except member callables can be deprecated if they have non-empty annotation list
^KT-56800 fixed
2023-02-24 16:10:57 +01:00
Dmitriy Novozhilov
0bbc61f459
[FIR] Unwrap flexible types in when exhaustiveness checker
...
^KT-56942 Fixed
2023-02-24 14:58:18 +00:00
Dmitriy Novozhilov
da581f38e1
[Test] Require specifying parser for FIR test. Unify names for FIR tests
...
Now all tests with `Fir` in name are named accordingly to parser which
is used in them -- `FirPsi` or `FirLightTree`. This is needed to keep
consistency between different types of tests, because there is no
single default in parser mode between different scenarios of using FIR
2023-02-24 11:15:26 +00:00
Ilmir Usmanov
b3890885c4
JVM: Break infinite loop in finding meaningful instruction
...
during tail-call optimization.
There can be code, where all next instructions are non-meaningful and
there is a back-edge, for example, while(true){}. Previously, analyzer
incorrectly assumed, that this cannot happen. Now, it keeps track of
visited instructions and says, that there is no meaningful instruction
in such case.
#KT-56815 Fixed
2023-02-23 17:54:46 +00:00
Igor Chevdar
5d3b61364a
Added a test for KT-56500
2023-02-23 15:32:25 +00:00
Dmitriy Novozhilov
331cc1465a
[FE] Properly parse java class name from sources if java class has annotations
...
^KT-56847 Fixed
2023-02-23 12:14:15 +00:00
Alexander Udalov
d73d3c46e2
K2 JVM IR: fix access to Java field shadowed by Kotlin property
...
#KT-56386 Fixed
Co-authored-by: Mikhail Glukhikh <Mikhail.Glukhikh@jetbrains.com >
2023-02-23 12:54:00 +01:00
Alexander Udalov
4ad594a3cd
Minor, move tests about Java field and Kotlin property
...
Because the `fieldRename` directory was originally about cases when
private fields are renamed because of clashes.
2023-02-23 12:54:00 +01:00
Alexander Udalov
1cb77a47ec
Fir2Ir: extract error about unsupported mutation
2023-02-22 22:40:34 +00:00
Alexander Udalov
22b4b29292
IR: make most properties mutable
2023-02-22 22:40:34 +00:00
Pavel Mikhailovskii
7700484a16
[AA] Fix conversion of annotation values
2023-02-22 13:55:50 +00:00
Ilmir Usmanov
68841fa031
Minor. Regenerate tests
2023-02-22 12:45:03 +00:00
Ilmir Usmanov
6be734c27e
JVM: Remove inplace arguments before state-machine building
...
#KT-56258 Fixed
2023-02-22 12:45:03 +00:00
Denis.Zharkov
66eb29962a
K2: Add minor clarification comment to FirDeclarationsResolveTransformer
2023-02-21 18:39:40 +00:00
Denis.Zharkov
3f052af517
K2: Propagate explicit getter type to the property without initializer
...
In K1, we have the rules like:
- if there's explicit type of a property, then use it
- if there's an initializer, obtain its expression-type
- Otherwise, use getter's return type
The case when getter's type is implicit is handled at
FirDeclarationsResolveTransformer.transformProperty
^KT-56707 Fixed
2023-02-21 18:39:40 +00:00