Commit Graph

18561 Commits

Author SHA1 Message Date
strangepleasures 7c6375c85a KT-63552 [SLC] Support empty arrays in property initializers and default parameter values 2023-11-21 13:20:26 +00:00
Evgeniy.Zhelenskiy 67b1bb448a [FIR] Report repeating parameters in dynamic functions in Kotlin/JS
^KT-59988
2023-11-21 13:12:46 +00:00
Ivan Kylchik fd4a3a0b88 [FIR] Forbid to use equality and unsigned comparison in const expression
#KT-62683
2023-11-21 09:48:58 +00:00
Ivan Kylchik 8715bd6189 [IR] Don't evaluate expressions in inner class of an annotation 2023-11-21 09:48:58 +00:00
Ivan Kylchik 3fa82c7bb1 [K2] Properly evaluate complex boolean constants
Some boolean expressions could be transformed into `IrWhen`
node. To understand that this node is actually
a boolean expression, we need to analyze its origin.

#KT-62683
2023-11-21 09:48:57 +00:00
Dmitrii Gridin 0b253dc815 [FIR] resolve delegate field return type in correct scope
We should resolve it in the same way as delegate constructor call
to avoid access to nested class scopes

^KT-63522 Fixed
^KT-63042
2023-11-21 08:11:21 +00:00
Dmitrii Gridin b3b184f00d [FIR] add more tests diagnostic tests on data and delegated classes
^KT-63522
^KT-63512
^KT-63042
2023-11-21 08:11:20 +00:00
strangepleasures 03ed1d1d31 KT-62560 [SLC] Fix handling of empty varargs in annotations 2023-11-20 20:57:21 +00:00
Evgeniy.Zhelenskiy 9383d0bfa4 [FIR] Check type arguments in inner/outer local classes as in K1
^KT-59922 ^KT-59951
2023-11-20 20:04:45 +00:00
Svyatoslav Kuzmich 43345bbc34 [Wasm] Port js(code) calls checker to K2 (KT-56849)
^KT-62725 Fixed
^KT-62726 Fixed
^KT-62727 Fixed
2023-11-20 18:10:55 +00:00
Svyatoslav Kuzmich 7092541e34 [Wasm] K2 js(code) constant checker (KT-56849)
Reuse K/JS FirJsCodeConstantArgumentChecker by moving it to web.common
2023-11-20 18:10:54 +00:00
Mikhail Glukhikh 3b7f43a9c2 K2: don't throw an exception for type parameter case in isJavaTypeOnThePath
#KT-63569 Fixed
2023-11-20 15:35:58 +00:00
Evgeniy.Zhelenskiy f5168527ae [FIR] Report type-parameterized implicit invoke call over type-parameterized property access
^KT-59988
2023-11-20 14:59:06 +00:00
Evgeniy.Zhelenskiy 86c09a1c78 [FIR] Report recursive typealias when loop is in type annotations
^KT-59908
2023-11-20 14:39:47 +00:00
Svyatoslav Kuzmich 31560217f8 [Wasm] Port @JsFun checker to K2 (KT-56849)
^KT-62724 Fixed
2023-11-20 14:39:24 +00:00
Dmitriy Novozhilov 89b98ef784 [FIR2IR] Properly create FIR f/o for lazy IR f/o
```kotlin
interface A {
    fun foo() // (1)
}

interface B : A {
    // f/o fun foo() // (2)
}
```

