Commit Graph

45134 Commits

Author SHA1 Message Date
Alexander Podkhalyuzin 7d72fe07bb Fixed broken exception reporter 2018-03-21 12:25:32 +03:00
Mikhail Glukhikh b739db3c35 Fix parameter handling in "Move suspicious reference into parentheses"
Related to KT-21743
2018-03-21 09:53:38 +03:00
Toshiaki Kameyama fbd06dc74f Fix "move suspicious reference into parentheses" for functional types
So #KT-21743 Fixed
2018-03-21 09:30:17 +03:00
Toshiaki Kameyama 3fbf85dc37 Add inspection to highlight unnecessary explicit companion references
So #KT-22971 Fixed
2018-03-21 09:15:48 +03:00
Zalim Bashorov 4c5913f5a3 Regenerate tests 2018-03-20 22:44:30 +03:00
Zalim Bashorov 68457a55a8 [JS IR BE] support more constructions:
* generate declaration for top level properties
* basic support for calls
* break
* continue
* throw
* generate declaration for local vals and vars
2018-03-20 22:44:29 +03:00
Zalim Bashorov 560e35174b Minor: renames
IrElementToJsNodeTransformer -> BaseIrElementToJsNodeTransformer
IrFileTransformer -> IrFileToJsTransformer
IrModuleTransformer -> IrModuleToJsTransformer
2018-03-20 22:44:29 +03:00
Zalim Bashorov 87ee373205 Few improvements in test infrastructure:
* add the way to specify another compatible target for target backend.
  It's used to generate a test for X_IR backend even when in a test data
  is explicitly written a target: "// TARGET_BACKEND: X".
* Add the ability to run tests "ignored" with the "IGNORE_BACKEND" directive
  as regular tests, i.e. w/o catching exceptions.
* Print stack trace of caught exception inside tests "ignored"
  with the "IGNORE_BACKEND" directive.
2018-03-20 22:44:28 +03:00
Zalim Bashorov f899394126 Regenerate tests 2018-03-20 22:44:28 +03:00
Zalim Bashorov e0a070ff35 [JS IR BE] basic compiler 2018-03-20 22:44:27 +03:00
Zalim Bashorov 4404c6dd2c Run JS box tests for JS IR BE 2018-03-20 22:44:26 +03:00
Zalim Bashorov bef7b5389b Create ir/backend.js module with dummy compiler 2018-03-20 22:44:26 +03:00
Zalim Bashorov f820b3eadd Fix exception from PathManager.getHomePath with message "Could not find installation home path" 2018-03-20 22:44:25 +03:00
Zalim Bashorov 44d5d0da7e Rid of most of the usage of JsConfig in TopDownAnalyzerFacadeForJS 2018-03-20 22:44:25 +03:00
Vyacheslav Gerasimov 66eaa34bdb Build: Put local repositories to the top of repositories block 2018-03-20 20:57:13 +03:00
Vyacheslav Gerasimov 40a765819a Remove unused versions.intellij-plugin property 2018-03-20 20:44:20 +03:00
Vyacheslav Gerasimov f55d137790 Upgrade shadow plugin to 2.0.2
Fixes warning 'Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.'
2018-03-20 20:44:20 +03:00
Toshiaki Kameyama 9d6b36c249 KT-20282 'Move statement up' works incorrectly for statement after 'finally' block if 'try' block contains closure 2018-03-20 20:39:17 +03:00
Alexey Belkov d3b1b7a5be Minor: fix assertion 2018-03-20 20:39:17 +03:00
Yan Zhulanow 793a05106c Minor: Remove old 'buildLexer.xml' path from ant.xml 2018-03-20 16:22:52 +03:00
Denis Zharkov d8538db719 Avoid retaining whole KotlinClassHeader in IDEKotlinBinaryClassCache
Before this change there was a retention chain
VirtualFile -> KotlinBinaryData -> KotlinBinaryHeaderData -> KotlinClassHeader

The latter one contains all binary metadata (a lot of String[])
while only a small part of it is used.

The used parts are moved straight to KotlinBinaryClassHeaderData
in this change.

 #KT-19484 Fixed
