Fix multiple problems with Kotlin artifact version handling in the Kotlin IDE plugin, including:
- Ad-hoc version handling, lack of common set of utilities.
- String typing and clunky transformations (for instance, artifact version -> language version).
- Usage of embedded compiler's 'LanguageVersion.LATEST_STABLE' and similar constants. Although we plan to switch to the bootstrap compiler version, the IDE plugin shouldn't expose new language features by default. JPS compiler version is used instead, as it's guaranteed to be stable (or ~stable).
GitOrigin-RevId: 3abde796c58680fd6873af68e02d9b5a8edf6ed1
Slow kotlin test class provider is based on LightClasses and therefore very expensive, it should be calculated on a slow path
#KTIJ-20396
GitOrigin-RevId: 084c7f5278e7036374c92b986702fc9943b6cd1e
imls shouldn't be in same directory otherwise it's not
possible to generate build.gradle.kts files from imls
GitOrigin-RevId: 9a611fe57b7665e5fbf25cbed38b965a700dd4fe
Such as:
- PackageFragmentProviders, and, in particular,
CompositePackageFragmentProviders
- JavaPackageFragments
- Scopes produced by those providers
The rationale is that a lot of frontend-facing bugs (like red code) are
easily recognizeable in resolution. But at that point you just see a
bunch of scopes, without meaningful toStrings, you don't know who has
produced them, and what's exactly wrong.
With this commit it should make debugging slightly easier: now at least
you'll be able to see that "this scope is a scope of package fragment
for foo.bar of module baz" and decide whether the declaration should or
should not have been resolved from such scope.
Original commit: 708fead1cc8ff47c6af7a1b78a3ab113a1491f06
GitOrigin-RevId: fc6a4e7ed96e9303b8efa3ed65873cf425ac6728
tests-common was copy-pasted from kotlin repo some time ago cause it had a lot of infrastructure
code inside and we needed to adopt this infrastructure code for new infra for Kotlin
plugin + intellij repo. Now kotlin created new test infrastrucutre `:compiler:tests-common-new`,
`:compiler:test-infrastructure`, `:compiler:test-infrastructure-utils` and FIR started depending
on it (pain screams). Some classes from `:compiler:tests-common` was moved to moduled of new
compiler infrastructure. In order to avoid FQN classes slashing let's move our `tests-common`
into subpackage
GitOrigin-RevId: 4ce8485ca94d27c304c1fc9f08ecb1bc8a10ddbe
Kotlin JPS plugin is going to be migrated to Kotlin repo (in scope of KTIJ-11633),
so let's replace all dependencies on sources with dependencies on binaries
GitOrigin-RevId: 83fa7ffc92b40fc9740d103013ef3341068593b5
Some facts:
1. Kotlin plugin bundles own version of kotlin-stdlib and reflect (see KotlinPluginBuilder.groovy).
We bundle own version of stdlib and reflect (but not use the one which comes with IDEA) because
otherwise we would have runtime errors in compiler frontend which we depend on
(kotlinc.kotlin-compiler)
2. Kotlin plugin exists in two release cycles. We have special `kt-xxx-[kotlin_compiler_version]`
branches (e.g. kt-212-1.5.30 branch) in the repository where we put Kotlin plugin fixes which
should be delivered in KT release cycle.
2.1 The fact that we publish Kotlin plugin artifacts to marketplace from special kt-branches
leads to the fact that stdlib may be different in Kotlin plugin and IntelliJ IDEA. By
separating `kotlin-stdlib-jdk8` and `kotlinc.kotlin-stdlib` we make it obvious that Kotlin
plugin has it's own stdlib
This commit fixes broken incremental compilation in kt-212-master
on TeamCity because now we have to bootstrap only kotlinc.kotlin-stdlib.
Previously, we had to bootstrap kotlin-stdlib-jdk8 which caused problems
with incremental compilation because whole monorepo depends on this artifact.
Also now during kotlinc updates in `intellij/master` we don't have to update kotlin-stdlib-jdk8
every time to keep kotlinc version the same among different imls/xmls in the monorepo
https://jetbrains.team/im/code/258iod1xjiFZ?message=BK9Aq0SIM1A&channel=152Z1w0RwrFp
(cherry picked from commit 23b2a70604c5c578983b0d76cb8634b9ed301a59)
GitOrigin-RevId: 773c01c405f2eb9db8d88ce3c58e4bdcee66c085