Commit Graph

643 Commits

Author SHA1 Message Date
Alexey Sedunov a8c57f11af Move: Implement more accurate 'protected' visibility check
#KT-17545 Fixed
2017-04-24 20:52:12 +03:00
Alexey Sedunov c690761715 Move: Do not process imported references when moving entire file
#KT-17538 Fixed
2017-04-24 20:52:10 +03:00
Alexey Sedunov f575e2710f Move: Fix processing of implicit extension 'invoke' calls
Also fix bogus "unused import" inspection reported on such calls

 #KT-17496 Fixed
2017-04-21 13:32:34 +03:00
Alexey Sedunov b80fbe1192 Change Signature: Avoid creating parameters from scratch
#KT-15519 Fixed
2017-04-21 13:32:32 +03:00
Mikhail Glukhikh 8fdb611e3b Do not try to inline properties from decompiled files
This removes GUI freeze for library properties #KT-17234 Fixed
2017-04-19 18:27:29 +03:00
Mikhail Glukhikh 6571a573f1 Use correct callElement for variable invoke in replacer
Check only 'status.isSuccess' before inlining, no descriptor check
Add two tests and fixes two other
2017-04-19 18:27:27 +03:00
Mikhail Glukhikh 4ef0096d46 Refactoring: inline val / fun now use the common inliner
This prevents their inconsistent work in some situations
NB: breaks three tests if used alone
2017-04-19 18:27:26 +03:00
Mikhail Glukhikh e6fa7356e1 Inline: support compound case without containing block #KT-17296 Fixed 2017-04-19 18:27:25 +03:00
Mikhail Glukhikh 91f7f19902 ExpressionReplacementPerformer: handle string templates accurately 2017-04-19 13:12:59 +03:00
Mikhail Glukhikh 815a367978 ReplacementPerformer: always copy statement to insert #KT-17273 Fixed 2017-04-19 13:12:58 +03:00
Mikhail Glukhikh 0f6b9473e9 Inliner: don't take into account nonexistent PSI to keep parameter
So #KT-17272 Fixed
2017-04-19 13:12:57 +03:00
Mikhail Glukhikh b8cc7c2ca6 Add type arguments more accurately during inlining 2017-04-19 13:12:56 +03:00
Mikhail Glukhikh f8e1f5e613 Inliner: specify explicit lambda signature for calls with lambdas
So #KT-17213 Fixed
So #KT-17395 Fixed
2017-04-19 13:12:55 +03:00
Mikhail Glukhikh 6453e10d44 If necessary, add parameter types while inlining lambda 2017-04-19 13:12:52 +03:00
Alexey Sedunov e79a7d3e94 Change Signature: Update test data 2017-04-17 23:00:20 +03:00
Alexey Sedunov b33b06722d Change Signature: Support header/impl declarations 2017-04-17 23:00:18 +03:00
Alexey Sedunov d78828001d Rename: Support header/impl declarations 2017-04-17 23:00:15 +03:00
Alexey Sedunov b65e082425 Test Framework: Fix module creation in multi-module tests 2017-04-17 23:00:12 +03:00
Alexey Sedunov 69ef8e89a9 Move: Fix NPE on moving file to non-source directory 2017-04-17 23:00:11 +03:00
Alexey Sedunov b229eeeb47 Move: Prevent running refactoring helpers on partial move
It may lead to some imports being wringly removed
due to their references being unresolved yet

Also fix NPE on package rename via directory move
2017-04-17 23:00:10 +03:00
Mikhail Zarechenskiy b17b3f4c63 Resolve local function parameters with function inner scope
This allows to use type parameters and value paramters in default value expressions

 #KT-7984 Fixed
 #KT-7985 Fixed
