Kirill Rakhman
60b227c519
[FIR] Sort HMPP dependencies topologically for symbol providers
...
This fixes an issue where an actual class from an intermediate module
has more supertypes than its expect declaration which leads to a
false-positive resolution error because a type reference resolves to the
expect class. The fix is to sort the dependencies topologically from
"most actual" to "most expect" when creating the list of symbol
providers.
#KT-57369 Fixed
2023-03-27 07:41:05 +00:00
Ivan Kylchik
f44d82ce6d
Add test to check that name field in Java enum is not constant
2023-03-24 15:55:07 +00:00
Ivan Kylchik
63b340651d
Add possibility to interpret and fold IrStringConcatenation expression
2023-03-24 15:55:06 +00:00
Dmitrii Gridin
9a4a3d1f49
[LL FIR] introduce test with reversed resolve order
...
^KT-56543
Merge-request: KT-MR-9299
Merged-by: Dmitrii Gridin <dmitry.gridin@jetbrains.com >
2023-03-22 17:34:07 +00:00
Ivan Kochurkin
cd07eba25c
[K2, MPP] Fix reporting of MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED
2023-03-22 01:28:19 +00:00
Ivan Kochurkin
60edf1def3
[K2, MPP] Support actualization of enums and annotations that have primary constructor with arguments
...
^KT-57241 Fixed
2023-03-22 01:28:18 +00:00
Ivan Kochurkin
44807b7bd4
[K2, MPP] Support actualization of actual function with dynamic arguments
...
^KT-57210 Fixed
2023-03-22 01:28:18 +00:00
Ivan Kochurkin
ec34b9fa7b
[K2, MPP] Restore ir functions actualization by argument types instead of full signatures
...
Refactor IrActualizer
2023-03-22 01:28:17 +00:00
Ivan Kochurkin
d99b4c78d2
[K2, MPP] Correct actualization of nested objects
...
^KT-57182 Fixed
2023-03-22 01:28:17 +00:00
Ilya Chernikov
59b88f33b2
[K2, MPP] implement IR errors reporting and test infrastructure
...
Fix test data
^KT-56344 Fixed
2023-03-22 01:28:16 +00:00
Ivan Kochurkin
a3e7a35cb1
[FIR] Create separated FirBlock for loop local val
...
Refactor FIR builders code for ForExpression
2023-03-21 20:24:57 +00:00
Ivan Kochurkin
e49bb1fe37
[FIR] Support of REDECLARATION for local val/var, ^KT-54405 Fixed
2023-03-21 20:24:57 +00:00
Ivan Kylchik
8eeb7e2631
Modify test data to reflect changes with IntrinsicConstEvaluation
2023-03-21 20:02:44 +00:00
Mikhail Glukhikh
45e78455b2
K2: repeat K1 behavior around multiple inheritance by delegation
...
#KT-56720 Fixed
2023-03-21 16:16:20 +00:00
Mikhail Glukhikh
ab883d91c8
FE: add tests to reproduce KT-56720
2023-03-21 16:16:19 +00:00
Denis.Zharkov
38138bf079
K2: Fix bounds erasure for raw types
...
Basically, this commit reworks eraseToUpperBound* stuff
Instead of a bunch of vague flags, we introduce two modes
(rawTypes/intersection emptiness checker) which defined those flags.
Also, it makes choosing `eraseArgumentsDeeply` option always because
that how it works in K1 and also use invariant projection inside
`eraseArgumentsDeeply` for raw types for the same reason.
^KT-57198 Fixed
2023-03-21 12:38:22 +00:00
Nikita Bobko
48ed6c4cc7
2/2 Implement deprecation for use-site '@get:' target
...
^KT-15470 Fixed
Review: https://jetbrains.team/p/kt/reviews/9250
2023-03-21 13:29:10 +01:00
Nikita Bobko
8cf5216555
1/2 Refactoring: split GetterAnnotations & PropertyAnnotations tests for K1 and K2
...
These tests won't be FIR_IDENTICAL after the next commit. That's why I
split them prematurely. This allows me to have a nicer diff in `2/2`
commit.
In scope of KT-15470
Review: https://jetbrains.team/p/kt/reviews/9250
2023-03-21 13:28:55 +01:00
Kirill Rakhman
45d2424ad8
[FIR] Let prefix inc/dec call getter twice for compatibility with K1
...
#KT-57179 Fixed
2023-03-21 08:48:38 +00:00
Ilya Chernikov
0e77b67170
K2: implement correct check for ctors mapped from java
...
so the check is functionally the same as in K1.
#KT-57064 fixed
#KT-57065 fixed
One of the tests introduced here (javaMappedCtors) revealed an
additional issue, filed as KT-57368
2023-03-20 11:33:34 +00:00
Mikhail Glukhikh
a43a16b25b
Delay ForbidInferringPostponedTypeVariableIntoDeclaredUpperBound to 2.0
...
#KT-57395 Fixed
Related to KT-47986
2023-03-20 11:11:41 +00:00
Denis.Zharkov
823c60a7dc
K2: Fix false-positive UNSAFE_CALL on safe call with flexible type alias
...
The idea of the fix is just unwrapping flexible version of type alias,
before creating a not-nullable version for safe-call subject.
Otherwise, it was remained to be JsExpressionResult after applying
makeConeTypeDefinitelyNotNullOrNotNull (and the type is still nullable)
^KT-57190 Fixed
2023-03-17 16:27:29 +00:00
Mikhail Glukhikh
e8232a7572
FE: add one more test related to KT-56511 with the relevant feature ON
2023-03-17 14:57:41 +00:00
Mikhail Glukhikh
41c868445c
K1: introduce smartcast deprecation for a public API property in invisible class
...
#KT-56511 Fixed
Related to KT-57290
2023-03-17 14:57:40 +00:00
Mikhail Glukhikh
0b31e5ad63
K2: reproduce & add test for KT-56511
2023-03-17 14:57:40 +00:00
Kirill Rakhman
9b89759755
[FIR] Explicitly resolve synthetic property return type if necessary
...
During implicit body resolve phase, we can encounter a reference to a
not yet resolved Kotlin class that inherits a synthetic property from a
Java class. In that case, resolve the return type in
FirSyntheticPropertiesScope.
#KT-57166 Fixed
2023-03-17 13:31:45 +00:00
Ilya Chernikov
be2a85be71
K2: support implicit integer to unsigned conversions...
...
with dedicated opt-in language feature and special
annotation or module capability.
Not intended for a general use, solves specific K/N
scenario with interop libs.
#KT-55902 fixed
2023-03-17 08:57:51 +00:00
Nikolay Lunyak
d639215084
[FIR] KT-57095: Allow X? -> * assignments in unification
...
^KT-57095 Fixed
Merge-request: KT-MR-9180
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com >
2023-03-15 13:56:51 +00:00
Nikolay Lunyak
c105e63bbb
[FIR] KT-57214: Check the annotations "if possible"
...
^KT-57214 Fixed
Merge-request: KT-MR-9170
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com >
2023-03-14 10:25:02 +00:00
Kirill Rakhman
471ecf62c8
[FIR] Fix UNRESOLVED_REFERENCE in callable reference to delegated var
...
#KT-57204 Fixed
2023-03-14 09:13:42 +00:00
Nikolay Lunyak
5505fd207e
[FIR] KT-57195: Don't approximate ft when checking override return types
...
Why does this check even exist? K1 doesn't do it.
^KT-57195 Fixed
2023-03-13 16:34:47 +00:00
Evgeniy.Zhelenskiy
888bf801e2
[FIR] Forbid @JvmInline with inline modifier
...
Signed-off-by: Evgeniy.Zhelenskiy <Evgeniy.Zhelenskiy@jetbrains.com >
#KT-1179
2023-03-13 13:09:57 +00:00
Mikhail Glukhikh
a3f0e429e3
K2: report empty intersection warnings from completion properly
2023-03-11 10:15:25 +00:00
Mikhail Glukhikh
47fab61716
FE: introduce AllowEmptyIntersectionsInResultTypeResolver feature
...
Related to KT-51221
2023-03-11 10:15:24 +00:00
Mikhail Glukhikh
d9a6cad5ab
Disable ForbidInferringTypeVariablesIntoEmptyIntersection in some FE tests
2023-03-11 10:15:23 +00:00
Mikhail Glukhikh
b64cb67370
K2: support ForbidInferringTypeVariablesIntoEmptyIntersection on/off
2023-03-11 10:15:23 +00:00
Mikhail Glukhikh
f7544aff62
Delay ForbidInferringTypeVariablesIntoEmptyIntersection to 2.*
...
Note: here we set sinceVersion = null for this feature.
However, we plan in 1.9.* - 2.0 time frame to solve KT-56377
and to enable this feature in 2.0, the latest in 2.1.
2023-03-11 10:15:22 +00:00
Denis.Zharkov
608cb01935
K2: Imitate K1 behavior for case of captured types with a raw supertype
...
See the comments in the code, but mostly the motivation is that once
it was decided to stick with such a legacy thing as raw types,
we are ok with some corner-cases hacks for them
(if there are not too many of them) and they don't break anything
when there are no raw types in the code.
^KT-56616 Fixed
2023-03-10 18:35:01 +00:00
Nikolay Lunyak
4b8471d806
[FIR] KT-57247: Expand typealiases in annotation vararg arguments
...
^KT-57247 Fixed
2023-03-10 17:29:37 +00:00
Stanislav Ruban
5b0b7c4da4
KT-57206: Add diagnostics test
...
Problem described in KT-57206 seems to have been fixed by KT-56506. This
commit adds code example from KT-57206 as a diagnostics test.
^KT-57206 Fixed
2023-03-10 14:03:43 +00:00
Mikhail Zarechenskiy
82524fde26
K1: Place integer cinterop conversions under a language feature
...
Note that it's quite hard to emit a particular diagnostic as
type check happens later, after the conversion
^KT-56583
2023-03-10 09:48:01 +00:00
Kirill Rakhman
fa432d7f0d
[FIR] Prioritize double over float in overload resolution
...
#KT-57194 Fixed
2023-03-09 13:00:53 +00:00
Dmitriy Novozhilov
d5e6102ed9
[FIR] Properly check is some setter function is applicable for synthetic property
...
^KT-56506 Fixed
2023-03-09 12:32:49 +00:00
Nikolay Lunyak
f39467b4ba
[FIR] KT-57175: Expand typealiases in the annotation class checker
...
^KT-57175 Fixed
2023-03-09 09:44:09 +00:00
Nikolay Lunyak
5cbe699fc4
[FIR] KT-56876: Ensure inner type classifiers are resolved in contracts
...
^KT-56876 Fixed
2023-03-09 09:43:03 +00:00
Nikolay Lunyak
c156dfe855
[FIR] KT-56877: Allow checking types of containing classes in contracts
2023-03-09 09:43:03 +00:00
Nikolay Lunyak
c7a71fec17
[FIR] KT-56877: Allow referencing implicit receivers in class contracts
2023-03-09 09:43:02 +00:00
Nikolay Lunyak
409249267c
[FIR] Ensure this@label doesn't work in K2
2023-03-09 09:43:02 +00:00
Nikita Bobko
62d2327ca3
Don't issue a warning about expect/actual in the same module for incompatible expect/actual pairs
...
^KT-57067 Fixed
Review: https://jetbrains.team/p/kt/reviews/9123
2023-03-09 09:30:29 +00:00
Kirill Rakhman
b2fbf8bed5
[FIR] Fix callable reference adaptation for overrides without defaults
...
Provide the correct scope to the argument mapping so that default values
in overridden functions are considered.
^KT-56864 Fixed
2023-03-09 08:26:16 +00:00