Commit Graph

103075 Commits

Author SHA1 Message Date
Mikhail Glukhikh c2135b72c4 Fir2IrLazyProperty: simplify backing field check a little bit 2023-07-11 08:28:04 +00:00
Mikhail Glukhikh 71456c5514 FIR2IR: properly set constant expression type 2023-07-11 08:28:04 +00:00
Mikhail Glukhikh 09175c7d56 Fir2IrLazyProperty: drop redundant error type check 2023-07-11 08:28:04 +00:00
Mikhail Glukhikh 0e6a7bbe82 FIR2IR: simplify ConversionTypeOrigin/Context 2023-07-11 08:28:04 +00:00
Mikhail Glukhikh 2c0c9e5b5c FIR2IR: drop error type check in createIrProperty 2023-07-11 08:28:04 +00:00
Mikhail Glukhikh 595aace885 Fir2IrConverter: unite two process*Members functions in processClassMembers 2023-07-11 08:28:04 +00:00
Artem Daugel-Dauge 2e5ae122ea [Gradle] Forbid manual pod install invocation when Kotlin framework is not yet built
^KT-59263 Verification Pending
2023-07-10 18:28:59 +00:00
Alexander.Likhachev 8ae0f61028 [Gradle] Associate the textFixtures source set with main and test ones
#KT-34901 Fixed
2023-07-10 18:23:20 +00:00
Alexander.Likhachev fcb7010726 [Gradle] Add integration tests for KT-34901 2023-07-10 18:23:20 +00:00
Timofey Solonin 792b6482c0 Emit MultiPlatformProjects diagnostic on all declarations
where expect/actual modifier is present

^KT-31281
2023-07-10 17:26:23 +00:00
Sergej Jaskiewicz 341f61428b [klib] Restore compatibility for IdSignature.CommonSignature constructor
^KT-59771 Fixed
2023-07-10 16:27:47 +00:00
Svyatoslav Scherbina 710381e489 Native: don't report Objective-C-related errors on expect classes
An expect class might lack some details and thus seem incorrect to the
compiler, while the corresponding actual class is totally fine.
Due to the specifics of the compiler, this happens more often then it
should (because the compiler actually always analyzes expects along
with actuals, with most references actualized).

For example, in KT-52882 the compiler analyzes an expect class
(TestImpl), but the class refers to the actual interface Test as its
supertype, meaning that the compiler sees TestImpl as a class inheriting
an Objective-C protocol but not an Objective-C class, which is
prohibited. While the actual class has its super types in order.

So, in reality, from both actualized and non-actualized points of view,
the code is totally correct, and the error was reported only because of
the way the compiler handles multiplatform.

Those compiler checks only matter for the actual class anyway, so
disabling them for expect classes is harmless.

^KT-52882 Fixed
2023-07-10 16:15:49 +00:00
Alexander Shabalin 6619edbbac [K/N] Fix redundant sp removal tests 2023-07-10 15:45:30 +00:00
cristiangarcia 0946039661 Reduce number of tasks realized eagerly from Konan Plugin 2023-07-10 14:42:30 +00:00
Sebastian Sellmair 817e3de8f5 [Gradle] Ensure java source sets being created eagerly for 'withJava'
^KT-60158 Verification Pending
2023-07-10 13:44:02 +00:00
Sebastian Sellmair 42d648f775 [Gradle] KotlinPluginLifecycle: Implement CoroutineStart and start futures 'Undispatched' by default
This API was inspired by kotlinx.coroutines and shall help
making Kotlin Gradle Plugins 'Future' type more applicable for situations
when the Future is used inside the Configuration Phase

^KT-60158 In Progress
2023-07-10 13:44:02 +00:00
Sebastian Sellmair 2d43476811 [Gradle] Implement test to ensure withJava creates java source sets eagerly
^KT-60158 In Progress
2023-07-10 13:44:02 +00:00
Andrei Klunnyi 0bc3fc9203 KT-59801 [FIR] scripting: explicit import breaks reference shortening
FIR-tree for scripts is built either for KtScript or KtFile depending on
the file structure. The presence of import statements results in KtFile.
There are lazy trees (some nodes are stubs) that are not yet supported
for scripts. We build such ones for KtFile case.

This commit prevents lazy tree construction for scripts at references
shortening.

^KT-59801 fixed
2023-07-10 15:38:39 +02:00
Ivan Kylchik 0c6e2f135e [Native] Drop constantInliningPhase
We don't need this lowering anymore because corresponding work is done
by `constEvaluationPhase`
2023-07-10 13:19:52 +00:00
Ivan Kylchik a4b8ab8199 [Native] Forbid to inline NaN values during const evaluation 2023-07-10 13:19:52 +00:00
Ivan Kylchik 8e42ccaccb [IR] Drop FoldConstantLowering and StringTrimLowering 2023-07-10 13:19:51 +00:00
Ivan Kylchik ad6332112e [IR] Support const optimizations for Native backend 2023-07-10 13:19:51 +00:00
Pavel Mikhailovskii 6e6a4d6411 KT-59836 [SLC] Copy type parameters from the parent interface to DefaultImpls methods 2023-07-10 13:11:21 +00:00
Artem Daugel-Dauge ddb27f2b26 [Gradle] Use framework name instead of baseName as the attribute value
^KT-58316 Verification Pending
2023-07-10 12:42:53 +00:00
Andrei Klunnyi a1385103bf KT-60236 K2 scripting: completion fails with exception
^KT-60236 fixed
2023-07-10 14:37:16 +02:00
Svyatoslav Scherbina c2a5f6588c Bump Kotlin/Native version in KGP to 1.9.20-dev-6128 2023-07-10 11:10:02 +00:00
Andrei Klunnyi 527d20c7be KT-60171 K2-scripting: CLI specific providers are used in IDE context
^KT-60171 fixed

