Commit Graph

56470 Commits

Author SHA1 Message Date
Georgy Bronnikov 3729c4e770 JVM: simplify choice of wrapped receiver descriptors 2019-07-26 11:57:51 +03:00
Dmitry Gridin a10e57eaec JavaOutsideModuleDetector: should refresh notification after move
#KT-32967 Fixed
2019-07-26 10:33:54 +03:00
Dmitry Gridin 4c8d0acb5d CreateExpectFix: shouldn't suggest create expect property with lateinit or const modifier
#KT-32705 Fixed
2019-07-26 10:33:28 +03:00
Ilya Chernikov a858607fac Fix script classpath utility functions that use classpath filtering by "keys"
The problem was that only the first matching classpath entry were used.
The problem was reported by @lion7 on github (https://github.com/JetBrains/kotlin/commit/67ad3773de2b12f7e1d29e00151b997a4f6373ba#commitcomment-34443927)
2019-07-26 08:55:16 +02:00
Ilya Chernikov ec3ccf1ba8 Properly handle REPL snippets with exceptions ...
so the REPL remain operational after exception in one of the snippets:
- separately return script class and script instance on evaluation (
  because in case of an exception the class is valid, while the instance
  is not).
- store both the class and the instance in the history
- handle this data accordingly
2019-07-26 08:55:16 +02:00
Ilya Chernikov 288fdc0952 Add a handler for providing evaluation context for scripts
use it on refinement.
also some refactoring on context class and around
2019-07-26 08:55:16 +02:00
Ilya Chernikov 2a5c4a2409 Move caching to after all configuration refinements and ...
move compilation cache setting to the scripting host configuration
The cache implementation can now take into account all external
dependencies that may appear during refinement.
Also change initial refinement location accordingly and rearrange
caching interfaces to make it available in scripting plugin.
2019-07-26 08:55:16 +02:00
Ilya Chernikov e41bbe9328 Introducing transient properties in scripting API 2019-07-26 08:55:16 +02:00
Ilya Chernikov 5fe843d754 Refactor main-kts build scripts - fix red code in IDEA 2019-07-26 08:55:15 +02:00
Ilya Chernikov 42dde50b6b Implement base zip cache with tests...
plus some relevant fixes and refactorings
2019-07-26 08:55:15 +02:00
Ilya Chernikov c7eb9e9520 Move caching tests into a dedicated class
plus some tests refactorings
2019-07-26 08:55:15 +02:00
Ilya Chernikov ef23033936 Add net.jpountz and one.util.streamex to the list of shadowed packages
should fix problem with using REPL infrastructure with Apache Zeppelin
2019-07-26 08:55:15 +02:00
Ilya Chernikov cefd4a35c5 Fix and test evaluation of scripts with default configurations 2019-07-26 08:55:15 +02:00
Ilya Chernikov 961607673d [minor] Refactor properties collection builder:
add a helper to replace the value only if it is absent or default
rearrange some functions
2019-07-26 08:55:15 +02:00
Ilya Chernikov 0af52f2fa6 Implement composable refinement handlers...
for compilation and evaluation configurations.
Add utilities to apply refinements uniformly.
Also fix one invoke for list values - it was not consistent with
other builders
2019-07-26 08:55:14 +02:00
Ilya Chernikov 65e6d3b0ff [minor] Add a small diagnostics handling utility fun 2019-07-26 08:55:14 +02:00
Ilya Chernikov 0072f8c265 Improve JSR-223 engine diagnostics
also abstract invoke wrapper creation
2019-07-26 08:55:14 +02:00
Ilya Chernikov b68ab0d968 Add test on repl with implicit receiver 2019-07-26 08:55:14 +02:00
Ilya Chernikov a13d452cd8 Implement JSR223 host in the main-kts jar
also improve diagnostics on configuration instantiation
2019-07-26 08:55:14 +02:00
Ilya Chernikov 0108a76e99 Extract arguments calculation for base JSR223 engine into an argument 2019-07-26 08:55:13 +02:00
Ilya Chernikov e8fa139dc8 Move direct properties configuration code into public functions in scripting host jar 2019-07-26 08:55:13 +02:00
Andrey Uskov 89a53fe028 Safe get of registry key in KotlinAndroidGradleMPPModuleDataService 2019-07-26 09:33:56 +03:00
Andrey Uskov 5f2aca5856 Fix NewMultiplatformProjectImportingTest in bunch 183 2019-07-26 09:33:39 +03:00
Victor Petukhov e25b315319 Introduce -Xpolymorphic-signature compiler flag as more priority than -XXLanguage:+PolymorphicSignature 2019-07-26 09:01:25 +03:00
Victor Petukhov 944ee8fcd5 Introduce -Xinline-classes compiler flag as more priority than -XXLanguage:+InlineClasses 2019-07-26 09:01:25 +03:00
Mikhail Mazurkevich 45644c224e JPS: Add temporary non caching jps storage for 192
This storage available under separate flag. Temporary non caching storage
should be removed after Intellij SDK version update.
2019-07-26 04:57:05 +03:00
Andrey Uskov 584d441587 Fix import when android gradle plugin is involved in IDEA 183
All dependencies on MPP modules are added in KotlinAndroidGradleMPPModuleDataService
including transitive ones. Fixes KT-30510 in IDEA 183 and below
2019-07-26 01:18:29 +03:00
Andrey Uskov 91365d9fad Fix import library dependencies when transitive MPP are involved
Fix import dependencies of java modules on MPP modules when
project was not build before import. Unresolved jar dependencies
are not created any more on import of MPP project.
#KT-28822 Fixed
#KT-29757 Fixed
2019-07-26 01:17:55 +03:00
Andrey Uskov 0b8ad5c6c0 Fixed setting production-on-test flag if project was not build
Make importing production-on-test flag more accurate when
the project to be imported was not previously build
2019-07-26 01:16:56 +03:00
Andrey Uskov 17dec7b389 Add transitive test dependencies on MPP with jvmWithJava on import
Fixed case when production and test source sets depend on MPP module
with jvmWithJava involved and have dependency on the same jar artifact.
2019-07-26 01:16:17 +03:00
Andrey Uskov 86a26f0cca Add jvmWithJava IDE import test 2019-07-26 01:15:32 +03:00
Andrey Uskov 6c0469cee0 Fix importing transitive dependencies on MPP project
Fix importing dependencies of java projects on MPP projects
when external dependency is resolved into file collection dependency
2019-07-26 01:14:45 +03:00
Andrey Uskov 8592396a9a Fix combobox size in facet settings tab (KT-32784)
Size of the select platform combobox fixed in order to fit all elements
#KT-32784 Fixed
2019-07-26 01:14:12 +03:00
Andrey Uskov 9ce9b5945e Fix order of platforms in Facets (KT-32783)
#KT-32783 Fixed
2019-07-26 01:13:42 +03:00
ilgonmic b8400a16f0 Fix webpack dsl with closure
(cherry picked from commit 795e0eef200bb24b9cba06002b48737c01de02be)
2019-07-25 23:26:42 +03:00
ilgonmic deb6b7105a Remove duplicated source-map-loader configuring and cleanup kotlin webpack config writer
(cherry picked from commit 681eeaedfb359e85cf98e0e9a7239a0364a5d41c)
2019-07-25 23:26:41 +03:00
Vyacheslav Gerasimov 3b78ef9cb2 as36: Add bunches for AS 3.6 C6 based on 192 platform 2019-07-25 20:50:02 +03:00
Vyacheslav Gerasimov 5c6dedc623 Build: Add repo for prerelease Android Studio 2019-07-25 20:50:02 +03:00
Yan Zhulanow ccff347ffc Kapt: Attach generated Kotlin sources in 'compilation' mode (KT-32535) 2019-07-26 02:40:32 +09:00
Ivan Gavrilovic 1c63d3aa2f KT-32210: Handle long compiler plugin options
Some of the KAPT compiler plugin options were longer than 0xFFFF bytes in
UTF-8 encoding, causing UTFDataFormatException when serializing them. This
commit avoids that issue by encoding changed files and changed classpath types
one by one instead of joining them to a single string.
2019-07-26 02:40:32 +09:00
Alexey Tsvetkov 4b9a852745 Sort source to output mapping before writing to caches
#KT-32902 Fixed
2019-07-25 20:30:56 +03:00
Alexey Tsvetkov afa10cc125 Rewrite test of relocatable JPS IC caches
* Caches are compared as files now. It is a more robust approach
than comparing strings with dumped contents. E.g previous test
ignored differences in keys ordering, because dumping caches to string
was added for comparing caches after incremental and non-incremental builds,
which cannot be compared without sorting keys (see KT-32674).
* Calling setUp/tearDown twice within the same test instance was
relatively hacky and fragile. Also it complicated adding new test cases.
2019-07-25 20:30:56 +03:00
Alexey Tsvetkov 98aad3e00c Extract EnableICFixture 2019-07-25 20:30:56 +03:00
Alexey Tsvetkov a4c62d156f Make lookup storage addAll order independent
Lookup storage output files could differ for projects
with different absolute paths.
This happened because, paths for lookups were
relativized only before writing to the underlying storage.
Storing absolute paths in a hash table could
result in different order of adding files to the lookup storage.
This commit fixes the issue by sorting lookups and files in
LookupStorage#addAll

    #KT-32674 Fixed
2019-07-25 20:30:56 +03:00
Alexey Tsvetkov 57caca4b0e Improve exception message for directories comparison in tests
It was unclear what dirs were compared (e.g when rebuilding and
comparing caches dirs, it's not obvious which dir is "expected" and
which is "actual"). To improve this, compare resulting strings
with the placeholder for a root dir first. If the comparison fails,
then replace the placeholder with an actual directory and call
assertEquals.
2019-07-25 20:30:56 +03:00
Dmitry Gridin 6914a9dd3d KotlinFindUsagesHandler: fix read access (flaky tests) 2019-07-25 19:16:52 +03:00
Alexander Podkhalyuzin 66fdc148be Revert strong references for compiler only
#KT-32521 Fixed
2019-07-25 16:13:47 +03:00
Alexey Tsvetkov f3112f752d Inherit max metaspace size of client VM for Kotlin compile daemon
#KT-32521 In Progress
    #KT-32950 Fixed
2019-07-25 16:13:47 +03:00
Alexey Tsvetkov 5c99243c10 Substitute kotlin-reflect with kotlin-reflect-api in compile classpath
Currently Kotlin IC can only track changes in "default" jar files by
associating a history of ABI diffs with a source set's jar file.

kotlin-reflect is a non-default fat jar, which causes
non-inremental builds when it gets changed and included in
a compile classpath. To avoid this problem, kotlin-reflect-api
project was added. It is assumed that only kotlin-reflect-api
should be used for compilation.

However, Gradle is known to leak transitive runtime dependencies
to a compile classpath, i.e. when `:b` has a runtime dependency on `:a`,
and `:c` has a compile dependency on `:b`, `:c` also gets `:a`
in its compile classpath.

Before this change kotlin-reflect was leaked to compiler tests's
classpath through kotlin-scripting-compiler-impl.

To work around this issue, and to prevent similar issues from happening,
this change introduces a dependency substitution from kotlin-reflect
to kotlin-reflect-api in all compile classpath configurations.

        #KT-32954 Fixed
2019-07-25 16:09:32 +03:00
Alexey Tsvetkov 33b7745b17 Find only non-default shadow jars in findShadowJarsInClasspath diagnostic
We are interested only in shadow jars that might break the incremental compilation
2019-07-25 16:09:31 +03:00