2018-03-20 10:46:13 +03:00
Ilya Chernikov dca7323627 [minor] fix asm sources connection 2018-03-19 17:17:10 +01:00
Alexey Tsvetkov 6ab96c1d7d Set up idea.home.path in :incremental-compilation-impl
To avoid warnings in stderr
2018-03-19 18:04:33 +03:00
Alexey Tsvetkov 2584143e92 Report correct source to output mapping for kjsm files
Now IC can correctly remove kjsm files when source files are changed
2018-03-19 18:04:33 +03:00
Alexey Tsvetkov ea09f4caf6 Remove all kjsm files before writing new ones 2018-03-19 18:04:33 +03:00
Alexey Tsvetkov a3feb77193 Compare diverged .meta.js files in a human readable way 2018-03-19 18:04:33 +03:00
Alexey Tsvetkov 1cd2abf76f Fix comparing directories after IC test
A directory-after-rebuild should correspond to expectedDir parameter,
a directory-after-IC should correspond to actualDir parameter.
Also we should not forgive extra directories.
2018-03-19 18:04:33 +03:00
Alexey Tsvetkov d95abf2234 Generate meta info in JS IC tests 2018-03-19 18:04:33 +03:00
Alexey Tsvetkov 1d87aaf3d6 Avoid serializing JS metadata twice per compilation 2018-03-19 18:04:33 +03:00
Alexey Tsvetkov ebb774b0ee Sort package fragments by fq-name for JS serialization 2018-03-19 18:04:33 +03:00
Alexey Tsvetkov 1fd0e5e50c Optimize serializing JS metadata
This makes JS IC tests twice as fast
2018-03-19 18:04:33 +03:00
Alexey Tsvetkov 89275410a6 Avoid reading JS libraries twice per compilation 2018-03-19 18:04:33 +03:00
Alexey Tsvetkov ba60ca468c Improve JS inliner performance 2018-03-19 18:04:32 +03:00
Ilya Chernikov 0e5c5af727 Add asm sources into idea sdk sources on the sdk preparation
restores navigation to asm sources in idea.
The asm sources could not be added separately, due to the gradle issue
https://issues.gradle.org/browse/GRADLE-3210
2018-03-19 15:47:19 +01:00
Alexey Tsvetkov 30d0cc3a34 Ensure all output directories are cleared on IC rebuild
In some cases IC needs to perform a rebuild.
Before this change IC was not clearing output directories
besides destination dir for classes, so for example
kapt stubs were not cleared.

Stalled stubs might lead to compile errors.
For example:
1. foo/XGen.java is generated from annotated class foo/X (XGen also
references X).
2. foo/X is moved to bar/X and some other change forces IC to rebuild.
3. kapt generates bar/X stub, but foo/X stub
was not removed because stubs dir is not cleared.
4. kapt runs annotation processors, foo/XGen.java is generated from
foo/X stub, bar/XGen.java is generated from bar/X stub.
5. kotlinc rebuilds. Since destination dir is cleared properly,
only bar/X.class exists.
6. javac tries to compile foo/XGen and fails, because it
compiles against actual Kotlin classes, not stubs.

This commit fixes the issue by passing all output directories
of a task from Gradle to Kotlin IC.

   #KT-21735 fixed
2018-03-19 17:39:47 +03:00
Alexey Tsvetkov afce075dc8 Fix unresolved references in kotlin-gradle-plugin in Idea 2018-03-19 17:39:47 +03:00
Ilya Chernikov d6792f5f52 Implement support for additional compiler arguments for scripts in IDE
fixes #KT-19120
2018-03-19 11:45:10 +01:00
Ilya Chernikov 643e81f0ae Refactor language feature settings processing for exposing it outside of the CLI compiler 2018-03-19 11:45:09 +01:00
Natalia Selezneva 58edab37c1 Add test for fatal severity in scripts 2018-03-19 09:41:38 +03:00
Natalia Selezneva f957b3072b Add FATAL severity to ScriptExternalHighlightingPass 2018-03-17 00:28:34 +03:00
Natalia Selezneva dcea9d0cd5 Add FATAL severity to script dependencies resolve result 2018-03-17 00:23:57 +03:00
Natalia Selezneva 82481b48c4 Restore old package for ScriptTemplatesProvider.
Note that this is EP used in another plugins (ex. LivePlugin https://plugins.jetbrains.com/plugin/7282-liveplugin)
2018-03-17 00:21:32 +03:00
Natalia Selezneva 1f75eaed9a Don't highlight gradle scripts during gradle import.
Show warning on the top panel for these files
2018-03-17 00:21:25 +03:00
Natalia Selezneva 5f1118e820 Don't highlight scripts if resolver returns Failure.
Note that we don't highlight script when ScriptDependenciesFileAttribute is not set.
2018-03-17 00:21:17 +03:00
Natalia Selezneva 4b4acfee2c Scripts: display errors from external resolver in panel if text range is empty 2018-03-17 00:21:10 +03:00
Natalia Selezneva 26a4b67fa3 Introduce default ScriptTemplate for Gradle scripts
^KT-23228 Fixed
2018-03-17 00:21:02 +03:00
Natalia Selezneva 9f02664351 Minor: reformat 2018-03-17 00:20:55 +03:00
Vyacheslav Gerasimov 042873fa2c Build: add maven.repository.mirror property
May be used to add additional repository to all projects

(cherry picked from commit d8407b9)
2018-03-16 20:07:31 +03:00
Nikolay Krasko 79d9ea6716 Check module is from given set of modules before passing it to callbacks
`module` variable is fetched from `moduleInfoByDescriptor`, and this map
is filled in `createModuleDescriptor`, witch is called in
`doGetDescriptorForModule` only for modules from the given set.
2018-03-16 18:19:52 +03:00
Nikolay Krasko 7f501e3a78 Minor: document fields usages in ResolverForProjectImpl 2018-03-16 18:03:21 +03:00