Commit Graph

65 Commits

Author SHA1 Message Date
Dmitry Gridin d06787886a Fix tests after implementing trailing comma in formatter
#KT-34744
2020-01-17 21:02:54 +07:00
Toshiaki Kameyama 6b2e58cc0b Inline function: fix it works correctly for callable reference receiver
#KT-26248 Fixed
2020-01-13 11:59:42 +03:00
Mikhail Glukhikh ee37a0aa9f Inline callable: keep all usages inside annotation entries
#KT-24596 Fixed
2019-07-10 15:10:52 +03:00
Mikhail Glukhikh eb00af6b96 CFG: mark annotation arguments as "used as expressions" #KT-24596 Fixed
NB: only classes / function / properties annotations are considered here,
not including local declarations and other annotations
2019-07-10 15:10:52 +03:00
Mikhail Glukhikh 615aa265f5 Inline: do more precise check before adding this@Labeled #KT-30762 Fixed 2019-07-10 15:10:51 +03:00
Mikhail Zarechenskiy c95eddbbbe [IDE-NI-MIGRATE] Migrate few tests for new inference 2019-05-06 13:59:28 +03:00
Mikhail Glukhikh eba2fdfe89 Fix inline test 2017-10-16 21:06:18 +03:00
Valentin Kipyatkov 996292264b Fixed inline when multiple implicit receivers exist
#KT-17776 Fixed
 #KT-17266 Fixed
2017-07-27 13:55:25 +03:00
Dmitry Jemerov f32dc9e84e Put lambda parameters on the same line as opening curly brace 2017-06-14 14:18:58 +02:00
Mikhail Glukhikh 9c15db93d9 Inline: more accurate handling of type arguments
Partial revert of b8cc7c2ca6
Soften requirements in remove type arguments intention in this mode
So #KT-17622 Fixed
Related to KT-17623
2017-05-31 12:47:50 +03:00
Mikhail Glukhikh 38d6c597a3 Handle expected type more precisely in RemoveExplicitTypeArguments
So #KT-17623 Fixed
2017-05-31 12:46:59 +03:00
Valentin Kipyatkov c69375ebdc Remove redundant curly braces in string templates on inline 2017-05-26 16:37:37 +03:00
Valentin Kipyatkov ab1b985bac Inline Property supported for properties with setter
#KT-2638 Fixed
2017-05-26 16:37:36 +03:00
Valentin Kipyatkov e6bfa55534 Inline Property also supported for properties with getter 2017-05-26 16:37:36 +03:00
Valentin Kipyatkov 940ce27925 Inline val: more correct and simple detection of write usages
#KT-17489 Fixed
2017-05-26 16:37:35 +03:00
Valentin Kipyatkov 55979aca74 Drop result value if it's not needed 2017-05-26 16:37:35 +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
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
Valentin Kipyatkov 85e1e53354 Checking for unsupported return's 2016-11-08 12:46:45 +03:00
Valentin Kipyatkov 4c4c85e37a Supported unit return type functions 2016-11-08 12:46:45 +03:00
Valentin Kipyatkov 08c6a21ac1 Handling safe calls of multi-statement function 2016-11-08 12:46:43 +03:00
Valentin Kipyatkov 330d3a255a introduceValue() always adds statement before except for safe call case 2016-11-08 12:46:42 +03:00
Valentin Kipyatkov 8f9f2027f2 Adding block to control structure when needed 2016-11-08 12:46:42 +03:00
Valentin Kipyatkov a4aa9bab8d Very basic version of inline function for block body 2016-11-08 12:46:42 +03:00
Valentin Kipyatkov 3b97a3feb1 Supported case when explicit function type is used 2016-11-08 12:46:41 +03:00
Valentin Kipyatkov 57411b4d5e Supported inline function for expression body case 2016-11-08 12:46:39 +03:00
Alexey Sedunov 8a5628cde5 Pull Up/Extract Super: Support members declared in the companion object of the original class 2016-09-27 21:26:28 +03:00
Alexey Sedunov ccfca0e3dd Inline Type Alias
#KT-12903 Fixed
2016-07-19 15:44:35 +03:00
Alexey Sedunov 7773a1c4e0 Inline Variable/Property: Move test data 2016-07-19 15:42:15 +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
Alexey Sedunov ffb382e3bc PSI: Delete succeeding semicolon along with KtElement
#KT-5487 Fixed
2015-12-15 13:31:33 +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