Commit Graph

40339 Commits

Author SHA1 Message Date
Dmitry Jemerov 63c6ba7e31 Add missing read action 2017-07-24 19:53:52 +02:00
Dmitry Jemerov f370d74609 Correctly detect stdlib in Gradle projects; move detection out of EDT
To detect whether a module has an stdlib in its dependencies, look at
source root modules and not at base module.
2017-07-24 19:53:52 +02:00
Dmitry Jemerov 0971af803c Check for non-configured modules in background thread
#KT-17835 Fixed
2017-07-24 19:53:52 +02:00
Dmitry Jemerov e1f7c91728 Use Kotlin/JVM and Kotlin/JS terms in the UI 2017-07-24 19:53:52 +02:00
Dmitry Jemerov 0f2992ddec JavaFrameworkType: J2K 2017-07-24 19:53:52 +02:00
Dmitry Jemerov 079f7690a8 JavaFrameworkType: rename to .kt 2017-07-24 19:53:52 +02:00
Dmitry Jemerov 6dbaec0cc6 Use distinct icon for Kotlin/JS module and libraries 2017-07-24 19:53:52 +02:00
Dmitry Jemerov 6eff8c7b4b JSFrameworkType: J2K 2017-07-24 19:53:52 +02:00
Dmitry Jemerov 57a501ebce JSFrameworkType: rename to .kt 2017-07-24 19:53:52 +02:00
Pavel V. Talanov 8e3f8c4c14 Fix calling GSS.union for empty array
EA-104046
2017-07-24 18:56:19 +03:00
Pavel V. Talanov d5ca46157a Refactor: Make DependenciesCache and ScriptDependenciesUpdater services
Rename: DependenciesCache -> ScriptDependenciesCache
    (makes sense to make name more specific since it is a service now)
