Commit Graph

100867 Commits

Author SHA1 Message Date
Pavel Kunyavskiy fa1b22cf31 [K/N] Make klib manifest saving platform-independent
^KT-57126
2023-05-03 12:12:58 +00:00
Dmitriy Dolovov 0de06757ca [K/N][tests] Rework tags for K/N tests
Use plain combinations of tags, examples:
* codegen/box w/o FIR: 'codegen & !frontend-fir'
* codegen/box with FIR: 'codegen & frontend-fir'

Avoid using tags with multiple aspects in their names, examples:
* 'codegenK1'
* 'firCodegen'

The obsolete tags to be removed but still used in TeamCity configurations:
* 'stdlibK2'
* 'kotlin-testK2'
* 'codegenK2'
* 'k2libContents'
* 'firInfrastructure'
2023-05-03 11:49:43 +00:00
Dmitriy Dolovov f2b6cbeee8 [K/N][tests] Merge tags: noPartialLinkage() + noPartialLinkageMayBeSkipped() 2023-05-03 11:49:43 +00:00
Dmitriy Dolovov cdf84a019d [K/N][tests] Rename tags: hostOnly() -> forceHostTarget() 2023-05-03 11:49:43 +00:00
Dmitriy Dolovov d998ccedc2 [K/N][tests] Rename tags: debugOnly() -> forceDebugMode() 2023-05-03 11:49:43 +00:00
Sergej Jaskiewicz 40a1443401 [GitHub] Highlight Kotlin-like IR dump as Kotlin on GitHub
github.com/github-linguist/linguist/blob/master/docs/overrides.md

See e.g. *.kt.txt files in compiler/testData/ir/irText
2023-05-03 10:46:21 +00:00
Alexander Korepanov 97024edf8a [JS IR] Replace canonicalPath with absolutePath
Since canonicalPath is slow, replace it with
absolutePath in SourceMaps and CompilationOutputs.

