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