Commit Graph

55982 Commits

Author SHA1 Message Date
Jeffrey van Gogh a9c8fd903b reduce calls to Object.hashCode originating from LabelNormailizationMethodTransformer
Building on the work in #2403, shaves 1% of compilation time on kotlinx.serialization
by using SmartIdentityTable instead of hashMap in LabelNormailizationMethodTransformer.

Metrics on the prior hashMap use in this code:

| What      | Count |
| --------- | ----- |
| instances | 21530 |
| min       | 0     |
| max       | 174   |
| mean      | 4     |
| stddev    | 8.24  |
| median    | 4     |
| 90p       | 8     |
| 95p       | 15    |
2019-07-03 19:25:57 +02:00
Alexander Udalov 361c468c33 IR: move type utilities from IrTypeUtils.kt to irTypePredicates.kt
Multiple IrType extensions were incorrectly calling isNameInPackage
which actually checked if the name of the type's classifier _starts_
with the given string, not equals it. Move them to irTypePredicates,
which seems a more natural place for these extensions anyway. Move
isKClassArray to JVM backend utilities, since this is JVM-specific
behavior at the moment. Fix minor warnings/inspections
2019-07-03 19:10:03 +02:00
Alexey Tsvetkov 7c6f48df39 Revert "Set sourceCompatibility and targetCompatibility for JavaCompile tasks"
This reverts commit 290aded9
2019-07-03 12:47:36 +03:00
Alexey Tsvetkov 2a3bb2968e Revert "Call configureJvmProject once per project in afterEvaluate"
This reverts commit 33de71f7
2019-07-03 12:47:23 +03:00
Alexey Tsvetkov ab6174defd Revert "Check JDK env vars once during configuration when not syncing"
This reverts commit 48b86bba
2019-07-03 12:47:10 +03:00
Alexey Tsvetkov aa7aff84fc Revert "Do not fork java compile tasks when current JDK can be used"
This reverts commit f2021b58
2019-07-03 12:46:50 +03:00
Alexey Tsvetkov 9340bffd02 Revert "Add ext.jvmTarget and ext.javaHome to core:descriptors.runtime"
This reverts commit 35dea296fa.
2019-07-03 12:40:02 +03:00
Andrey Uskov 1a290621b0 Minor. Update multiplatform kotlin plugin version in HMPP tests 2019-07-03 11:49:04 +03:00
Andrey Uskov e079615cdf Add possibility to edit target platform for non-HMPP projects in order to keep ability to edit target platform for IDEA-based projects 2019-07-02 22:46:48 +03:00
Andrey Uskov efb0e692ae Minor. Reformat KotlinFacetEditorGeneralTab 2019-07-02 22:46:47 +03:00
Andrey Uskov 9fc60be9d8 Fix serialization of facet settings in order to read properly
settings of native platforms
2019-07-02 22:46:47 +03:00
Andrey Uskov 404ce1a8c1 Facet serialization changed in order to keep compatibility with previous
versions of Kotlin plugin
2019-07-02 22:46:46 +03:00
Andrey Uskov 87e75bd4cc HMPP: fix importing target platforms for case when JVM targets are involved 2019-07-02 22:46:45 +03:00
Andrey Uskov 8445e3a2a4 HMPP: add importing tests 2019-07-02 22:46:45 +03:00
Andrey Uskov 8280c647af HMPP: Migration of source root types for middle HMPP source sets fixed 2019-07-02 22:41:49 +03:00
Andrey Uskov 90187c959e Add test for 'isHMPP' flag 2019-07-02 22:41:02 +03:00
Andrey Uskov e791b9d3f7 HMPP: import flag indicating that the project uses HMPP feature 2019-07-02 22:40:19 +03:00
Alexey Tsvetkov 35dea296fa Add ext.jvmTarget and ext.javaHome to core:descriptors.runtime
After the following changes:
* 290aded94f
* 33de71f792

default values of jvmTarget and javaHome started to overwrite properties
set through compileJava in core:descriptors.runtime
2019-07-02 17:37:59 +03:00
Vyacheslav Gerasimov d3f9d0866a Build: Improve cache redirector usage in buildSrc settings.gradle 2019-07-02 17:30:06 +03:00
Nikolay Krasko 8b05d4df46 More NoClassDefFoundError fixes in tests after 192 update 2019-07-02 16:45:42 +03:00
Ilya Matveev ba64600ee5 Gradle: Make K/N properties uniform with other Kotlin properties
Names of project properties used by K/N (e.g.
org.jetbrains.kotlin.native.home) are not uniform
with other kotlin properties (e.g. kotlin.coroutines).

This patch renames these properties by dropping the
'org.jetbrains' prefix and adds corresponding
deprecation warnings.

Issue #KT-32302 Fixed
2019-07-02 19:46:50 +07:00
Ilya Matveev fd1fc7d28a Gradle: Support K/N restricted distribution
Restricted distribution is a K/N distribution built for MacOS only
alongside with a regular distribution and containing no platform
libraries for MacOS. This commit allows switching between
distribution types using a special project property.

