Commit Graph

457 Commits

Author SHA1 Message Date
Alexey Sedunov b0c808082f Pull Members Up: Skip visibility checking between members to move 2016-02-01 13:18:47 +03:00
Alexey Sedunov f9632c1ad6 Pull Members Up: Use light field if property doesnt't have light methods
#KT-10552 Fixed
2016-02-01 13:18:46 +03:00
Alexey Sedunov a05a16c1e6 Move: Fix name lengthening when moving from default package
#KT-10696 Fixed
2016-02-01 13:18:33 +03:00
Alexey Sedunov 218dd41a08 Move: More accurate visibility analysis
#KT-10553 Fixed
2016-01-26 18:19:20 +03:00
Alexey Sedunov d662b02e95 Move: Nested classes support
#KT-9027 In Progress
2016-01-26 18:19:09 +03:00
Ilya Gorbunov 25c4453dc5 Cleanup deprecated symbol usages in testData 2016-01-22 05:54:38 +03:00
Ilya Gorbunov f4822cd757 Fix testData in compiler: add collections and ranges package to fq-names. 2016-01-22 05:54:38 +03:00
Alexey Sedunov 1d9bafe196 PSI Unifier: Fix matching of this-expressions
#KT-8293 Fixed
2016-01-14 13:55:10 +03:00
Alexey Sedunov ed8674c0f9 Safe Delete: Skip usages inside of overriding to-be-deleted declarations
#KT-7253 Fixed
2016-01-14 13:55:09 +03:00
Alexey Sedunov 59bacd932a Minor: Add test for KT-8295 2016-01-14 13:55:08 +03:00
Dmitry Jemerov 8fdd8179b9 Workaround for KtEnumEntrySuperclassReferenceExpression which implements KtSimpleNameExpression in a weird way and can break Move refactoring (EA-75268 - assert: TextRange.<init>) 2016-01-13 20:28:39 +01:00
Denis Zharkov e2c02f825f Refine member scope for types with projections
Instead of erasing descriptors with conflicting substitution,
use invariant CapturedType(<projection>) as replacement for type parameter
within default member scope.

After substitution leave such types 'as is' everywhere except return types,
use common approximation for them.

 #KT-9294 In Progress
 #KT-5411 Fixed
 #KT-8647 Fixed

 #KT-9462 Fixed
 #KT-9893 Fixed
 #KT-7581 Fixed
 #KT-7296 In Progress
2015-12-28 11:13:37 +03:00
Alexey Sedunov 2895e2e86f Change Signature: Process implicit usages of data class 'componentN' functions
#KT-9393 Fixed
2015-12-25 18:50:48 +03:00
Alexey Sedunov 784b250de8 Change Signature: Fix rendering of unresolved types in overriding members 2015-12-18 15:05:39 +03:00
Alexey Sedunov fd79145b73 Change Signature: Represent parameter/receiver types using KotlinTypeInfo 2015-12-18 15:05:36 +03:00
Alexey Sedunov cfe1c44260 Introduce Variable: Add type argument to initializer if they can't be inferred from the context
#KT-5466 Fixed
2015-12-18 15:05:27 +03:00
Alexey Sedunov 4e36edb5d6 Inline Variable: Remove invalid imports and perform reference lengthening/shortening when inlining non-local declaration
#KT-8884 Fixed
2015-12-18 15:05:23 +03:00
Pavel V. Talanov a667aa2f71 Tests: add runtime (and runtime sources) to some tests that rely on being able to resolve references to built ins 2015-12-15 20:22:09 +03:00
Alexey Sedunov ffb382e3bc PSI: Delete succeeding semicolon along with KtElement
#KT-5487 Fixed
2015-12-15 13:31:33 +03:00
Alexey Sedunov d0b9b6a3b4 Introduce Parameter: Support conversion of local variables
#KT-9170 Fixed
2015-12-15 13:31:32 +03:00
Alexey Sedunov 04c6ea78c7 Name Suggester: Allow any Kotlin identifier in suggested names
#KT-10332 Fixed
2015-12-15 13:31:28 +03:00
Alexander Udalov 239502368a Update test data for tower resolution algorithm
- locals win
- unary calls to plus/minus are not supported in favor of unaryPlus/unaryMinus
- unqualified nested classes are temporarily reported as unresolved
- function without receiver win against extension function
- explicit import win against star import
2015-12-11 17:01:02 +03:00
Alexey Sedunov ae2fc19fe5 Introduce Parameter/Lambda Parameter: Parenthesize binary expressions if operation reference starts with a new line 2015-12-10 20:07:24 +03:00
Alexey Sedunov 354e1dc337 Extract Function: Parenthesize binary expressions if operation reference starts with a new line 2015-12-10 20:07:23 +03:00
Alexey Sedunov 1824f10f07 Introduce Variable: Parenthesize binary expressions if operation references starts with a new line
#KT-3933 Fixed
2015-12-10 20:07:22 +03:00
Alexey Sedunov ffc8b6fd89 Safe Delete: Move test classes and test data to refactoring directory 2015-12-10 20:06:34 +03:00
Alexey Sedunov 76cf284b77 Introduce Variable: Do not suggest type-based names for multi-declaration entries if component function corresponds to value parameter
#KT-10287 Fixed
2015-12-10 20:06:24 +03:00
Alexey Sedunov e82e4bcfc8 Inline Variable: Show error message on attempt to inline unused declaration 2015-12-08 16:21:08 +03:00
Alexey Sedunov 5c88a1c63e Inline Variable: Parenthesize arguments of the form "e1 < e2" if the next argument has the form "e1 > e2"
#KT-8261 Fixed
2015-12-08 16:21:07 +03:00
Alexey Sedunov b2bdb8ed02 Inline Variable: Inline string template entries
#KT-7654 Fixed
2015-12-08 16:21:05 +03:00
Alexey Sedunov 8f8acf7a83 Pull Up: Drop default parameter values in function which becomes overriding. Disable function with default values if target class is the Java one
#KT-9833 Fixed
2015-12-08 16:20:52 +03:00
Pavel V. Talanov b9ce9f8576 Script, IDE: tweak extract based refactorings to behave better in scripts
Fix not being able to invoke introduce variable for top level script expression
Prohibit introduce parameter and introduce property for scripts on top level
Basic test for introduce function (produces red code atm)
2015-12-02 15:14:25 +03:00
Alexey Sedunov 6abf13be41 Extract Function: Consider member property with invoke() a receiver candidate
#KT-9774 Fixed
2015-12-02 13:54:03 +03:00
Alexey Sedunov 03e1480476 Extraction Engine: Get rid of explicit element offset manipulation and use copyable user data instead 2015-12-02 13:54:02 +03:00
Alexey Sedunov 44bc937499 Shorten References: Fix removal of explicit companion references in the position of callee expression
#KT-10102
2015-12-02 13:54:01 +03:00
Alexey Sedunov bcadfd4661 Introduce Variable: Suggest choosing between single variable and
multi-declaration. Forbid multi-declaration for collections and arrays
 #KT-10242 Fixed
