Commit Graph

59462 Commits

Author SHA1 Message Date
Denis Zharkov b5ef063b0f FIR: Cache functions in use-site member scope 2019-11-27 11:20:52 +03:00
Denis Zharkov f659dc0bea FIR: Add synthetic values/valueOf methods to Java classes 2019-11-27 11:20:52 +03:00
Denis Zharkov 256f5ca0a1 FIR: Support inherited default parameters 2019-11-27 11:20:52 +03:00
Natalia Selezneva c9cb4dff52 Scripting: introduce ide-specific comparision of script compilation configurations (KT-34626)
Do not take into account fields that doesn't affect IDE
Also it will threat configurations from old and new scripting API as similar
FIt will make sense for script dependencies loaded using Gradle TAPI (new Scripting API) and Old Scripting API
^KT-34626
2019-11-27 11:08:45 +03:00
Natalia Selezneva 07b6dadbf0 Scripting: move additional classpath to the end of script classpath (KT-34626)
Do not add duplicated entries
Original script dependencies should go first
2019-11-27 11:08:44 +03:00
Natalia Selezneva 72e99b5863 Scripting: avoid just in case configuration requests to Gradle (KT-34442)
Listen to changes in files that may affect gradle configuration
Remove configuration request if none of such file was changed since last request
^KT-34442 Fixed
2019-11-27 11:08:44 +03:00
Natalia Selezneva f27e13035a Minor: introduce helper method to check registry option 2019-11-27 11:08:44 +03:00
Natalia Selezneva 7ade2ec576 Scripting: configurations from gradle import should be always taken into account (KT-34442)
Do not rely on registry option
^KT-34442
2019-11-27 11:08:44 +03:00
Natalia Selezneva 2f1915d85e Scripting: check that kotlin dsl models are provided during import as soon as possible 2019-11-27 11:08:44 +03:00
Dmitry Gridin 249789d6eb Formatter: add test for enum entry with comment
Relates to #KT-15980
2019-11-27 15:01:44 +07:00
Roman Artemev 97c8b2074e [JS] Set correct EXPECTED_REACHABLE_NODES 2019-11-27 00:06:42 +03:00
Igor Yakovlev 12f29bacab Exclude checking for unimplemented method for binary origin classes
Fixed #KT-34971
2019-11-26 21:13:10 +03:00
Mads Ager 8d5e5210a6 JVM_IR: Copy annotations to suspend function views. 2019-11-26 21:00:50 +03:00
Nicolay Mitropolsky 3d1061ee3c Uast: KotlinUMethodWithFakeLightDelegate 183-related fixes 2019-11-26 19:42:30 +03:00
Nicolay Mitropolsky c5fb51bd85 191: Uast: KotlinUMethod compilation fix 2019-11-26 19:42:29 +03:00
Leonid Startsev 19c28c55c5 Allow serialization plugin to work with inline types which are primitives (e.g. Char in JS IR) 2019-11-26 19:34:49 +03:00
Leonid Startsev ed786c4daf Enable compiler plugins in JS IR backend (and WASM too, since they use same loadIr function) 2019-11-26 19:34:48 +03:00
Jiaxiang Chen 0441e484a6 PSI2IR: For implicit function return, use expression's end offset as start offset of the IrReturn to generarate correct line number. 2019-11-26 17:59:28 +03:00
Jiaxiang Chen e49431a12c Debug information test: make stepping information more readable. 2019-11-26 17:59:28 +03:00
Jiaxiang Chen 331b085b2f JVM_IR: Fix line number for catch clause. 2019-11-26 17:59:28 +03:00
Jiaxiang Chen 3ea878b1c6 JVM_IR: Fix line number for varible initializer 2019-11-26 17:59:28 +03:00
Natalia Selezneva 8bb9c572ac Move inProgress lock at the onFinish of background task (KT-34688)
Setting inProgress to false inside run method can lead to multiple notifications because of delay between run method end and progress hide
^KT-34688 Fixed
2019-11-26 16:35:59 +03:00
Ilya Goncharov ad09492eb0 [Gradle, JS] Migrate on only name-version npm dependencies
#KT-32179 fixed
2019-11-26 16:05:17 +03:00
Ilya Goncharov 95b56e10b4 [Gradle, JS] Activate root npm dependency declaration for multiplatform 2019-11-26 16:04:37 +03:00
Ilya Goncharov 5397023f71 [Gradle, JS] Add Groovy Closure support 2019-11-26 16:04:37 +03:00
Ilya Goncharov 028c73d959 [Gradle, JS] Add compatible operators for npm dependencies 2019-11-26 16:04:37 +03:00
Ilya Goncharov 26cd392a9a [Gradle, JS] First steps for npm dependencies in root 2019-11-26 16:04:37 +03:00
Ilya Goncharov f73fc5199b [Gradle, JS] Mute testWeb false positive test 2019-11-26 16:03:26 +03:00
Ilya Goncharov be5b8c1bdb [Gradle, JS] Mute false positive test for MPP JS-JVM 2019-11-26 16:03:26 +03:00
Dmitry Gridin b40a888f1d Formatter: fix line break between declarations with annotations
#KT-35093 Fixed
#KT-35106 Fixed
2019-11-26 19:40:51 +07:00
Dmitry Gridin bfd539d5d1 Formatter: fix line break between declarations with comment
#KT-12490 Fixed
#KT-35088 Fixed
2019-11-26 19:40:51 +07:00
Dmitry Gridin b6b755506c Formatter: support Chop down if long for Chained method calls
#KT-23929 Fixed
#KT-33553 Fixed
2019-11-26 19:40:51 +07:00
Dmitry Gridin 351fef5628 DoubleBangToIfIntention: fix invalid psi tree 2019-11-26 19:40:50 +07:00
Svyatoslav Kuzmich f48ad25626 Advance bootstrap to 1.3.70-dev-1806
Due to updated K/JS klib ABI

