Commit Graph

67466 Commits

Author SHA1 Message Date
Victor Petukhov bf23b39d76 Add using -Xinline-classes by default in IDE intentions
^KT-34209 Fixed
2020-07-14 17:43:44 +03:00
Pavel Kirpichenkov 79d7babb57 Add test checking file annotations resolution
#KT-37219 Fixed
2020-07-14 17:07:42 +03:00
Nikolay Krasko 36a46482c5 Unmute IdeReplCompletionTestGenerated.testDefinedExtension in 202
Lost this line from 16c5ba0988
 during the mute-platform.csv.202 creation.
2020-07-14 17:05:30 +03:00
Natalia Selezneva 5954fe528b gradle.kts: do not return ErrorScriptDefinition into GradleBuildRootManager
In this case script definition is saved into script info,
but only real script definitions should be cached
In case of null script configurations will be reloaded into cache when scriptdefinitions will be ready

^KT-39910 Fixed
2020-07-14 15:30:21 +03:00
Natalia Selezneva 3e3f8aeb93 Mark importing as complete in case of some unexpected behavior
For example in case when script contains some errors gradleHome might be null
Then build root should be marked as updated
Also notification should be updated
2020-07-14 15:30:20 +03:00
Ilya Goncharov 2c67ab924f [Gradle, JS] this globalObject in webpack
^KT-40159 fixed
2020-07-14 14:42:26 +03:00
Andrei Klunnyi 93a82060d4 KT-39788 MPP, Gradle runner: Run does not add resource directory to classpath // gradle runner support
Before this commit "delegate to Gradle" option was not taken into
consideration. Was it MPP or SPP, KotlinRunConfiguration was always
executed by platform runner (as a default one). The reason behind this
was that there was no dedicated class (extension point) responsible for
Gradle-Kotlin pair. Now its KotlinGradleAppEnvProvider.
2020-07-14 11:24:59 +00:00
Andrei Klunnyi 681c2e9492 KT-39788 MPP, Gradle runner: Run does not add resource directory to classpath // classpath fix
The reason of resource directory absence was that it couldn't be loaded
from the project configuration file. Just after the import it remained
in the memory and runner couldn' get it. KotlinOutputPathsDataService as
a pair to KotlinOutputPaths is what was missing. Details are provided
below.
------------------------------------------------------------------------
On a disk configuration represents a binary file containing serialized
graph of external project structure. It contains nodes belonging to both
IDEA and its plugins.

To deserialize a node IDEA tries to load its class using a chain of
class-loaders: its own and those provided by actual set of plugins.
The nuance is how to get plugins' ones. The approach is the following.
There is an association between a node's payload and a service which is
supposed to consume it see KotlinOutputPathsDataService#getTargetDataKey
and DataNode#getKey). Plugin services are guaranteed to be loaded by
plugin class loader.
No association - service - no plugin, node was just skipped.
------------------------------------------------------------------------
2020-07-14 11:24:58 +00:00
Ilya Muradyan 07b566dd02 Add @JvmDefault for getPossibleSyntheticNestedClassNames 2020-07-14 14:17:58 +03:00
Zalim Bashorov 340512e27a [KJS] Throw exception on recursive types provided to typeOf and provide proper support later within KT-40173
#KT-38140 fixed
2020-07-14 14:14:13 +03:00
Zalim Bashorov c552933459 [Test infra] Take into account transitive compatible targets while checking compatibility. 2020-07-14 14:14:12 +03:00
Zalim Bashorov ca37c6bfe6 [KJS FE] Allow using typeOf with non-reified type parameters
#KT-38771 fixed
2020-07-14 14:14:11 +03:00
Ilya Goncharov 9d362875da [Gradle, JS] Fail build in case when mpp or js targets not configured
^KT-40210 fixed
^KT-40300 fixed
2020-07-14 13:59:00 +03:00
Sergey Igushkin 62aed1b53a Add kotlin.stdlib.default.dependency=false to avoid stdlib default dep 2020-07-14 14:47:40 +04:00
Sergey Igushkin ad9d011ed0 Fix stdlib default dependencies with Android
* In Android test-related source sets, add an implementation dependency,
  not an api one, because adding dependencies to the api configurations
  leads to warnings from AGP

* Add the default stdlib dependency only to the Android main source set,
  as duplicating it elsewhere leads to issue with publishing the project
  with the `maven` plugin (duplicate conf2ScopeMappings)
2020-07-14 14:47:16 +04:00
Sergey Igushkin d83d3304a5 KT-38221: Stdlib by default; KT-40225 Single dependency on kotlin-test
* Add a DSL property `kotlin.coreLibrariesVersion` that is used as the
  default version for all org.jetbrains.kotlin dependencies instead of
  the plugin version used previously – the pluging version is the
  default now.