Issue #KT-32301 Fixed
2019-07-02 19:46:49 +07:00
Ilya Matveev 35d7fff035 Gradle: Fix input annotation for the Webpack task 2019-07-02 19:46:48 +07:00
Alexey Tsvetkov f2021b580e Do not fork java compile tasks when current JDK can be used
I see the following improvements:
* `clean dist --parallel` is ~10% faster (from 3:40 to 3:20)
* incremental `dist --parallel` is ~50% faster
(adding public method to org.jetbrains.kotlin.utils.SmartList)
2019-07-02 15:18:19 +03:00
Alexey Tsvetkov 48b86bba69 Check JDK env vars once during configuration when not syncing
Previous code (callback in `beforeTask`) was added to allow
opening project without setting up all env. variables.
This change simplifies the code and avoids a callback,
while keeping the ability to open the project without
setting up all variables by checking `kotlinBuildProperties.isInIdeaSync`
2019-07-02 15:18:19 +03:00
Alexey Tsvetkov 33de71f792 Call configureJvmProject once per project in afterEvaluate
Calling it twice does not seem to make sense now
2019-07-02 15:18:19 +03:00
Alexey Tsvetkov 290aded94f Set sourceCompatibility and targetCompatibility for JavaCompile tasks
Currently running build with JAVA_HOME pointing to
any JDK != 1.8 results in errors like

    #KT-30382 Fixed
2019-07-02 15:18:19 +03:00
Anton Bannykh f8035096ea JS: lock tape version to avoid kotlin.test + tape integration test failure 2019-07-02 15:14:07 +03:00
Mikhail Zarechenskiy 60ac2056bd Update diagnostic message in test data
Follow-up of 42a5c488: function `unCapture` is used to render
 diagnostic messages, therefore we have this change now
2019-07-02 14:02:07 +03:00
Nikolay Krasko a67c3ef855 Update 183 branch to 183.6156.11 2019-07-02 14:00:26 +03:00
Nikolay Krasko 2d85d18a74 Minor: add more exceptions to project dictionary 2019-07-02 14:00:25 +03:00
Nikolay Krasko 28a45909a0 Fix compatibility with 192 branch (KT-32364) 2019-07-02 14:00:24 +03:00
Nikolay Krasko ba2ca5ae3c Fallback to simple oocb when per-language trackers are disabled (KT-32364) 2019-07-02 14:00:11 +03:00
Nikolay Krasko f605d4e73b Revise per module out-of-code-block (KT-32364) 2019-07-02 13:59:35 +03:00
Nikolay Krasko 73eea6f4b6 Minor: rename file before refactoring 2019-07-02 13:59:21 +03:00
Nikolay Krasko 4f678c8289 Create project service with Kotlin trackers (KT-32364) 2019-07-02 13:59:19 +03:00
Nikolay Krasko 263d8eea16 Use Kotlin oocb instead of platform oocb tracker (KT-32364) 2019-07-02 13:59:06 +03:00
Nikolay Krasko 557ea54a9f Introduce Kotlin specific out-of-code-block tracker (KT-32364) 2019-07-02 13:59:04 +03:00
Nikolay Krasko 12bb1a5bd1 Make invalidateOnOOCB explicit in ResolverForProjectImpl and remove usage in tests 2019-07-02 13:45:35 +03:00
Nikolay Krasko b32b362810 Extract KotlinModuleModificationTracker to separate file 2019-07-02 13:45:35 +03:00
Nikolay Krasko 26c7eddb03 Move trackers to caches.trackers package 2019-07-02 13:45:35 +03:00
Nikolay Krasko 2ddcd9f0af Minor: cleanup and reformat KotlinCodeBlockModificationListener.kt 2019-07-02 13:45:35 +03:00
Vladimir Dolzhenko 2029d16062 Add add-imports performance tests
Add missed auto generated perf tests
2019-07-02 09:58:04 +03:00
Dmitry Gridin 57a732c247 Minor: fixes after review 2019-07-02 11:54:38 +07:00
Dmitry Gridin 9316f45a5c Optimize Imports: improve tooltip information
#KT-21374 Fixed
2019-07-02 11:54:38 +07:00
Dmitry Gridin 074829bcea Import: IDE should import class from root package
#KT-21422 Fixed
2019-07-02 11:54:38 +07:00
Dmitry Gridin 148eed2a12 ShortenReferences: fix false negative for object call chain
#KT-32320 Fixed
2019-07-02 11:54:38 +07:00
Dmitry Gridin 33914a3a94 ImportMemberIntention: make more flexible based on caret position
#KT-31924 Fixed
2019-07-02 11:54:38 +07:00
Dmitriy Dolovov 6f2f60869c Minor: Don't create unnecessary PluginId instances
(to avoid PluginId cache pollution)
2019-07-02 10:49:43 +07:00
Anton Bannykh 208c8f9339 JS: fix bootstrap 2019-07-01 20:22:05 +03:00