2017-04-17 16:21:06 +03:00
Alexey Sedunov 9979c6e361 Move: Fix processing of callable references to Java constructors 2017-04-11 12:11:51 +03:00
Alexey Sedunov 411a8dc206 Move: Remove duplicating conflict messages from test data 2017-04-11 11:45:13 +03:00
Alexey Sedunov cd6177534a Move: Add conflict checking for "Move packages" case 2017-04-11 11:45:12 +03:00
Alexey Sedunov e21ff23e26 Move: Add conflict checking for "Move directory with classes" case 2017-04-11 11:45:11 +03:00
Alexey Sedunov 87a12ee1c7 Move: Check for conflicts using entire collections of elements to move 2017-04-11 11:45:10 +03:00
Alexey Sedunov 358b5fe548 Move: Force package name change when moving Java files
Package statement in Java file is updated too late
when moving the entire containing directory, so we force it
with intercepting MoveFileHandler implementation
2017-04-11 11:45:08 +03:00
Alexey Sedunov c1066b98f0 Move: Fix warning on companion used as implicit dispatch receiver
Do not report conflict if target class is a sublcass of
companion object's containing class
2017-04-06 18:54:02 +03:00
Alexey Sedunov 5c35061afa Move: Make minor improvements and refactorings 2017-04-06 18:52:45 +03:00
Alexey Sedunov 4a168ff780 Move: Process internal usages after all declarations are moved 2017-04-06 18:18:33 +03:00
Alexey Sedunov 746ec48176 Move: Fix internal reference processing on moving multiple files
#KT-17211 Fixed
2017-04-04 14:35:10 +03:00
Alexey Sedunov 2eb912a30c Move: Convert AbstractMoveTest to light fixture test case
Extract multi-module move test to a separate class
2017-03-31 18:24:16 +03:00
Alexey Sedunov eaba215bbb Move: Wrap individual internal usages for better preview
Fix unused import removal for internal usages

 #KT-9158 Fixed
2017-03-31 18:24:12 +03:00
Mikhail Glukhikh 8cfcd7e5a6 Inline function: add extra tests taken from intellij-community 2017-03-30 19:42:22 +03:00
Mikhail Glukhikh 091e875551 Inline function: process usages in children-first order 2017-03-30 19:42:19 +03:00
Mikhail Glukhikh 93b624fdbe Inline function: handle callable references through lambdas 2017-03-30 19:42:16 +03:00
Mikhail Glukhikh 75bb599991 Inline function: handle recursive calls 2017-03-30 19:42:14 +03:00
Mikhail Glukhikh b6803af746 KT-6159: generate Unit while code inlining when needed 2017-03-30 19:42:11 +03:00
Mikhail Glukhikh 081caadec1 Fix code inlining for expression body with multiple occurrences
So #KT-17022 Fixed
2017-03-30 19:42:09 +03:00
Mikhail Glukhikh 77888349cd KT-6159: rename duplicates met 2017-03-30 19:42:06 +03:00
Mikhail Glukhikh de861066bf KT-6159: allow local / private functions inlining 2017-03-30 19:42:03 +03:00
Mikhail Glukhikh 127b7c80df Some inline tests that do not work 2017-03-30 19:42:02 +03:00
Dmitry Jemerov 6febe1e8a2 Convert RenameTest to light fixture test case
Extract multi-module rename test to a separate class.
2017-03-28 15:48:38 +02:00
Dmitry Jemerov 159c2382b4 Convert KotlinChangeSignatureTest to light test case 2017-03-27 19:45:50 +02:00
Alexey Sedunov 298ee266c3 Move: Fix conflict checking when switching between similar libraries
#KT-17006 Fixed
2017-03-26 12:56:26 +03:00
Alexey Sedunov 1d0162402e Move: Fix processing of calls and callable references
Fix CCE on callable references to Java methods.
Fix qualification of callable references without receivers.
Fix processing of calls/callable references to object extensions
and extension members.
Do not explicate short companion references

 #KT-16809 Fixed
2017-03-26 12:56:24 +03:00
Alexey Sedunov dc04b200b6 Move: Do not shorten references unaffected by the refactoring 2017-03-26 12:56:20 +03:00
Alexey Sedunov d71cefee8a Move: Fix "scanEntireFile" values after the refactoring
#KT-17032 Fixed
2017-03-26 12:56:18 +03:00
Alexey Sedunov 56d22277b7 Move: Filter out ConflictUsageInfo instances before running the refactoring
#KT-16556 Fixed
2017-03-22 13:36:19 +03:00
Alexey Sedunov 2f136dae1c Move: KT-8955
Fix NPE on moving directory where at least one Kotlin file
contains package directive unmatched by the containing directory

 #KT-8955 Fixed
2017-03-22 13:36:18 +03:00