Commit Graph

104417 Commits

Author SHA1 Message Date
Dmitriy Novozhilov e69c9e2fc6 Advance bootstrap to 1.9.30-dev-2548 2023-09-07 11:53:28 +00:00
Vyacheslav Gerasimov 7d96623c37 Build: Extract toolchain resolve into a separate task
#KTI-72
2023-09-07 10:50:02 +00:00
Alexander Shabalin 49814ecb8a [K/N] Remove std_support allocation code ^KT-59008 2023-09-07 09:32:00 +00:00
Anton Bannykh 002cd011d4 [JS] add CLI test for KT-60531 2023-09-07 08:21:34 +00:00
Johan Bay 1e66f25546 [K/N] Link small bitcode modules together first
Repeatedly linking many smaller bitcode modules into one large is very
slow. We are seeing a 10x improvement by instead linking all the small
modules together first and link the result into the larger main module.
This commit implements this optimization in the
LinkBitcodeDependenciesPhase phase.

^KT-61604 Fixed


Co-authored-by: Johan Bay <jobay@google.com>
2023-09-07 07:44:31 +00:00
Alexander.Likhachev 6eaccc997f [Build] Fix the typo junit jupyter -> jupiter 2023-09-06 22:47:34 +00:00
Alexander.Likhachev a6f3dbb5f4 [Build] Remove unused AggregateTest 2023-09-06 22:47:34 +00:00
Alexander.Likhachev 37c8d789e6 [Build] Remove unused Project.preloadedDeps extension method 2023-09-06 22:47:34 +00:00
Alexander.Likhachev 7f8d9df76d [Build] Use the latest JUnit engine for kotlin-test-junit5 tests
This change aligns with the intention in 634279621d, however the "latest" version wasn't synced with other "latest" versions within the repo
#KTI-1349 In Progress
2023-09-06 22:47:34 +00:00
Alexander.Likhachev 4eb8a80b0c [Build] Update JUnit 5 to 5.10.0
#KTI-1349 In Progress
2023-09-06 22:47:34 +00:00
Alexander.Likhachev 6f96be0b76 [Build] Get rid of the testApiJUnit5 method
#KTI-1349 In Progress
2023-09-06 22:47:34 +00:00
Alexander.Likhachev 53fde520d5 [Build] Add jUnit dependencies in testApiJUnit5 to the implementation configuration
Adding these dependencies to the `api` configuration pollutes classpath for each dependant modules even if it doesn't need them. Instead, the dependencies should be declared more granularly if they're required
#KTI-1349 In Progress
2023-09-06 22:47:34 +00:00
Alexander.Likhachev 0ecbb64c64 [Build] Remove testApiJUnit5 parameters
Instead of declaring additional dependencies inside the method, declare them directly
#KTI-1349 In Progress
2023-09-06 22:47:34 +00:00
Alexander.Likhachev 7a1dc1f89b [Build] Do not add ij dependencies in testApiJUnit5
This is not needed since the dependencies are already declared as API dependencies in the relevant projects.
#KTI-1349 In Progress
2023-09-06 22:47:33 +00:00
Alexander.Likhachev ef0fb557a5 [Build] Split junit-jupiter into api and engine
#KTI-1349 In Progress
2023-09-06 22:47:33 +00:00
Alexander.Likhachev 357d12fc8e [Build] Move JUnit dependencies into the version catalog
The `kotlin-test` dependencies are left untouched as changing them affects publications, thus these versions are independent from the used inside our build
#KTI-1349 In Progress
2023-09-06 22:47:33 +00:00
strangepleasures 9d43945b19 [KAPT4] KT-61729 Resolve annotation arguments during generation of @Metadata annotations 2023-09-06 19:47:28 +00:00
Alexander Shabalin 798e832943 [K/N] Remove fast paths phase checks in parallel mark ^KT-61741 2023-09-06 16:41:14 +00:00
Ilya Kirillov 190f7c4d30 [frontend] refactoring, reuse org.jetbrains.kotlin.resolve.multiplatform.isCompatibleOrWeakCompatible
to avoid code duplication
2023-09-06 16:30:28 +00:00
Ilya Kirillov 030250d387 [FIR] fix resolution ambiguities between weakly compatible expect and actual
There is a corresponding example inside the stdlib,
see `kotlin.text.startsWith`.