2017-07-24 18:56:16 +03:00
Pavel V. Talanov f1811e7f0e Minor, more precise error message 2017-07-24 18:56:14 +03:00
Kirill Rakhman 4c7ddbe397 "Use destructuring declaration" should not be available for top-level and class properties (#1205)
Fixes #KT-19167
2017-07-24 14:33:46 +02:00
Dmitry Petrov f558b4238c Use counter loop in intrinsic array constructors
#KT-19149 Fixed Target versions 1.1.5
2017-07-24 10:17:30 +03:00
Dmitry Petrov c9d9a8220d Minor: use IntrinsicMethods.INTRINSICS_CLASS_NAME where appropriate 2017-07-24 10:15:27 +03:00
Dmitry Petrov fda89e9c72 Add test for KT-19128
It looks like the problem was caused by incorrect merging of
StrictBasicValues and was fixed by commit
904c7f9c64.

 #KT-19128 Fixed
2017-07-24 10:15:27 +03:00
Dmitry Petrov d0c8af5621 Keep track of second receiver type in CallReceiver
#KT-17725 Fixed Target versions 1.1.5
2017-07-24 10:15:27 +03:00
Dmitry Petrov 3f34a97880 Minor: extract CallReceiver to a top-level class, move code around 2017-07-24 10:15:27 +03:00
Simon Ogorodnik f079ed949c KT-19015: Enable multiarg completion for non-first argument
#KT-19015 fixed
2017-07-24 00:00:11 +03:00
Ilya Gorbunov ec5c15f190 test-dagger-maven-example: kotlin version comes as a parameter 2017-07-21 20:15:34 +03:00
Ilya Gorbunov d8ea3ddcc8 Cleanup poms of projects migrated to gradle 2017-07-21 20:15:34 +03:00
Alexander Udalov f69e96b240 Fix IAE at protoDifferenceUtils.kt on new metadata field
The class_local_variable/package_local_variable JVM extensions were
added in 616d575fb6

 #KT-19155 Fixed
2017-07-21 20:11:43 +03:00
Nikolay Krasko b6bd3e15c5 Fix outdated highlighting for Kotlin injected fragments (KT-18842)
Do not use cached value for injection in non-dispatch threads and throw
PCE if value isn't ready. Otherwise outdated value may be stored in
highlighting.

 #KT-18842 Fixed
2017-07-21 19:57:21 +03:00
Alexander Udalov 7f8e7c66f5 Suppress FNFE in .kotlin_metadata index
Similarly to VirtualFileKotlinClass.create.

This could happen for example when some files are removed from
kotlin-stdlib-common
2017-07-21 19:03:15 +03:00
Alexander Udalov ebdf5aa223 Discriminate header classes in favor of non-header type aliases
In the test case, the problem was that Foo.a's type was resolved to the
_class A_, which was written to metadata on JVM instead of the class
AImpl with typealias A as an abbreviation. This metadata was incorrect
because there's no class A from the JVM compiler's point of view; that's
why the error "cannot access class A" was reported

 #KT-19151 Fixed
2017-07-21 19:03:15 +03:00
Mikhail Glukhikh 6ee94dae6f Code cleanup: KotlinSafeDeleteProcessor 2017-07-21 18:59:13 +03:00
Mikhail Glukhikh d05a525d8d Search for KtTypeAlias in safe delete processor
Related to KT-16046
2017-07-21 18:59:07 +03:00
Mikhail Glukhikh dd0cf8219e Add type aliases into UnusedSymbolInspection / safe delete
So #KT-16046 Fixed
2017-07-21 18:59:01 +03:00
Mikhail Glukhikh 951e8cd91a Code cleanup: unnecessary local variable applied 2017-07-21 18:58:48 +03:00
Mikhail Glukhikh 202fb19cf6 If-then to safe access: more correct receiver calculation
So #KT-18928 Fixed
2017-07-21 18:58:33 +03:00
Mikhail Glukhikh 31bb1cc0f9 Invoke back setting "show inline dialog for local variables"
So #KT-19130 Fixed
2017-07-21 18:58:27 +03:00
Kirill Rakhman a7084ceb9b Fix some type hints related issues (#1204)
* Type hints shouldn't appear for negative literals
Fixes #KT-18974

* Make type hints work for destructuring declarations
Fixes #KT-18444

* Hide type hints for generic constructor calls if type arguments are explicitly specified
Fixes #KT-19167
2017-07-21 16:31:46 +02:00
Nikolay Krasko f4038f7109 Fix slow typing because of counting injected fragments (KT-18842)
- cache result of kotlin injection on modification tracker
- never count injection in dispatch thread, use cached result instead
- compute injection with write action priority, reuse cache if unfinished

 #KT-18842 Fixed
2017-07-21 15:41:06 +03:00
Nikolay Krasko 436b637282 Refactoring: show using ProcessCancelException in method name 2017-07-21 15:41:06 +03:00
Nikolay Krasko fbe16f7b91 Refactoring: delete unused CachedValueProperty class 2017-07-21 15:41:06 +03:00
Mikhail Glukhikh 1cb6128f2f Minor: J2K test fix 2017-07-21 12:21:04 +03:00
Dmitry Petrov bf3e896464 Update 'this' extension receiver when there's a smart cast
If 'this' (implicit or explicit) was used as an extension receiver,
and the corresponding call required a smart-cast,
this information was effectively lost in "old" resolution & inference,
but is required by "old" JVM BE to generate proper CHECKCASTs.
2017-07-21 08:58:52 +03:00
Dmitry Petrov c9d54d7110 Generate proper error candidates for type aliases
#KT-17745 Fixed Target versions 1.1.5
2017-07-21 08:58:12 +03:00
Dmitry Petrov b4d8337ca5 Ignore test for 'primitive Char == object' in JS (KT-19081) 2017-07-21 08:52:29 +03:00
Dmitry Petrov 709a7e201f Simplify code for specialized BranchedValues 2017-07-21 08:52:29 +03:00
Dmitry Petrov e1a55e8dec Prefer compact bytecode for primitive/object comparisons with Boolean
'java.lang.Boolean#valueOf' doesn't allocate new objects
(it uses pre-allocated singletons for 'true' and 'false').
2017-07-21 08:52:29 +03:00
Dmitry Petrov 8e9c0294fe Do not box primitives for 'primitive == object'
NB user-defined 'equals' can violate contract for 'Object#equals', e.g.,
it can be asymmetric.
Thus we can't avoid boxing for 'object == primitive'.
2017-07-21 08:52:29 +03:00
Dmitry Petrov fa42f202fa Avoid boxing on 'primitive == boxed' when possible
Similar to 'boxed == primitive' case, different bytecode due to
evaluation order.
2017-07-21 08:52:29 +03:00
Dmitry Petrov e440de3494 Minor: GeneratePrimitiveVsObjectEqualityTestData 2017-07-21 08:52:29 +03:00
Dmitry Petrov 98ee83f4a3 Minor: move condition for boxed==primitive to corresponding isApplicable 2017-07-21 08:52:29 +03:00
Dmitry Petrov 4cba600268 Minor: some more evaluation order tests for 'boxed == primitive' 2017-07-21 08:52:29 +03:00
Dmitry Petrov 81609e4c6f Generate complex equality comparison only when RHS can have side effects
In "short" version, LHS is always evaluated before RHS,
and RHS may be not evaluated if LHS is null.
So, it makes sense to use "short" version in cases when RHS can't have
side effects (because of more compact bytecode and more opportunities
for code elimination).
2017-07-21 08:52:29 +03:00
Dmitry Petrov 8aacddb9f0 Avoid primitive boxing for 'boxed == primitive' if possible
This makes sense for non-floating-point primitive type
(boolean, char, byte, short, int, long):
floating-point types use specialized versions of 'areEqual'.
2017-07-21 08:52:29 +03:00
Dmitry Petrov 275c758da1 Cleanup and move code around in BranchedValue
- Cleanup inspections
- Move optimized boxed-vs-primitive comparisons to a separate file
2017-07-21 08:52:29 +03:00
Dmitry Petrov 051ac44759 Verify bytecode after mandatory transformations and after optimizations 2017-07-21 08:52:29 +03:00