2015-12-02 13:46:47 +03:00
Yan Zhulanow 9d1af5a17e Fix tests: "infix modifier required" and "operator modifier required" errors 2015-11-27 15:51:11 +03:00
Yan Zhulanow a3ff3ffc45 Fix tests: "Placing function type parameters after the function name" error 2015-11-27 15:51:11 +03:00
Alexey Sedunov 7a40239e64 Introduce Variable: Support destructuring declarations
#KT-6262
2015-11-26 21:22:16 +03:00
Alexey Sedunov 736813c76a Introduce Lambda Parameter: Support extraction of string template fragments 2015-11-24 20:40:26 +03:00
Alexey Sedunov 1b162e0294 Introduce Parameter: Support extraction of string template fragments 2015-11-24 20:40:21 +03:00
Alexey Sedunov 6e8acc6453 Psi Unifier: Do not unify parameters with block expressions 2015-11-24 20:40:20 +03:00
Alexey Sedunov 741489f4a5 Extract Function/Introduce Property: Support extraction of string template fragments 2015-11-24 20:40:18 +03:00
Alexey Sedunov f4b4b023a3 Introduce Variable: Support extraction of string template fragments
#KT-2089 Fixed
2015-11-24 20:40:15 +03:00
Alexey Sedunov 5889971d62 Introduce Variable: Allow choosing extraction scope for expressions in the lambda body
#KT-7720 Fixed
2015-11-24 20:40:07 +03:00
Alexey Sedunov aeee8bafe6 Name Suggester: Suggest parameter name for the corresponding argument expression
#KT-8111 Fixed
2015-11-16 11:29:59 +03:00
Denis Zharkov deea0643ad Refine type arguments resolution and rendering
In case of type constructors captured parameters from outer classes

 #KT-5510 Fixed
 #KT-3112 Fixed
 #KT-6325 Fixed
 #KT-408  Fixed
 #KT-6337 Fixed
2015-11-13 14:47:28 +03:00
Natalia Ukhorskaya 5fcd5396b6 Add option to extract function for wrapping member extension function with with { } 2015-11-10 18:38:11 +03:00
Alexey Sedunov 6ff955b66c Change Signature: Implement improved call processing algorithm
#KT-8953 Fixed
 #KT-9525 Fixed
2015-11-10 16:47:48 +03:00
Alexey Sedunov 2476393754 Change Signature: Do not move lambda out of parentheses if it neither wasn't out
before nor corresponds to the last parameter after the refactoring
 #KT-9763 Fixed
2015-11-10 16:47:42 +03:00