JVM and common counterpart are weakly-compatible
as the actual declaration has default arguments,
which results in `ExpectActualCompatibility.Incompatible.ActualFunctionWithDefaultParameters`

This commit allows such cases.

^KT-61732 fixed
2023-09-06 16:30:28 +00:00
Ilya Kirillov 209d59440b [Analysis API FIR]: fix a freeze on rendering of invalid type arguments
^KT-61750 fixed
2023-09-06 16:05:49 +00:00
Kirill Rakhman b41e5abcfa [FIR] Fix bounds check for inner classes of generic outer classes
#KT-61068 Fixed
#KT-35566
2023-09-06 15:15:07 +00:00
Roman Efremov 5e49b472f8 [FE, IR] Allow @ImplicitlyActualizedByJvmDeclaration to be set only on expect
@ImplicitlyActualizedByJvmDeclaration is the only one
OptionalExpectation annotation which works correctly when set only on
`expect`. All other (like @JvmName, @JsName) - not, so warning for them
must be reported.

^KT-61725 Fixed
2023-09-06 14:27:07 +00:00
Roman Golyshev efad248d7d KT-61245 [LL API] Refactor ContextCollector
Extract visiting class header into a separate function

^KT-61245 Fixed
2023-09-06 14:24:35 +00:00
Roman Golyshev 7ddb4f8324 KT-61245 [LL API] Collect correct context for class headers
To avoid collecting context which includes the implicit class receiver,
context for class header positions is collected before entering
the `context.withRegularClass` call
2023-09-06 14:24:35 +00:00
Roman Golyshev b44632b92f KT-61245 [LL API] Collect correct context for fields
There is a fake field created for the supertypes delegation,
and it needs to be visited by the collector
2023-09-06 14:24:35 +00:00
Alexander Shabalin f47a09e55e [K/N] Move allocator-specific data into allocators. ^KT-60928 2023-09-06 14:18:08 +00:00
Mikhail Glukhikh 056e644b6d FirBuiltinSymbolProvider: add a header comment describing built-ins
Related to KT-61330
2023-09-06 13:14:16 +00:00
Mikhail Glukhikh c695d2759a K2: add test plugin visitor checking source elements presence
Related to KT-60555, KT-61330
2023-09-06 13:14:16 +00:00
Mikhail Glukhikh 4d9457862f K2: add sourceElement for binary Java classes
#KT-60555 Fixed
2023-09-06 13:14:16 +00:00
Kirill Rakhman 10e94f90ac [Tests] Trim contents before checking for FIR_IDENTICAL 2023-09-06 11:32:57 +00:00
Alexander Udalov 6b919e2593 K2: fix FirCompileKotlinAgainstCustomBinariesTest
Behavior of reporting UNRESOLVED_REFERENCE was changed in 10f7989af6.
2023-09-06 12:41:39 +02:00
Artem Kobzar bff433f4e9 [K/JS] Support eager initialization for per-file granularity 2023-09-06 09:27:28 +00:00
Dmitriy Novozhilov f203681ffa [FIR] Make extensionReceiver and dispatchReceiver nullable
Get rid of FirNoReceiverExpression

^KT-59650 Fixed
2023-09-06 09:25:22 +00:00
Kirill Rakhman 585c3fe4b5 [Tests] Add test for #KT-61717 2023-09-06 08:34:04 +00:00
Alexander Udalov fec2d063c1 K2: report PRE_RELEASE_CLASS on JVM
Note that 3 tests are still muted, but for another reason: for FIR
versions of the tests, we need to compile the "pre-release library" with
the next language version which is 2.1. But since currently
LanguageVersion.LATEST_STABLE is 1.9, the compiler refuses to read
metadata of version 2.1, regardless of its own language version. Which
is correct, but it leads to irrelevant errors in the test output -- the
ones about the incompatible metadata version, NOT about the
prereleaseness.

