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
Mikhail Glukhikh
2fb79bf0b1
K1: don't report InferredIntoDeclaredUpperBound on non-physical element
...
#KT-56169 Fixed
2023-03-17 12:08:37 +00:00
Mikhail Glukhikh
980ab41ef1
FE: split one more test "buildList type argument is inferred into upper bound"
...
Related to KT-48445, KT-56169
2023-03-17 12:08:37 +00:00
Mikhail Glukhikh
97bec59bc9
K1: add forgotten INFERRED_INTO_DECLARED_UPPER_BOUNDS for incorporation case
...
#KT-56169 Fixed
2023-03-17 12:08:36 +00:00
Mikhail Glukhikh
ba2d896c01
FE: split test "buildList type argument is inferred into upper bound"
...
Related to KT-50520, KT-56169
2023-03-17 12:08:35 +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
Denis.Zharkov
3e2f8b834c
K2: Replicate K1 enhancement behavior for warning-mode top-level types
...
^KT-56657 Fixed
^KT-57307 Related
2023-03-17 08:52:31 +00:00
Denis.Zharkov
644391a8e0
K2: Fix Java enhancement when jsr305.jar is not in classpath
...
In that case, when loading Java, we just remember the name of `@Nonnull`
argument (javax.annotation.meta.When), and then use it during enhancement
^KT-56656 Fixed
2023-03-16 14:43:05 +00:00
Denis.Zharkov
157c260fda
Add test data with current behavior for KT-56656
2023-03-16 14:43:05 +00:00
Svyatoslav Kuzmich
3c0048bfd8
[Wasm] Add typealias diagnostic test cases
2023-03-16 09:12:08 +00:00
Svyatoslav Kuzmich
1e91fe155b
[Wasm] Restrict types allowed in JS interop
...
- Prohibit Any, Array and other unsupported non-external types in JS
interop context
- Add K1 diagnostic
- Update BE testdata
^KT-57136 Fixed
2023-03-16 09:12:07 +00:00
Nikolay Lunyak
967ddb8bb0
[FIR] KT-57211: Generate FirArrayOfCall for unsigned types
...
^KT-57211 Fixed
Merge-request: KT-MR-9216
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com >
2023-03-15 17:05:09 +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
Nikolay Lunyak
b385d787cc
[FIR JS] KT-57200: Allow dynamic varargs
...
^KT-57200 Fixed
2023-03-13 15:54:52 +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
Artem Kobzar
633d840c88
[K/JS] Deprecate external enum declarations
...
^KT-57254 Fixed
2023-03-10 12:55: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
f946ddeb40
[FIR] Implement checks for contract not allowed
...
^KT-55423 Fixed
2023-03-09 08:32:02 +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
Kirill Rakhman
83845fbab5
[FIR] Only add non-subsumed to overridden of intersection override
...
If an intersection override overrides members A.x, B.x and C.x and
B <: A, then A.x is subsumed by B.x, and we don't add it to the list of
overridden members. This fixes a false-positive MANY_IMPL_MEMBER_NOT_
IMPLEMENTED where an implementation is subsumed by an abstract override.
^KT-57092 Fixed
2023-03-08 11:01:56 +00:00
Nikolay Lunyak
07fa86f6bc
[FIR] KT-57085: Ignore the diagnostic case in @Suppress()
...
^KT-57085 Fixed
2023-03-07 20:28:02 +00:00
Nikolay Lunyak
343deeec1c
[FIR] Check FirReceiverParameter annotations' targets
2023-03-07 11:35:47 +00:00
Nikolay Lunyak
0c77de3049
[FIR] Add a test with an inapplicable receiver annotation
2023-03-07 11:35:47 +00:00
Nikolay Lunyak
1378d730d6
[FIR] Forbid all use-site targets of FirTypeRef annotations
2023-03-07 11:35:47 +00:00
Nikolay Lunyak
93ba0c3e70
[FIR] KT-56769: Ensure @receiver: is only allowed on receivers
...
Note that there's no code that checks that
FirReceiverParameter's annotation's use-site target
is indeed `@receiver:`, because otherwise the
annotation wouldn't have made it into
the FirReceiverParameter.
In contrast, in K1 all such annotations are treated
as annotations on a KtTypeReference.
^KT-56769 Fixed
2023-03-07 11:35:46 +00:00