Mikhail Glukhikh
a901de5112
KT-14084 related : replaceFirstReceiver now replaces ALL calls to safe calls if necessary
...
Fixes relevant "replace let" and "if to elvis" cases
2016-10-25 17:57:06 +03:00
Mikhail Glukhikh
2117b30b76
If expression to elvis now handles call chains #KT-14084 Fixed
2016-10-25 17:57:02 +03:00
Alexander Udalov
035d6156a7
Drop Cloneable in JS, synthesize it at compile-time on JVM
...
Use the same approach that is used for creating function type classes
(Function{0,1,...}) + add Cloneable to supertypes of Array and primitive arrays
#KT-5537 Fixed
2016-10-25 15:42:33 +03:00
Nikolay Krasko
cdabef51ed
Add nullability to receiver type
2016-10-25 13:30:38 +03:00
Nikolay Krasko
22999fe67d
Set hasValueArguments in KotlinAnnotationEntryStub to 'true' only if some arguments exist
...
Currently '()' is used for resolving ambiguity in parsing when annotating function types. This way a decompiled code
will need brackets, but compile code will have annotation without parameters. This commit will allow to make both stub-trees consistent.
Tested in ClsStubBuilderTestGenerated.testAnnotationsOnNullableTypes()
2016-10-25 13:30:37 +03:00
Nikolay Krasko
a344ad0644
Fix absence of annotation for function type in cls stubs and ignore @ExtensionFunctionType
2016-10-25 13:30:35 +03:00
Nikolay Krasko
d1dfcfaca1
Fix stub-psi mismatch exception on restoring annotation for nullable types
...
(cherry picked from commit 1aa37f11258dde289a9f7cb700294a038168fbdc)
Conflicts:
compiler/frontend/src/org/jetbrains/kotlin/psi/stubs/KotlinStubVersions.kt
idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/TypeClsStubBuilder.kt
2016-10-25 13:22:53 +03:00
Mikhail Glukhikh
e53940f4af
KT-8442 related: correct handling of erroneous destructuring references, fixes EA-90434
2016-10-25 13:13:15 +03:00
Valentin Kipyatkov
18f10860df
KT-14336 for to stdlib to takeWhile: propose conversion into takeWhile if break is located in else branch
...
#KT-14336 Fixed
2016-10-24 18:32:05 +03:00
Valentin Kipyatkov
5c8db294df
Fixed index variable case
2016-10-24 18:32:05 +03:00
Valentin Kipyatkov
e5fcfae969
KT-13998 Loop to call chain converter produces 'none' instead of 'all'
...
#KT-13998 Fixed
2016-10-24 18:32:04 +03:00
Valentin Kipyatkov
89099b93b1
Split or glue together checks for not null and is instance + more intelligent use of filter vs filterTo
...
#KT-14284 Fixed
#KT-14286 Fixed
#KT-14287 Fixed
#KT-14303 Fixed
2016-10-24 18:32:04 +03:00
Valentin Kipyatkov
53220b980e
More correct checking of forEach requiring asSequence()
2016-10-24 18:32:04 +03:00
Valentin Kipyatkov
a87ca8432e
KT-14341 for to stdlib to forEach: if the loop variable is not used in the last/innerest statement the conversion is not proposed
...
#KT-14341 Fixed
2016-10-24 18:32:03 +03:00
Valentin Kipyatkov
5ca7688b7c
Correct handling of explicit variable type
2016-10-24 18:32:03 +03:00
Valentin Kipyatkov
9326dfa048
Honor errors in code before when checking smart casts
2016-10-24 18:32:03 +03:00
Valentin Kipyatkov
eae23b548f
KT-14294 for to stdlib to firstOrNull/lastOrNull: intention is absent if there is additional var before for loop
...
#KT-14294 Fixed
2016-10-24 18:32:03 +03:00
Valentin Kipyatkov
a89ef54578
KT-14210 for loop to stdlib: max/min is not recognized if there is additional if
...
#KT-14210 Fixed
2016-10-24 18:32:02 +03:00
Valentin Kipyatkov
35ed689b9f
any() and other find operations to work with checks for not null and is instance
2016-10-24 18:32:02 +03:00
Valentin Kipyatkov
b28d016709
count() to merge with filterNotNull and filterIsInstance + changed test for KT-14191 to use sum()
2016-10-24 18:32:02 +03:00
Valentin Kipyatkov
afd25548a2
KT-14209 for loop to stdlib: sum is not recognized if before was check for type
...
#KT-14209 Fixed
2016-10-24 18:32:01 +03:00
Valentin Kipyatkov
f5d4b1dc8d
KT-14191 FormattingModelInconsistencyException Exception on applying intention Replace with count()
...
#KT-14191 Fixed
2016-10-24 18:32:01 +03:00
Nikolay Krasko
8865c0be34
Step into functions with local variable on first line under "Skip simple getters" (KT-14488)
...
(cherry picked from commit 9423d65)
#KT-14488 Fixed
2016-10-24 16:28:17 +03:00
Alexander Udalov
2076a31094
Improve Collection/Array/String detection logic in intentions
...
Use static methods from KotlinBuiltIns and check all supertypes, support cases
of Collection, Map and CharSequence
2016-10-24 15:30:39 +03:00
Mikhail Glukhikh
44d10672be
KT-7929 related: KtDestructuringDeclarationEntry is not resolved to descriptor in OverridingDeprecatedMemberInspection
2016-10-24 15:17:56 +03:00
Mikhail Glukhikh
6b9252a5d3
KT-7929 related: incorrect KtDestructuringDeclarationEntry is not resolved to descriptor, fixes EA-76715
2016-10-24 15:17:52 +03:00
Mikhail Glukhikh
1c8a2bb4cc
No more attempts to resolve KtDestructuringDeclaration to descriptor #KT-7929 Fixed
...
Also #KT-8442 Fixed
2016-10-24 15:17:48 +03:00
Denis Zharkov
7d89869c02
Do not suggest "Remove parameter" quick-fix on lambdas
...
Only "Rename to _" should work in the case.
The problem is that removing lambda's parameter may lead behaviour changes.
This quick-fix was not being invoked run before KT-14347 had been implemented
# Conflicts:
# idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java
2016-10-24 10:19:25 +03:00
Denis Zharkov
5e1b219784
Implement quick-fix replacing parameter name with _
...
This quick-fix is registered for UNUSED_* diagnostic in places
where it can be applied (destructured declarations/lambda parameters)
#KT-14431 Fixed
2016-10-24 10:19:25 +03:00
Denis Zharkov
4c69416f2b
Report warning on unused entities that can be renamed to _
...
Currently it's all about lambda parameters/destructuring entries
#KT-14347 In Progress
2016-10-24 10:19:25 +03:00
Denis Zharkov
a9fcee098d
Support single-underscore named variables in JVM backend
...
There are mainly two kind of changes:
- skipping 'componentX' calls for destructuring entries named _
- fixing local variable table for them
- skip entries for destructuring entries named _
- use $noName_<i> format for lambda parameters named _
#KT-3824 Fixed
#KT-2783 Fixed
2016-10-24 10:19:25 +03:00
Nikolay Krasko
355dca2a97
Add toString for KotlinStubBaseImpl
...
Try to simplify "Stub and PSI element type mismatch" exception analyze.
(cherry picked from commit 11aa71e)
2016-10-21 00:18:27 +03:00
Dmitry Neverov
3cc3ad2b9e
Fix spaces in labeled expression (KT-14131)
...
https://github.com/JetBrains/kotlin/pull/978
(cherry picked from commit fdd5ba7)
2016-10-20 19:22:00 +03:00
Dmitry Jemerov
f933cf5395
Specify test framework to use explicitly in generate test tests
2016-10-19 17:04:42 +02:00
Alexey Sedunov
8c3fcf69f2
Convert Receiver to Parameter Intention: Update function descriptor after template is finished (otherwise some references may be processed incorrectly)
2016-10-18 16:48:09 +03:00
Nikolay Krasko
74f0bb3d4e
Remove mentioning KT-11395 from the wrong test
...
(cherry picked from commit c4fb0e9)
#KT-11395 Open
2016-10-18 15:41:18 +03:00
Dmitry Neverov
c3c5805a5f
Fix indent in constructor delegate call (KT-7718)
...
(cherry picked from commit 5699b14)
#KT-7718 Fixed
2016-10-18 14:01:51 +03:00
Nikolay Krasko
6a72cebe88
Add indent before colon of super types list on new line (KT-13981, KT-5117)
...
#KT-13981 Fixed
#KT-5117 Fixed
(cherry picked from commit dfea3af)
2016-10-17 15:16:48 +03:00
Nikolay Krasko
944b9b5b6c
Evaluate overloaded toString() in watches for Kotlin classes with delegate properties (KT-14068)
...
(cherry picked from commit 7774d2c)
#KT-14068 Fixed
2016-10-17 15:16:46 +03:00
shiraji
a1f1716044
Add inspection/intention for redundant calls of conversion methods #KT-10871 Fixed
...
Also #KT-12625 Fixed
2016-10-17 12:05:18 +03:00
Nikolay Krasko
8c2e61604e
Test for "Debugger: "Step over" dives into recursive call" (KT-12924)
...
Fixed in 7992df7b93
(cherry picked from commit 78e2f05)
#KT-12924 Fixed
2016-10-14 21:06:27 +03:00
Nikolay Krasko
06b72e608e
Do an ordinal step over while stepping over inlined calls in dex
...
(cherry picked from commit d741895)
2016-10-14 18:57:38 +03:00
Kirill Rakhman
09d6e2e0c0
Add quick-fixes for lateinit-related errors #KT-14342 Fixed
2016-10-14 16:14:00 +03:00
Nikolay Krasko
fe901e9516
Use Dex suffix instead of dex prefix for better test sorting
...
(cherry picked from commit 7f3a9c1)
2016-10-14 14:52:56 +03:00
Nikolay Krasko
7510ff4864
Check current behaviour of stepping over inline 'hasNext' and 'next' in for
...
(cherry picked from commit 008e574)
#KT-14296 Open
2016-10-14 14:52:44 +03:00
Nikolay Krasko
7992df7b93
Change the way 'step over' over inline calls works (KT-13751)
...
Previously it worked by invoking 'Run To Cursor' for the last position of inline function. As there's only one 'run to cursor' breakpoint
available in Idea framework, it couldn't work when inline function call was was used in conditions of control flow statements.
A new approach works through multiple step over operation and controlling stop position. In other words we try to "step over" inlined lines.
Same thing is actually done in "Smart Step Into" action.
(cherry picked from commit 2e8775d)
#KT-13751 Fixed
2016-10-14 14:52:31 +03:00
Nikolay Krasko
9594316b0a
Test for "Breakpoint inside lambda argument of InlineOnly function doesn't work" (KT-11395)
...
(cherry picked from commit d0ffe06)
#KT-11395 Fixed
2016-10-14 14:52:22 +03:00
Nikolay Krasko
87b628a3f7
Generate 'nop' instruction on lambda call when everything on line is going to be eliminated by inliner (KT-6477)
...
(cherry picked from commit 462bdb2)
#KT-6477 Fixed
2016-10-14 14:52:06 +03:00
Yoshinori Isogai
708a0e3b5d
KT-14329 Do not report inspection "Remove empty class body" for anonymous objects ( #972 )
2016-10-14 13:00:55 +02:00
Alexey Sedunov
5c2ad48375
Introduce Variable: Do not replace assignment left-hand sides
...
#KT-14240 Fixed
2016-10-13 19:00:58 +03:00