These 3 tests can be unmuted once the default language version is
switched to 2.0.

 #KT-60780 Fixed
2023-09-06 08:05:34 +00:00
Alexander Udalov 8738ffb84f K2: suppress exception when reading unsupported metadata
Before the change, the compiler threw exception in the unmuted tests,
because it tried to load metadata even though it had an unsupported
version. Use the same approach as in K1 (see
DeserializedDescriptorResolver).

Now the tests are unmuted, but note that test data differs from K1. K1
does not report errors related to the class `a.A` because it loads this
class as a _Java class_, so calling its constructor and methods somehow
works. This behavior is questionable since the compiler surely knows
that it is a Kotlin class, but with an unsupported metadata version.
Trying to interpret it as a Java class may lead to subtle problems. So
it's safer for now to avoid loading Kotlin classes with unsupported
metadata versions in K2.

 #KT-60795 Fixed
2023-09-06 08:05:34 +00:00
Alexander Udalov 8f720ad24b K2: support -Xskip-metadata-version-check
#KT-60795
2023-09-06 08:05:34 +00:00
Alexander Udalov 7d60b5df43 K2: report INCOMPATIBLE_CLASS in JVM
#KT-60795
2023-09-06 08:05:34 +00:00
Alexander Udalov db8fb30343 K2: minor cleanup in JvmClassFileBasedSymbolProvider 2023-09-06 08:05:34 +00:00
Alexander Udalov 1d5ade1166 K2: minor, remove misleading FirMemberDeclaration.containerSource
"Container source" means "the source of the container". So, if you
called this extension on a class (`FirClassLikeDeclaration`), it was
reasonable to assume that you would get the source of its _containing
class_, whereas the function actually returned the source of the class
itself.

Instead of inventing another name for this function, I've decided to
inline and remove it because it has only one usage.
2023-09-06 08:05:34 +00:00
Alexander Udalov 54a5f7d8f2 Remove unused test data on JS metadata version
Apparently these tests are no longer being run after a6d461dbe8.
2023-09-06 08:05:33 +00:00
Kirill Rakhman 393a5d6c14 [FIR] Fix IAE in TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM
IllegalArgumentException: class
org.jetbrains.kotlin.psi.KtLambdaArgument is not a subtype of class
org.jetbrains.kotlin.psi.KtExpression for factory
TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM
was reported when TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM was
reported on a FirLambdaArgumentExpression, report it on its
`expression` instead.

#KT-60380 Fixed
2023-09-06 07:38:34 +00:00
Ilya Kirillov f7352585f4 [Analysis API Standalone] do not add non-supported file types to KtSourceModule
^KT-60884
2023-09-06 07:36:12 +00:00
Ilya Kirillov c76f365efb [Analysis API Standalone] change behavior of StandaloneAnalysisAPISession.getModulesWithFiles
- it now returns a map only for `KtSourceModule`
- every `KtSourceModule` is present there, even a module without source files

^KT-60884
2023-09-06 07:36:11 +00:00
Ilya Kirillov a2015a6eb5 [Analysis API Standalone] fix wrongly registered KtLifetimeTokenProvider for standalone mode tests
`KtAnalysisSessionProvider` cached the incorrect `KtLifetimeTokenFactory` before the proper one was registered

^KT-60884
2023-09-06 07:36:11 +00:00
Ilya Kirillov 43a8ae98b7 [Analysis API Standalone] add basic tests for buildStandaloneAnalysisAPISession
^KT-60884
2023-09-06 07:36:11 +00:00
Ilya Kirillov 0416e0423f [Analysis API Standalone] deduplicate binary roots for KtBinaryModuleBuilder
^KT-60884
2023-09-06 07:36:11 +00:00
Ilya Kirillov d459981974 [Analysis API Standalone] return as a result created module in KtModuleProviderBuilder.addModule so it can be reused
^KT-60884
2023-09-06 07:36:11 +00:00
Ilya Kirillov fcf062a252 [Analysis API Standalone] simplify initializing KtSdkModuleBuilder with JDK
^KT-60884
2023-09-06 07:36:11 +00:00