* Support omitting the `kotlin-stdlib-*` dependencies in all kinds of
  projects. For the JVM source sets, choose the stdlib module by
  checking the jvmTarget in the compilations – if all compilations
  target 8+ then use `kotlin-stdlib-jdk8`.

* Support adding a single dependency on the fake module
  `kotlin-test-multiplatform` that is later expanded into the
  appropriate dependencies on `kotlin-test-*` modules. For JVM source
  sets, detect the test framework by inspecting the test tasks.

* (minor) Fix _executionSource not updated in KotlinJvmTestRun

* (minor) Lazily query `kotlinUsageContext`'s dependency-related
  properties to avoid freezing the configurations

Issue #KT-38221 Fixed
Issue #KT-40225 Fixed
2020-07-14 14:47:13 +04:00
Ilya Goncharov 49c8d99f61 [Gradle, JS] Resolution of compilation's configurations inside NPM conf
^KT-40201 fixed
2020-07-14 13:13:45 +03:00
Ilya Goncharov 40311dbe05 [Gradle, JS] Fix test on public package json with dependencies
^KT-40201 fixed
2020-07-14 13:13:35 +03:00
Ilya Goncharov c5f89ebc0d [Gradle, JS] Add dev dependencies into public package json
^KT-40201 fixed
2020-07-14 13:13:18 +03:00
Mikhail Zarechenskiy bb23556ead Don't perform Unit-conversion for functional types with type variables
#KT-40269 Fixed
2020-07-14 13:05:28 +03:00
Mikhail Zarechenskiy 09b44b3189 Fix rewrite at slice exception for callable references inside flatMap
#KT-40254 Fixed
2020-07-14 13:05:28 +03:00
Andrei Klunnyi 1e4c554bcd KT-32368 Rework Inline hints settings // compatibility with earlier IDEA versions 2020-07-14 10:03:51 +00:00
Andrei Klunnyi 604e270a73 KT-32368 Rework Inline hints settings // preview text 2020-07-14 10:03:50 +00:00
Andrei Klunnyi 7a69cf587e KT-32368 Rework Inline hints settings // HintType cleanup 2020-07-14 10:03:50 +00:00
Andrei Klunnyi d6692a8062 KT-32368 Rework Inline hints settings // flattern parameter name hints menu 2020-07-14 10:03:49 +00:00
Andrei Klunnyi be0cde1d70 KT-32368 Rework Inline hints settings // remove suspending call hints
Suspending call hints were removed according to KT-30928 and KT-39271.
2020-07-14 10:03:48 +00:00
Andrei Klunnyi 49d4f55c87 KT-32368 Rework Inline hints settings // special case for lambda hints
Lambda hints are placed at the end of a line in such a way that user
can't move the caret behind it. Unfortunately, hint provision
infrastructure doesn't take this detail into account.
As a workaround, KotlinLambdasHintsProvider now returns an empty result
(sink) to the outer infrastructure and accesses editor's inlay model
itself.
2020-07-14 10:03:48 +00:00
Andrei Klunnyi d1722e3975 KT-32368 Rework Inline hints settings // migrate tests for types
KotlinReferencesTypeHintsProvider which in now responsible for
type hints is not compatible with the existing
InlayTypeHintsTest. Because of that tests were migrated to the new
infrastructure.
2020-07-14 10:03:47 +00:00
Andrei Klunnyi 36f3431559 KT-32368 Rework Inline hints settings // migrate tests for suspending calls
KotlinSuspendingCallHintsProvider which in now responsible for
suspending call hints is not compatible with the existing
SuspendingCallHintsTest. Because of that tests were migrated to the new
infrastructure.
2020-07-14 10:03:47 +00:00
Andrei Klunnyi b0dece756a KT-32368 Rework Inline hints settings // migrate tests for lambdas
KotlinLambdasHintsProvider which in now responsible for lambda related
hints is not compatible with the existing LambdaReturnValueHintsTest.
Because of that tests were migrated to the new infrastructure.
2020-07-14 10:03:46 +00:00
Andrei Klunnyi 5fe1eaea17 KT-32368 Rework Inline hints settings // remove outdated KotlinCodeHintsPass
Some time ago platform couldn't place hints at the end of a line.
This is how KotlinCodeHintsPass appeared. Class was responsible for
lambda related hints. Now that platform evolved functionality was moved
to KotlinLambdasHintsProvider.
2020-07-14 10:03:45 +00:00
Andrei Klunnyi 533507de25 KT-32368 Rework Inline hints settings // split KotlinInlayParameterHintsProvider
Platform supports 2 interfaces for inlay hints providers:
- InlayParameterHintsProvider [1]
- InlayHintsProvider [2]

