Commit Graph

88546 Commits

Author SHA1 Message Date
sebastian.sellmair 2e55b82ba3 [MPP] Introduce allModulesProviding(Expects|Actuals)For filters
This new filters will also take care of filtering out descriptors
that are provided by 'regular' dependencies instead of 'dependsOn'
dependencies.

^KT-50120
2021-12-21 21:31:44 +00:00
sebastian.sellmair d1ce7ae870 [MPP] Remove irrelevant declarations from constructor.kt
^KT-50120
2021-12-21 21:31:44 +00:00
sebastian.sellmair 381a3e7917 [MPP] Improve readability of MultiplatformDiagnosticsDirectives
- Improved description as suggested during code review
- Renamed MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE du *_ENABLED

^KT-50120
2021-12-21 21:31:44 +00:00
sebastian.sellmair 6268852b7a [MPP] Set .isExpect when deserializing a ClassConstructorDescriptor
This will fix expect/actual matching for class constructors
when dependsOn modules are deserialized.

^KT-50120 Verification Pending
2021-12-21 21:31:43 +00:00
sebastian.sellmair e561b095f7 [MPP] Fix checkExpectedParameter using wrong ModuleFilter
KT-50120 Partially solved for functions.
ClassConstructors seem to be deserialized with 'isExpect=false'
which will still lead to wrong 'expect/actual matching'
2021-12-21 21:31:43 +00:00
sebastian.sellmair 017aacba44 [MPP] Add default parameter tests for ^KT-50120 2021-12-21 21:31:42 +00:00
sebastian.sellmair 3598ba1d45 [MPP][Test] Implement Diagnostics with mpp composite analysis tests
Using the 'MULTIPLATFORM_COMPOSITE_ANALYSIS_MODE' test directive
will add support for testing "cli metadata compilation" and
"ide analysis" _like_ configurations. In this configuration,
dependsOn modules will not be analyzed together with dependents in
the same ModuleDescriptor, but will be passed as separate 'expectedBy'
dependency descriptor.

Used to cover ^KT-50120 inside kotlin.git
2021-12-21 21:31:42 +00:00
Alexander Udalov 7771e5914d Revert "Do not write version requirements for suspend functions"
This reverts commit 6807ed6642.

The reason is that Kotlin compilers until and including version 1.6.10
have code that detects obsolete coroutines via these version
requirements (see `versionAndReleaseCoroutinesMismatch`). Since Kotlin
1.6.10 can read metadata of version 1.7, the earliest we can drop these
version requirements is Kotlin 1.8.0.
2021-12-21 20:06:07 +01:00
Ivan Kochurkin 58dfe3d804 [FIR2IR] Reify type parameters for callee reference with vararg 2021-12-21 19:10:41 +03:00
Ivan Kochurkin ee7e04b28e [FIR] Ignore smartcast for non-final members from Java, ^KT-50219 Fixed 2021-12-21 19:10:40 +03:00
Ivan Kochurkin 84927e10b0 [FIR] Consider Nothing? as null constant in DFA, ^KT-44561 Fixed 2021-12-21 19:10:40 +03:00
Ivan Kochurkin 68f3ab2622 [FIR] Refactor processing of equality operators in DFA 2021-12-21 19:10:39 +03:00
Ivan Kochurkin 9e55e41d8b [FIR] Propagate non-null info for val members, ^KT-44560 Fixed 2021-12-21 19:10:38 +03:00
Ivan Kochurkin c5a03d0573 [FIR] Remove dependent data flow variables after receiver reassignment 2021-12-21 19:10:37 +03:00
Ivan Kochurkin 1f9ea50d1a [FIR] Rearrange arguments in VariableStorageImpl functions to make them consistent 2021-12-21 19:10:36 +03:00
Roman Golyshev e3219cc5b6 FIR IDE: Avoid resolving elvis operator, because it doesn't make sense
There are intrinsics to which elvis operator's usages are resolved;
however, we do not want to expose those intrinsics through the
high-level resolve
2021-12-21 18:48:00 +03:00
Roman Artemev 702ab3408b [JS IC TEST] Add test case about renaming file in module 2021-12-21 18:07:57 +03:00
Roman Artemev 76b9167c15 [JS IC TEST] Add test case about moving file between modules 2021-12-21 18:07:57 +03:00
Roman Artemev 9b49f0eb70 [JS IC] Support deleted files in IC cache invalidator
- support them in test too
2021-12-21 18:07:56 +03:00
Roman Artemev 2ace13a904 [JS IC TEST] Support deleted files list in module step 2021-12-21 18:07:56 +03:00
Roman Artemev 2dd519c91f [JS IC TEST] Add test case for moving inline functions between modules 2021-12-21 18:07:55 +03:00
Roman Artemev 2474702bef [JS IC TEST] Add test case for private top-level inline functions 2021-12-21 18:07:54 +03:00
konstantin.tskhovrebov 2d0fea4dcb Set right FatFramework name inside XCFramework. 2021-12-21 18:04:49 +03:00
Yahor Berdnikau 8d195e079e Add basic benchmarks for Duckduckgo Android application
^KT-49921 In Progress
2021-12-21 14:00:57 +00:00
Yahor Berdnikau d1f6faf236 Add Gradle project to run regression benchmarks
This project will contain all required Gradle infrastructure to run
regression benchmark scripts.

^KT-49921 In Progress
2021-12-21 14:00:57 +00:00
Yahor Berdnikau 7418d3c898 Add build regression benchmark script template
This template provides all infrastructure to write Kotlin scripts for
build regression benchmarks. These benchmarks will use gradle-profiler
to run provided scenarios on user projects. All benchmark results
in the script then will be aggregated into single one showing
difference between them.