(cherry picked from commit bffbe89f53)
2019-11-26 15:39:28 +03:00
Nikolay Krasko 8185c452fe Ignore jarRepositories.xml 2019-11-26 15:39:28 +03:00
Nikolay Krasko 13b0054e0a Fix compilation for service messages tests in 193 branch 2019-11-26 15:39:28 +03:00
Nikolay Krasko 89f26cc89d Minor: Make diff function for AbstractKotlinFoldingTest
~true~ and ~false~ cases left unresolved
2019-11-26 15:39:27 +03:00
Nikolay Krasko 5d6333f0f4 193: Better services registration for parser tests 2019-11-26 15:39:27 +03:00
Leonid Startsev 3d2800f99b Move out symbols that do not depend on a BackendContext to a separate BuiltinSymbolsBase class.
The goal was to be able to use such symbols before BackendContext is even created – in psi2ir postprocessing step (i.e., IR compiler plugins).

Remove old code from serialization ir plugin.
2019-11-26 15:26:35 +03:00
Leonid Startsev 3e18350a1f Rewrite IR plugin infrastructure (and serialization plugin) so it won't emit LazyIR.
LazyIR was emitted because plugin was not able to declare symbols, only to reference them.
Moreover, declarations added by frontend plugin were also unbound symbols produced by psi2ir,
and declaration stub generator was stubbing them with LazyIR – therefore access to global symbol table is not enough for plugins. IrProvider won't help here, because some functions produced by plugin have circular dependencies.

By moving compiler plugins step between psi2ir and declaration stub generator, both problems are resolved
– unbound symbols produced by psi2ir and compiler plugins are declared where they would be declared if this was a user code,
and only unbound symbols left are external dependencies, which is a correct input for lazy ir.
2019-11-26 15:26:28 +03:00
Nicolay Mitropolsky e4d0d450ab Uast: keeping annotations from sources in non-light-methods backed UMethods (KT-27806) 2019-11-26 15:13:40 +03:00
Nicolay Mitropolsky 833571d8b2 Uast: tests for suspend and DeprecationLevel.HIDDEN functions appears in Uast tree (KT-27806, KT-32031) 2019-11-26 15:13:40 +03:00
Nicolay Mitropolsky 2772659ed2 Uast: Uast produces reified methods on his own because light-classes doesn't (KT-34316) 2019-11-26 15:13:40 +03:00
Nicolay Mitropolsky 9c18df61ca Uast: KotlinUMethod and KotlinUAnnotationMethod are separated (KT-30489) 2019-11-26 15:13:40 +03:00
Anton Bannykh 9fec2c78d1 JS IR: apply forLoopsLowering
Replaced createTemporaryVariable usages with createTmpVariables.
The latter doesn't rely on KotlinType's. Using KotlinType with
JS_IR backend causes runtime excpetions, as some expected descriptor
API is not implemented, because it avoids descriptors as much as
possible.
2019-11-26 15:08:10 +03:00
Jiaxiang Chen 0ea407fef9 debug information test: handle vm resume correctly. 2019-11-26 14:52:58 +03:00
Toshiaki Kameyama 251899c31a Fix bad indentation when copy-paste to trimIndent()
#KT-33888 Fixed
2019-11-26 18:00:38 +07:00
Mikhail Glukhikh 178dbd3c5d Remove hacky re-initialization of PsiSubstitutor.KEY (branch 193)
After IDEA commit
https://github.com/JetBrains/intellij-community/commit/8b0af117241a074f5681fa93be74c6f1812497ba#diff-9b39aafa0a7b8d4f089100f3968931d0
this re-initialization is no more necessary. Moreover, it's harmful,
because this KEY is used as a map key in IDEA code,
and we cannot find information stored by this key.
This was a hidden reason of FIR / IR test failures in branch 193.

After this commit, FIR / IR tests in branch 193 should be fixed
2019-11-26 13:13:48 +03:00
Anton Bannykh 81699299f5 JS_IR: DCE
Could be enabled by toggling `-Xir-dce`

Box test output in js/js.translator/testData/out-min
2019-11-26 12:20:39 +03:00
Roman Golyshev faf4c05fc8 KT-34644 Give return keyword more priority in completion where appropriate
- See `returnExpressionItems::returnIsProbableInPosition` to get an idea where return is supposed to be more appropriate
  - End of the block (except for top level block of unit function or cycle) or as single expression in if or when
  - Right side of the elvis operator (which is not already in return)
- Add additional `probable_keyword` weigher to signalize about probable keyword (for now it is only for `return`)
- ^KT-34644 Fixed
2019-11-26 11:56:32 +03:00