^KT-58187 Fixed
2023-05-03 10:39:40 +00:00
Nikolay Lunyak 1d9db1b9f8 [FIR] Use proper moduleData in fake override generator Ti
^KT-58145 Fixed
2023-05-03 10:04:25 +00:00
Nikolay Lunyak ef28e031dc [FIR] KT-58145: Ensure the compiler fails
It fails with: "Module data is not
registered in Libraries session"
during `FirFakeOverrideGenerator.createCopyForFirProperty()`
for `callerFrame`.
2023-05-03 10:04:25 +00:00
Nikolay Lunyak efbcfb4994 [FIR] Prevent duplicate FileAnalysisException-s 2023-05-03 10:04:25 +00:00
Alexander Udalov f3231b2aa9 KGP IT: do not run recently added tests with class loader cache
Also add a comment mentioning the error so that it could be searchable
in the future.
2023-05-03 09:47:58 +00:00
Dmitrii Krasnov 617dddba70 migrated FatFrameworkIT to junit 5 and gradle TestKit 2023-05-03 09:29:31 +00:00
Nataliya.Valtman 1591869991 Add FUS statistics for dokka usage
#KT-57330 Fixed
2023-05-03 07:22:38 +00:00
Alexander Udalov 180fc84eb7 Add ReadMe for compiler/android-tests 2023-05-02 21:27:12 +00:00
Hung Nguyen 37d6606852 IC: Load one class at a time when snapshotting classpath
Previously, when snapshotting the classpath with
`ClasspathEntrySnapshotTransform`, for each jar we load all classes
in memory at once. This was needed to detect inaccessible classes
(classes that don't impact incremental compilation and therefore
don't need to be snapshotted).

To reduce memory consumption, this commit updates the algorithm such
that we can now load one class at a time while still being able to
detect inaccessible classes.

In addition, we now read jar files with `java.util.zip.ZipFile` API
instead of `java.util.zip.ZipInputStream` to avoid current JDK bugs with
`ZipInputStream` (e.g., https://bugs.openjdk.org/browse/JDK-8298530).

^KT-57757 Fixed
^KT-57767 Fixed
2023-05-02 19:42:03 +00:00
Kirill Rakhman 8afc8950e6 [FIR] Report illegal in/out modifier on star projection
#KT-55668 Fixed
2023-05-02 15:16:07 +00:00
Kirill Rakhman 0c3d5c11b1 [FIR] Render integer literal types as Int in diagnostic messages
#KT-55662 Fixed
2023-05-02 15:10:55 +00:00
Kirill Rakhman cc87aabaec [Test infrastructure] Remove redundant suppress 2023-05-02 15:10:55 +00:00
Dmitrii Gridin fdcfb1d190 [AA FIR] add missing new line to addImportToFile
^KTIJ-25416
2023-05-02 14:37:28 +00:00
Dmitry Savvinov 8561bbf603 [Gradle] Minor: move diagnostic tests under unitTest package 2023-05-02 14:32:14 +00:00
Dmitry Savvinov c5bda2f63c [Gradle] Support suppressing KGP diagnostics 2023-05-02 14:32:14 +00:00
Dmitry Savvinov f5c4dffc3e [mpp] Hack: Inherit KotlinProjectExtension in KotlinPm20ProjectExtension
Addition of checkers in previous commits lead to CCE when they call
'project.kotlinProjectExtension'. Change in this commit isn't
semantically sound, but allows to repair those tests cheaply
2023-05-02 14:32:13 +00:00
Dmitry Savvinov 97f77c2ecf [Gradle] Add functional tests on the new diagnostics/features infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 6452c22430 [mpp] Migrate AGP Compatbility checks to the new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov bb3dc145e5 [mpp] Migrate AndroidSourceSetLayout checks to the new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 4e479cb54b [mpp] Migrate UnusedSourceSetsChecker to the new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov ee9a952da2 [mpp] Migrate jvmWithJava preset deprecation to the new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 05662eae7a [mpp] Migrate MissingNativeStdlibWarning to the new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 07142a4083 [mpp] Migrate checks of commonMain.dependsOn to the new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 7a5f1d694f [mpp] Migrate checks of deprecated K/N targets to new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov a539db932c [mpp] Migrate HMPP-flags deprecations to the new infra 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 29223dbd4a [Gradle] Add integration tests on new diagnostics infrastructure 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 5cd94d1db2 [Gradle] Support testing new diagnostics infrastructure in functionalTests 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 4a88e01a8e [Gradle] Add new infrastructure for diagnostics in KGP 2023-05-02 14:32:13 +00:00
Dmitry Savvinov 5dd52f7d40 [tests] Apply modern plugins instead of legacy ones
KotlinPlatform*Plugins are plugins from pre 1.3 MPP and shouldn't
be used. The intention was to apply usual 'kotlin("jvm")' and
'kotlin("android")'-plugins, for which KotlinPluginWrapper and
KotlinAndroidPlugin stand respectively
2023-05-02 14:32:13 +00:00
Dmitry Savvinov 0a33eef518 [build] Fix weird dependencies management
kotlin-gradle-plugin-integration-tests on runtime uses relocated
compiler jars. A special handling is required to support this.

Looks like 'kotlin-gradle-plugin-test-utils' was meant to help
here somehow, but was accidentally broken at some point. It went
unnoticed because not much classes from transitive dependencies
of 'kotlin-gradle-plugin-test-utils' were used.

The change in this commit still leaves a few questions about this
configuration, but at leats it makes it possible to use compiler
classes (e.g. KotlinTestUtils)
2023-05-02 14:32:12 +00:00
Dmitry Savvinov e22a9b7108 [mpp] Minor: drop obsolete reporting of HMPP flags
Now any usages of HMPP-flags are deprecated and reported in
deprecationDiagnostics.kt, which can sometimes lead to duplicated
reports
2023-05-02 14:32:12 +00:00
Dmitry Savvinov 31eb012b6b [tests] Minor: add support of DevKit in Gradle IT
This should provide some nicities in IDEA like folders for navigating
to testData
2023-05-02 14:32:12 +00:00
Denis.Zharkov e95b8b843b K2: Support Unit-typed synthetic Java property
^KT-57979 Fixed
2023-05-02 14:24:23 +00:00
Sergej Jaskiewicz c022c451a4 Adjust the code style to use trailing commas in parameter lists 2023-05-02 13:36:56 +00:00
Kirill Rakhman 3bfb0866cb [FIR] Report CANNOT_CHECK_FOR_ERASED independent of reified parameters
This changes the logic so that Foo<T> is reported no matter if T is
reified or not. Even for Array<reified T> to align K2 with K1 logic.

#KT-55903 Fixed
2023-05-02 13:14:47 +00:00
Mikhail Glukhikh bbee881b5b K1: add separate TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_IN_AUGMENTED_ASSIGNMENT
This is made to have a correct error message for a problem
described in KT-48546
#KT-48546 Fixed
2023-05-02 12:57:15 +00:00
Mikhail Glukhikh c5fe4b53cf FE: add more augmented assignment tests around KT-48546 2023-05-02 12:57:15 +00:00
Kirill Rakhman bdc5a37552 [Gradle IT] Enable integration test after Native version bump
#KT-58219
2023-05-02 13:25:30 +02:00
Dmitriy Dolovov 38a777fa94 [PL][tests] Mute K/N codegen/box tests failing in K1/one-stage mode
For details, see #KT-57747.
2023-05-02 10:58:38 +00:00
Alexander Udalov 926aa07ca1 Gradle: do not set fragments/fragmentRefines for non-MPP
Otherwise kapt-generated Kotlin sources do not end up in any module,
which causes an error in KT-58301. The error is only happening with K2
because fragments/fragmentRefines arguments are checked more strictly
than commonSources used in K1.

 #KT-58301 Fixed
2023-05-02 10:52:23 +00:00
Alexander Udalov b72b1ad7cd CLI: fix confusing error message about JvmDefault
#KT-58351 Fixed
2023-05-02 10:52:01 +00:00
Anna Kozlova 8106505166 [decompiler] get rid of indexers in decompiled text 2023-05-02 10:30:35 +00:00
Anna Kozlova 1102dc1d0e [psi] define common constant expressions types 2023-05-02 10:30:34 +00:00
Anna Kozlova 956294821b [psi] don't load text for compiled code
use stubs when possible, when stub doesn't contain anything,
decompiled text won't contain it either,
no sense to load
2023-05-02 10:30:34 +00:00