In previous commits it was forgotten to create new FIR declarations for
  IR fake-overrides, which led to the situation when `IR lazy functions
  of `(1)` and `(2)` both contained fir of function (1) as their base
  declaration

It seems this change fixed some cases from KT-42020
2023-11-20 13:36:28 +00:00
Dmitriy Novozhilov d85d671b26 [FIR] Update few MPP diagnostic tests
Updated tests contain errors which are incompatible with fir2ir conversion
  (like `PACKAGE_OR_CLASSIFIER_REDECLARATION` and `EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE`),
  so running fir2ir on such code may lead to exceptions
2023-11-20 13:36:27 +00:00
Dmitriy Novozhilov c9ff0c41fc [FIR2IR] Generate IR for f/o of common classes generated during platform conversion
This change fixes tests which were muted in one of previous commits
2023-11-20 13:36:27 +00:00
Dmitriy Novozhilov bb892f10f8 [Test] Mute tests with expect supertypes
The problem: someone should generate IR for f/o in common classes appeared
  after IR actualization

Those tests will be fixed in the following commits
2023-11-20 13:36:27 +00:00
Mikhail Glukhikh 5cd3f8bb97 K2: don't report inline access errors on const properties in annotations
#KT-60604 Fixed
2023-11-20 10:32:05 +00:00
Mikhail Glukhikh bb8002d9f1 K2: reproduce KT-60604 2023-11-20 10:32:05 +00:00
Artem Kobzar 1832f5a3f7 [K/JS] Introduce the ability to consume platform-specific cli arguments inside the main function ^KT-16981 Fixed 2023-11-18 11:01:34 +00:00
Mikhail Glukhikh ec7caba8ea K2: restore smart cast in case with invisible receiver but visible callable
Related to KT-52432
#KT-63164 Fixed
2023-11-17 20:29:58 +00:00
Mikhail Glukhikh a139965231 K2: reproduce KT-63164 2023-11-17 20:29:58 +00:00
Aleksandra.Arsenteva af63763da2 KT-62138 add testcases 2023-11-17 15:47:34 +00:00
Kirill Rakhman 4964ee12a9 [CLI] Update CLI argument descriptions after review 2023-11-17 14:36:28 +00:00
Artem Kobzar e64068cf82 [K/JS, K/Wasm, K/Native] Process anonymous initializers inside classes as a part of their primary constructors ^KT-61929 Fixed 2023-11-17 13:04:34 +00:00
Mikhail Glukhikh 0aa5170ba2 K2: delay jspecify strict mode introduction to version 2.1
Related to KT-62352, KT-55586
2023-11-17 08:21:04 +00:00
Stanislav Ruban 196f5760f8 [tests] BI (1P&1TV/1TIO): add test data for sinks & sources of type information [1/X]
single builder parameter
single postponed type variable
single origin of type information

cover member properties as type info sinks;
cover extension functions as type info sinks;
cover extension properties as type info sinks;
cover extension functions as type info sources;
cover extension properties as type info sources;
cover input values of builder arguments as type info sinks;
cover input values of builder arguments as type info sources;
cover return types of builder parameters as type info sources;

relevant issues:
KT-61907
KT-61909
KT-63477
2023-11-17 07:02:15 +00:00
Mikhail Glukhikh 0fba58eee7 K2: repeat K1 logic around SAM-based candidates discrimination
#KT-56614 Fixed
2023-11-16 20:12:34 +00:00
Ivan Kochurkin df43226a08 [FIR] Fix CAST_NEVER_SUCCEEDS for definitely not null types 2023-11-16 19:29:58 +00:00
Ivan Kochurkin 3b9095a5ab [FIR] Use isSubtypeOfClass with platform types mapping instead of isSubtypeOf during checking CAST_NEVER_SUCCEEDS
Refactor and generalize code

^KT-62783 Fixed
2023-11-16 19:29:58 +00:00
Brian Norman e92fab65aa [FIR] Support including flow information when dumping CFG dot file 2023-11-16 18:04:26 +00:00
Stanislav Ruban 73aaa1ce28 [tests] Add code examples from exploration of KT-62239 2023-11-16 16:39:35 +00:00
Svyatoslav Kuzmich 62ebb9932f [Wasm] Port external declaration checker to K2 (KT-56849)
Share common code with FirJsExternalChecker using
FirWebCommonExternalChecker
2023-11-16 14:27:49 +00:00
Artem Kobzar 890fbd6b0b [K/JS] Process JS-specific returnable blocks before the state machine building
^KT-60785 Fixed
^KT-63207 Fixed
2023-11-16 13:25:51 +00:00
Mikhail Glukhikh 1eacd5efc2 K1/K2: support org.jspecify.annotations.NonNull in Java interop
#KT-62352 Fixed
2023-11-16 11:13:44 +00:00
Vladimir Sukharev c38a0e10af [K/N] Implement a concept of conditional ignore of K/N blackbox tests
^KT-59288 Fixed
2023-11-15 19:03:07 +00:00
Ivan Kochurkin c38887ae68 [FIR2IR] Add fields to Fir2IrLazyClass.declarations for Java classes
^KT-61362 Fixed
2023-11-15 17:56:03 +00:00
Roman Efremov 722d901d69 [Tests] Decline bug KT-62886 and change comment accordingly
^KT-62886
2023-11-15 16:47:04 +00:00
Mikhail Glukhikh a2dc4f155f K2: drop obsolete TODO about multiple WasExperimental
In certain situations like constructor calls, it's possible
to have different WasExperimental/SinceKotlin pairs associated
with one use-site, e.g. a constructor call is associated both
with a constructor declaration and a class declaration.
However, looks like it make no sense to handle this situation
in FirSinceKotlinHelpers, because FirOptInUsageBaseChecker already
handles them.

#KT-59825 Fixed
2023-11-15 09:36:06 +00:00
Mikhail Glukhikh 4d49bdb8ca K2: add a black box test to confirm KT-53718 now works properly (JVM IR only)
Related to: KT-57584, KT-58110
2023-11-15 09:33:05 +00:00
Mikhail Glukhikh 4b1368409d K2: add a black box test to confirm KT-55705 now works properly 2023-11-15 09:33:05 +00:00
Mikhail Glukhikh f2ef41dbbd K2: add a black box test for KT-58874 to confirm work also in runtime 2023-11-15 09:33:03 +00:00
Kirill Rakhman 2005446296 [FIR] Preserve enhanced mutability when nullability was enhanced for warning
#KT-56989
2023-11-15 08:43:55 +00:00
Kirill Rakhman a63ec9efdc [FIR] Implement warnings for java nullability upper bound violation 2023-11-15 08:43:55 +00:00
Kirill Rakhman 2df1e9dde6 [FIR] Implement warnings for java nullability type mismatch on override
#KT-56989
2023-11-15 08:43:55 +00:00
Kirill Rakhman a6fdeeb7df [FIR] Implement warnings for java nullability type mismatch
#KT-56989
2023-11-15 08:43:55 +00:00
Nikolay Lunyak 80cccce8d0 [FIR] Use the proper processAll* functions for CONFLICTING_OVERLOADS
The `*leaf*` functions were
introduced due to my false
assumption. The normal processing
functions only collect leafs
already. `*leaf*`s are bad, because
they don't cache anything.

The change in
AbstractFirOverrideScope reflects
KT-63290, and is needed to avoid
duplicate `CONFLICTING_OVERLOADS`
and `VIRTUAL_MEMBER_HIDDEN`.
2023-11-15 07:56:32 +00:00
Nikolay Lunyak 44d6d10233 [FIR] Only check conflicting callables that may clash with declared ones
This change improves performance, as
checking callables via scopes in
`4e587157` turns out to be quite
slow, and it also prevents some redundant
diagnostics.
2023-11-15 07:56:32 +00:00