KotlinInlayParameterHintsProvider as an implementation of (1) and a
source of "Inlay Hints" menu has the following limitations:
- Platform treats component as a source of "Parameter hints" submenu
that cannot be split. Once can only add or remove its nested checkboxes.
- Only a single instance of (1) can be defined.

To have a separate menu items for "Inlay Hints" existing
KotlinInlayParameterHintsProvider was split. New providers
implementing (2) were extracted from it:
- KotlinReferencesTypeHintsProvider
- KotlinSuspendingCallHintsProvider
- KotlinLambdasHintsProvider

TODO: HintType move as a separate commit
2020-07-14 10:03:45 +00:00
Sergey Igushkin 5ec93fd74c Fixup for the fix of KT-39809
In the original fix for KT-39809, the Kapt plugin was not given a proper
empty implementation stub: it was added to `Kapt3GradleSubplugin`, while
originally the Kapt subplugin's META-INF/services entry pointed to
`Kapt3KotlinGradleSubplugin`.

This commit makes the correct class implement the legacy interface.

Issue #KT-39809 Fixed
2020-07-14 13:09:26 +04:00
Sergey Igushkin 4c273e1fc5 Fix resolving dependency on self in HMPP (KT-39037)
Apply a workaround for grade/gradle#13680

Issue #KT-39037 Fixed
2020-07-14 13:09:24 +04:00
Sergey Igushkin aebca19fd7 Fix resolving an MPP dependency in custom configurations (KT-32239)
In the `KotlinPlatformType` disambiguation rule, don't prefer `common`
when there's a `jvm` or an `androidJvm` variant, as this would conflict
with disambiguation rules created by the other plugins, such as Gradle's
`java` which will choose `org.gradle.usage=java-api` and lead to
ambiguity.

Issue #KT-32239 Fixed
2020-07-14 13:09:22 +04:00
Mikhail Zarechenskiy 8158ba2be3 Add tests for obsolete issues
#KT-32183 Obsolete
 #KT-31474 Obsolete
 #KT-31853 Obsolete
2020-07-14 11:23:57 +03:00
Ilya Matveev 19dc3f071c Gradle, native: Enable assertions for in process compiler execution
Issue #KT-39764 fixed
2020-07-14 08:18:00 +00:00
vladislavf7@gmail.com 275ce16faa [FIR] add RedundantReturnUnitTypeChecker 2020-07-14 10:05:28 +03:00
Dmitry Savvinov 5c88b1e80a Allow depending on Native stdlib even if platforms do not match under HMPP
^KT-40102
2020-07-14 12:49:59 +07:00
Dmitry Savvinov 21026001db Add logging into ideaModelDependencies 2020-07-14 12:49:59 +07:00
Ilya Gorbunov 010e530ac4 Make common KClass extend common KClassifier
It already does that in all platforms.
Add KClass common API test.
2020-07-13 23:20:52 +03:00
Florian Kistner 1878ae8222 Don't apply copyright notice to Kotlin Ultimate
* Previous attempt apparently no longer effective
* Cover a few additional strangling files
2020-07-13 19:42:04 +02:00
Florian Kistner ce39b75cc8 Don't apply copyright notice to Kotlin Ultimate
* Previous attempt apparently no longer effective
2020-07-13 19:37:38 +02:00
Ilya Goncharov bbb3032e1c [Gradle, JS] Rename package-candidate.json to pre-package.json
^KT-39515 fixed
2020-07-13 19:32:29 +03:00
Ilya Goncharov 6a0315fe7a [Gradle, JS] force write package json in all cases
^KT-39515 fixed
2020-07-13 19:32:29 +03:00
Ilya Goncharov b4a774e821 [Gradle, JS] Use package.json candidate
^KT-39515 fixed
2020-07-13 19:32:29 +03:00
Ilya Goncharov 8586d5e206 [Gradle, JS] Small refactoring of yarn imported
^KT-39515 fixed
2020-07-13 19:32:28 +03:00
Konstantin Tskhovrebov cfd91023be Add native targets check to "isAllowCommonizer" method.
#KT-40164 Fixed.
2020-07-13 19:31:08 +03:00
Ilya Goncharov 797449f7e4 [Gradle, JS] Add TC client on TC output handler for browser run task
^KT-40178 fixed
2020-07-13 19:25:04 +03:00
Nikolay Krasko 943d012875 Fix comparison for SdkAndMockLibraryProjectDescriptor
There's no known problems connected with this change, but wrong
comparison might cause tests flakiness.

`allowKotlinPackage` and `classpath` fields were not included.
2020-07-13 17:58:04 +03:00