Commit Graph

92936 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 7c19f3b1ca [Lombok] Migrate tests to new test infrastructure 2022-06-07 14:12:21 +00:00
Dmitriy Novozhilov c9c24d27d7 [Lombok] Fix style of FILE directive in testdata 2022-06-07 14:12:21 +00:00
Dmitriy Novozhilov dcd96932aa [Lombok] Adapt format of codegen tests to standard box() style 2022-06-07 14:12:20 +00:00
Dmitriy Novozhilov bc8051ce9b [Test] Allow to create source files different from .kt and .java in SourceFileProvider 2022-06-07 14:12:20 +00:00
Dmitriy Novozhilov f34061acc1 [FIR] Fix resolution of plugin annotations annotated with meta annotations
There was a problem, that after founding of new annotation with meta
  annotation we did not come back to previous files, which may contain
  declarations with this new annotation
2022-06-07 14:12:19 +00:00
Dmitriy Novozhilov 055865a2a1 [FIR-IDE] Register checkers from plugins in IDE session 2022-06-07 14:12:19 +00:00
Dmitriy Novozhilov c2bf68c9d3 [Lombok] Reorganize module structure of Lombok compiler plugin
Also rename its jar to `kotlin-lombok-compiler-plugin`

^KT-52468 Fixed
2022-06-07 14:12:19 +00:00
Dmitriy Novozhilov bfb908dcd9 [Build] Publish only K1 related parts of Parcelize, AllOpen and NoArg for IDE 2022-06-07 14:12:18 +00:00
Dmitriy Novozhilov 5d0655247f [NoArg] Add implementation of plugin for FIR 2022-06-07 14:12:18 +00:00
Dmitriy Novozhilov 8acb8aa043 [FIR] Introduce utility service for plugins for matching common predicate pattern 2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov 7048cac770 [FIR] Move FirPredicateBasedProvider to :compiler:fir:tree module 2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov b948eaef4b [FIR] Add ability to register session components from FIR plugins 2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov 60df531c02 [NoArg] Migrate NoArg tests to new test infrastructure 2022-06-07 14:12:16 +00:00
Dmitriy Novozhilov 8fc4962213 [NoArg] Reorganize module structure of NoArg plugin 2022-06-07 14:12:16 +00:00
Dmitriy Novozhilov 0f757c300a [Atomicfu] Make Atomicfu compatible with K2
Atomicfu is backend-only plugin, so it compatible with both frontends
2022-06-07 14:12:15 +00:00
Dmitriy Novozhilov 259862d294 [Parcelize] Reorganize module structure of Parcelize plugin
Also mark parcelize as compatible with K2
2022-06-07 14:12:15 +00:00
Dmitriy Novozhilov 2a7dc1cc0c [AllOpen] Reorganize module structure of AllOpen plugin
This scheme will be common for all compiler plugins with K1 and K2 support:
- `plugin-common` contains classes shared with K1 and K2 implementations (if any)
- `plugin-k1` contains implementation for K1 compiler
- `plugin-k2` contains implementation for K2 compiler
- `plugin-backend` contains implementation for backend extensions (if any)
- `plugin-cli` is module for registration of plugin in CLI compiler
- `plugin` is a root module with tests and all submodules embedded

This structure is needed to distinguish parts related to different frontends,
  which is needed for proper dependencies settings for Kotlin IDE plugins
2022-06-07 14:12:15 +00:00
Dmitriy Novozhilov 22ebea8174 [FIR] Support FIR version of all-open plugin 2022-06-07 14:12:14 +00:00
Dmitriy Novozhilov 4003ca0691 [FE] Add ability to set compatibility of plugin with K2 in ComponentRegistrar 2022-06-07 14:12:14 +00:00
Dmitriy Novozhilov 67589b1b09 [FIR] Don't report TAILREC_ON_VIRTUAL_MEMBER_ERROR on private declarations 2022-06-07 14:12:13 +00:00
Dmitriy Novozhilov 399aaeca9d [FIR] Implement proper copy utility for FirDeclarationStatus 2022-06-07 14:12:13 +00:00
Dmitriy Novozhilov c7e3da8709 [FIR] Extend DeclarationPredicate DSL 2022-06-07 14:12:13 +00:00
Dmitriy Novozhilov 6ff848432b [Test] Add path to all plugins testdata to test plugin config 2022-06-07 14:12:12 +00:00
Dmitriy Novozhilov 3ee0d13119 [FIR] Add additional DSL methods to FirExtensionRegistrar 2022-06-07 14:12:12 +00:00
Dmitriy Novozhilov b0c2332b4c [AllOpen] Fix package structure 2022-06-07 14:12:11 +00:00
Dmitriy Novozhilov 01664da0a3 [AllOpen] Migrate AllOpen tests to new test infrastructure 2022-06-07 14:12:11 +00:00
Pavel Kunyavskiy 9e9c9530e7 [K/N] Disable cache on some non-default configurations
There are some compiler keys that affect code-generation or set of
linked runtime libraries. If caching is enabled, this would be handled
incorrectly, as cached version can be built with other combination of
this keys.

For now, we just disable cache for all non-default configurations.
This commit adds more correct definition of this non-default.

^KT-52613
2022-06-07 13:43:49 +00:00
Ilya Goncharov 5abbb8666d rra/ilgonmic/statistics
[JS, Statistics] Register absence in legacy webpack