Merge-request: KT-MR-10987
Merged-by: Andrei Klunnyi <andrei.klunnyi@jetbrains.com>
2023-07-10 11:03:11 +00:00
Pavel Kunyavskiy 19ccb23088 [K/N] Fix compilation error caused by bad merge 2023-07-10 10:31:00 +00:00
Nikolay Lunyak d13e60aaec [FIR] Prevent loosing errors for synthetic outer calls
The error occurs when completing the
call for the outer synthetic call
`ACCEPT_SPECIFIC_TYPE`. The error
is saved into the CS of this outer
candidate, which leads to its
callable reference to be an error
reference, but since such calls are
not parts of the FIR tree, we never
collect such errors.

^Fixed KT-59233
2023-07-10 10:26:43 +00:00
Nikolay Lunyak 79fce56c95 [FIR] Add a test for KT-59233 2023-07-10 10:26:43 +00:00
Nikolay Lunyak d4c6e55e0a [FIR] Require equivalent candidates to have the same parameters count 2023-07-10 09:43:22 +00:00
Nikolay Lunyak fe783d7121 [FIR] Require equivalent candidates to have the same parameters order
NB: In general, it's unclear what to do in cases
like the following one, even when sometimes
we could, indeed, prefer something:

```
fun foo(a: Int, b: String, c: Boolean)
fun foo(b: String, c: Boolean, a: Int)

foo(c = false, b = "", a = 0)
```

^KT-55933 Fixed
2023-07-10 09:43:22 +00:00
Nikolay Lunyak 4f0563dee1 [FIR] Add a test for KT-55933 2023-07-10 09:43:22 +00:00
Nikolay Lunyak da60be06a0 [FIR] Add references to TODOs in checkers 2023-07-10 09:28:55 +00:00
Nikolay Lunyak 8c5b2ae85b [FIR] Fix modifying CheckerContext inside checkers
`InlineFunctionBodyContext` was not moved
outside the class to preserve as much
git blame info as possible.

^KT-56460 Fixed
2023-07-10 09:28:55 +00:00
Nikolay Lunyak ed2f0c295b [FIR] Remove the TODO from FirExplicitBackingFieldForbiddenChecker
Looks obsolete, nothing seems to fail.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak b46d4e5399 [FIR] Check classes for EXPECTED_PRIVATE_DECLARATION 2023-07-10 09:28:54 +00:00
Nikolay Lunyak e7f1da3619 [FIR] Check actuals in FirOverloadsChecker 2023-07-10 09:28:54 +00:00
Nikolay Lunyak a9207a8396 [FIR] Remove the TODO in FirJvmAnnotationHelper.kt
This code should not be reachable when not
in JVM. `jvmDefaultModeState` is only
accessed from the JVM checkers.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak 8541143d6f [FIR] Fix the TODO in FirConflictsHelpers
According to
https://github.com/Kotlin/KEEP/blob/master/proposals/enhancing-main-convention.md#rules-and-semantics,
only main function without args may avoid
`CONFLICTING_OVERLOADS`, but since the
jps/jps-plugin/testData/incremental/withJava/other/mainRedeclaration
test dates back to 2015, this is not the
current behavior.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak 3014c7b353 [FIR] Check isMember via the dispatch receiver 2023-07-10 09:28:54 +00:00
Nikolay Lunyak 553f400c25 [FIR] Remove the TODO from ConeTypeCompatibilityChecker
Ignore, because `@JvmDefault` is deprecated
and we don’t even have tests for it, and
the new
``@JvmDefaultWith[out]Compatibility` only
allow classes as their targets
2023-07-10 09:28:54 +00:00
Nikolay Lunyak c2c073ab2d [FIR] Remove the TODO from ConeTypeCompatibilityChecker
The issue is closed as fixed
2023-07-10 09:28:54 +00:00
Nikolay Lunyak 0e70e9e8d9 [FIR] Remove the TODO from FirReturnsImpliesAnalyzer
Declined, ignore.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak 884cd6c754 [FIR] Move FirReturnsImpliesAnalyzer to the extended checkers 2023-07-10 09:28:54 +00:00
Nikolay Lunyak db720d375d [FIR] Remove the TODO from FirModifierChecker.kt
Pasha said we can delete it.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak b8377d49a8 [FIR] Remove unused code from FirExpectActualDeclarationChecker
Dima said this code is not needed.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak 62d0060f0d [FIR] Remove the TODO in FirDelegatedPropertyChecker
This TODO is unclear, and since we don't
really care what should happen to the
unreachable code, it can be ignored.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak be8d9ba262 [FIR] Remove the TODO in FirDelegatedPropertyChecker
It looks like in `differentDelegatedExpressions.fir.kt`
there're no diagnostics on the delegates
already, so this TODO is unclear.
2023-07-10 09:28:54 +00:00
Nikolay Lunyak 24b1fb2ccf [FIR] Create tickets for some of the TODOs 2023-07-10 09:28:54 +00:00