Generally such kind of benchmarks should be used to track early Gradle
 build regressions between releases.

^KT-49921 In Progress
2021-12-21 14:00:56 +00:00
Dmitriy Novozhilov 8a58e98530 [FE 1.0] Support proper DUPLICATE_LABEL_IN_WHEN reporting for deprecated complex boolean expressions
^KT-50385
^KT-39883
2021-12-21 16:36:20 +03:00
Dmitriy Novozhilov eb753eac83 [FE 1.0] Report DUPLICATE_LABEL_IN_WHEN on proper branches
^KT-50385 Fixed
2021-12-21 16:36:19 +03:00
Dmitriy Novozhilov d9a3dd09ea [FE 1.0] Save ModuleDescriptor in CompileTimeConstant 2021-12-21 16:36:18 +03:00
Elena Lepilkina a4f7ed00cc [K/N] Disable test until don't fix inlining (KT-50281) 2021-12-21 12:50:07 +00:00
Mikhail Glukhikh 1938438fa1 FIR: save/restore tower data contexts during resolve jumps
#KT-50278 Fixed
2021-12-21 10:45:36 +00:00
Mikhail Glukhikh f3f63a458b Make FirRegularTowerDataContexts immutable, SpecialTower.. just a storage 2021-12-21 10:45:35 +00:00
Mikhail Glukhikh 87e11c0f42 FirTowerDataContext parts: split into regular and special 2021-12-21 10:45:35 +00:00
Mikhail Glukhikh 25f30cb3a9 FIR: add resolve test for potential local scope problems 2021-12-21 10:45:34 +00:00
Mads Ager b5b1b38cb0 [FE] Do not repeatedly load inner classes from class files.
Java protobufs generate a lot of inner classes and when compiling
Kotlin wrappers for those Java protobufs the inner classes can
be loaded hundreds of times leading to out of memory. This change
avoids reloading by fixing a bug in the cache implementation that
caused inner classes to not be cached.
2021-12-21 13:23:48 +03:00
Mads Ager 61265a6501 Return error candidates from KtFirArrayAccessReference.resolveToSymbols 2021-12-21 13:22:15 +03:00
Alexander Shabalin 6d6480a662 [K/N] Clarify performance expectations of the new MM
Merge-request: KT-MR-5298
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2021-12-21 09:40:34 +00:00
Alexander Shabalin 43b8683b9c [K/N] Separate MM from GC implementations
^KT-50291

Merge-request: KT-MR-5191
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2021-12-21 08:33:51 +00:00
Anastasia.Shadrina ea33da3a8d [FE] Fix: do not report ambiguous label if label map is empty 2021-12-21 10:41:46 +03:00
Dmitry Petrov 8905586cbb IR KT-50258 rewrite enum-based 'when' more carefully 2021-12-21 06:06:45 +00:00
Roman Artemev e17f121b23 [JS REPL] Extract JS script/repl parts into separate module
- don't load js evaluation plugin in CLI compiler
2021-12-21 04:15:11 +03:00
Mikhail Glukhikh c12d1930b4 Fix FIR bootstrap (related to KT-49925) 2021-12-21 00:02:12 +03:00
Nikolay Krasko 5b073c2565 Drop ComponentsXmlResourceTransformerPatched
After shadow is updated to 7.1.1, library ComponentsXmlResourceTransformer
should work fine.

The only reason for this patched version was the bug that was fixed in 7.1.0:
https://github.com/johnrengelman/shadow/releases/tag/7.1.0

^KTI-733 Fixed
2021-12-20 21:39:04 +03:00
Nikolay Krasko 85521f01f8 Update shadow plugin 6.1.0 -> 7.1.1
Version 7.1.1 is absent in jcenter, so additional repository was added
in some modules.

Leave old version in NewMultiplatformIT.kt because of
`This version of Shadow supports Gradle 7.0+ only. Please upgrade.` error.

^KTI-733 Fixed
2021-12-20 21:39:00 +03:00
Nikolay Krasko 1b85159708 Remove kotlin.build group from verification-metadata.xml 2021-12-20 21:38:57 +03:00
Kristoffer Andersen 91e65edf86 [EE-IR] Minor: Refactor EvaluatorFragmentInfo
Part of migration to new constructor signature.

Unblocked by intellij-community#1839.
2021-12-20 19:04:19 +01:00
Alexander Udalov 6acb0c3d06 CLI: load module-info from META-INF/versions/... for any version
Not just 9, since at least some libraries are putting module-info to
META-INF/versions/11 nowadays.

 #KT-48027 Fixed
2021-12-20 18:59:07 +01:00
Joseph Walton f38e1b218d Scripting, maven: use getArtifacts to get the plugin's runtime classpath
..to correctly pass the dependencies in the ExecuteKotlinScriptMojo.
#KT-50306 fixed

Also add a test that a script has access to plugin-configured
dependencies.
If plugin/dependencies is populated, the extra artifacts should be
made available when the script is run. This test uses 'junit' simply
because it's commonly-used, but not already present, or shaded as part
of another artifact.
2021-12-20 18:02:16 +03:00
Svyatoslav Scherbina 2bd53e3dea Native, old MM: fix releasing foreign refs to circular frozen graphs
^KT-49497
2021-12-20 14:56:38 +00:00
Alexander Korepanov b82c306530 [JS IR] Add deep copying for callable reference
Perform a deep copy of callable reference adapter on inline lowering

^KT-49844 Fixed
2021-12-20 14:02:11 +00:00