[JS, Statistics]Register build metrics reporter service for webpack task

[JS, Statistics] Use only bundle size

[JS, Statistic] Add bundle size to webpack task

[JS, Statistic] Collect information about compilation size

[Gradle, JS] Add size metrics

Merge-request: KT-MR-6388
Merged-by: Ilya Goncharov <Ilya.Goncharov@jetbrains.com>
2022-06-07 12:53:44 +00:00
Jinseong Jeon 7878c19225 LL: delete technically empty file 2022-06-07 13:39:56 +02:00
Pavel Mikhailovskii 65b2cee913 KT-23397 Optimize out field for property delegate when it's safe (JVM) 2022-06-07 10:46:01 +00:00
Denis.Zharkov 9ee0268197 Minor. Drop unused FirTowerDataMode.SPECIAL 2022-06-06 15:18:05 +03:00
Denis.Zharkov 41dd00c241 FIR: Use outer scope for annotation arguments resolution
^KT-41980 Fixed
2022-06-06 15:18:05 +03:00
Denis.Zharkov eae673233b FIR: Rework FirRegularTowerDataContexts
- Get rid of SPECIAL mode (just left REGULAR and class-related instead)
- Clear naming
- Restore contexts after lambda/callable reference are processed

The test has been failing before this change because after
callable reference is resolved, its tower data context has been left
erroneously in the SPECIAL-related entry
2022-06-06 09:39:29 +00:00
Denis.Zharkov 521d6c307c Minor. Make properties private in FirSpecialTowerDataContexts 2022-06-06 09:39:29 +00:00
Denis.Zharkov 6e6d576a44 Minor. Drop unused addReceiverLabelAlias 2022-06-06 09:39:28 +00:00
Roman Golyshev 166c771e1b [FIR IDE] Ensure resolve to CONTRACTS phase in ReturnTypeCalculator
If we want to analyse some function's call, we need to know about its
contracts, otherwise resolving the following code would be broken.
Computing return type of function is a prerequisite to using it in any
sensible way, so it's the best place to resolve it to CONTRACTS

KT-50733
2022-06-06 09:14:37 +00:00
Ilya Gorbunov e14ac2a062 Test kotlin-repeatable annotations on Android
(except for type-use annotations)
2022-06-04 10:39:37 +00:00
Ilya Gorbunov 8da8c94363 Workaround KTIJ-21808 "Kotlin not configured" in Kotlin project
by avoiding problematic source root during IDEA project import.
2022-06-04 10:35:24 +00:00
Alexander Udalov 1557ed9489 Remove unsupported argument from common-configuration 2022-06-04 00:52:17 +02:00
Yahor Berdnikau cb448b0f76 Fix 'kotlin-compiler-embeddable' project does not publish required artifacts
Restore publishing javadocs and sources jars.
2022-06-03 17:21:20 +00:00
Roman Golyshev bc853e45e8 [FIR IDE] Do more precise extraction of the dispatcher receiver
If the `candidateSymbol` is an extension, then it cannot be called with
an explicit dispatch receiver, because only the extension receiver
can be explicit in such case

Therefore, we consider `receiverExpression` to be a dispatch
receiver only if the `candidateSymbol` is not an extension

KTIJ-21910
2022-06-03 16:37:17 +00:00
Roman Golyshev e92cd609fb [FIR IDE] Correctly collect containing declarations in init { ... }
`init` is not a callable declaration, and is considered local, so you
cannot build a designation starting from it. In that we case we traverse
parents until we find the first non-local class, and use it as a
container

KTIJ-21910
2022-06-03 16:37:16 +00:00
Mikhail Glukhikh 0ee04d0825 FE10 analysis API: revert resolving 'this' references to receivers
FE10 IDE plugin relies on resolving 'this' references to class or callable
2022-06-03 16:25:44 +00:00
Pavel Kunyavskiy 707d2c42ad [K/N] Fix version parsing in perfomance-server 2022-06-03 12:21:42 +00:00
Pavel Kunyavskiy 574562d9f9 [K/N] Refactor devirtualization graph build to avoid too deep recursion
^KT-52386
2022-06-03 09:03:40 +00:00
Yahor Berdnikau 72b7d8da6d Drop gradleKotlinDsl dependency for KGP
This dependency brings gradleApi as a transitive dependency, which leads
to false-positive deprecation errors in plugin variants.

^KT-47047 In Progress
2022-06-03 08:29:58 +00:00
Yahor Berdnikau d924c14df7 Add convenient extension methods to get variant implementation factory
^KT-47047 In Progress
2022-06-03 08:29:58 +00:00
Yahor Berdnikau ebce1a1d2d Fix warnings in gradle70 variant
This allowed to enable warning-as-errors for :k-g-p:gradle70 compilation

^KT-47047 In Progress
2022-06-03 08:29:57 +00:00
Yahor Berdnikau 1be8480aed Suppress deprecations for MavenPluginConfiguratorG6
This allowed to enable warning-as-errors for :k-g-p:main compilation

^KT-47047 In Progress
2022-06-03 08:29:56 +00:00
Vladimir Sukharev eabf6dac7f Fix "kotlin.TypeCastException has no message on Native"
#KT-35544 Fixed

Merge-request: KT-MR-6392
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2022-06-03 07:40:26 +00:00