Commit Graph

181 Commits

Author SHA1 Message Date
Roman.Ivanov 970afc84ff JoiningMigration: remove unnecessary side effect check for prefix: IDEA-207456 2019-04-09 12:34:13 +07:00
Tagir Valeev 6bef676307 CollectMigration: do not wrap nullable values with toUnmodifiableList/Set (IDEA-207976) 2019-03-14 11:10:38 +07:00
Tagir Valeev 5c0748b0bc StreamApiMigrationInspection: BufferedReaderLines: support parentheses around readLine in while scenario 2019-02-18 12:37:12 +07:00
Anna.Kozlova 1ace9ab2c3 lambda -> method ref: reuse comment tracker (IDEA-189934) 2019-02-04 15:21:43 +01:00
Tagir Valeev 15e0df11f9 IDEA-206497 Replace with stream: support intermediate map operations in counting loops 2019-02-04 14:20:39 +07:00
Tagir Valeev 8da8dca8e0 IDEA-200455 Suggest to replace (a, b) -> a + b lambdas with Integer::sum, Long::sum, Double::sum 2019-01-31 14:21:13 +07:00
Tagir Valeev cfd0c17038 IDEA-205308 'Replace with max()' produces uncompilable source 2019-01-15 13:14:19 +07:00
Tagir Valeev a3ed07435e IDEA-205309 'Replace with findFirst()' produces uncompilable source 2019-01-15 12:32:12 +07:00
Tagir Valeev 725cf20422 IDEA-204917 "Loop can be collapsed with Stream API" creates uncompilable results in some cases
1. Look for references inside IntStream.iterate condition (Java9+)
2. When simplifying IntStream.range(...).map(i -> arr[i]) check if arr expression don't refer to i
2019-01-06 10:25:15 +07:00
Tagir Valeev 362b8d0b34 Stream API migration: do not convert continue statements which belong to the nested loops (IDEA-204250) 2018-12-18 12:28:52 +07:00
Tagir Valeev 66504c8088 BoolUtils: negate the equality token for float/double as this does not change the semantics (only >, >=, <, <= change) 2018-10-12 10:34:56 +07:00
Tagir Valeev cee88f887b FindFirstMigration: use ifPresent when stream element type is primitive and the final statement is an assignment
This case is possible only if we have no non-final locals updated in the loop, so the assignment updates field or array element.
Using common assignment scenario may not work as primitive optionals lack map/filter operations
Fixes IDEA-200209 "Replace with findFirst" produces incompilable code
2018-10-10 15:55:53 +07:00
Tagir Valeev c09250da45 CommentTracker#replaceAndRestoreComments: try to keep comments after the statement (not move them to the front) 2018-10-08 14:09:24 +07:00
Tagir Valeev aee5f482a6 JoiningMigration: preserve comments in removed toString() call 2018-09-07 18:31:22 +07:00
Tagir Valeev a0f1b41336 TerminalBlock: preserve comments after continue statement (not in the proper place though) 2018-09-03 19:57:02 +07:00
Tagir Valeev ab3c5b7e5a OptionalUtil#getMapTypeArgument: support PsiEmptyExpressionImpl input
Fixes EA-125157 - IOE: PsiJavaParserFacadeImpl.createExpressionFromText
2018-07-26 17:41:49 +07:00
Tagir Valeev 625def0299 FoldExpressionIntoStream, StreamApiMigration: EquivalenceChecker used 2018-07-11 14:43:44 +07:00
Tagir Valeev 3fad9a22f4 PsiJavaCodeReferenceElementImpl: preserve tokens (comments/whitespace) between name element and parameter list 2018-07-11 14:43:42 +07:00
Tagir Valeev ec98df958b StreamApiMigration: parentheses in BufferedReader.lines() scenario supported 2018-07-10 14:13:38 +07:00
Tagir Valeev 9ba38bc486 StreamApiMigrationInspection: skip parentheses in loop bound 2018-07-09 12:31:45 +07:00
Tagir Valeev d516456163 CountingLoop: support parenthesized condition 2018-07-06 13:58:43 +07:00
Tagir Valeev bd4a3477f5 StreamApiMigration: register comments from post-loop operations like sorting 2018-06-27 09:29:38 +07:00
Roman.Ivanov 5076e08145 set SPACE_BEFORE_COLON_IN_FOREACH true by default, fix tests 2018-06-26 12:04:00 +07:00
Tagir Valeev 79ed1b2dc3 shortenClassReferences: dequalify references which are statically imported 2018-06-14 10:08:16 +07:00
Tagir Valeev f4839c89ea BaseStreamApiMigration: when deleting the initializer replace type with explicit if possible
Fixes IDEA-193618 Invalid code generated after "Can be replaced with 'collect' call"
2018-06-13 11:14:54 +07:00
Roman.Ivanov 5858ba478c fix tests for foreach formatting 2018-06-05 11:31:17 +07:00
Tagir Valeev 3c2cd21d35 MigrateToStreamFix: explicit formatting removed (as formatted anyways automatically) 2018-05-30 18:23:38 +07:00
Tagir Valeev b336e70485 Less smart simplifications after loop-to-stream (keep stream) 2018-05-13 18:10:54 +07:00
Tagir Valeev a1a4663b73 CollectMigration: support toUnmodifiableMap
Fixes IDEA-187213 Stream API migration: support Java 10 toUnmodifiableList/Set/Map collections
2018-04-17 15:06:35 +07:00
Tagir Valeev 2e6232e029 StreamApiMigration tests reorganized 2018-03-13 11:21:23 +07:00
Tagir Valeev b2d5f75a92 StreamApiMigration: support Java10 toUnmodifiableList/Set (part of IDEA-187213) 2018-03-13 11:21:22 +07:00
Tagir Valeev c483ae9cd0 ControlFlowUtils#getInitializerUsageStatus fixed for do-while loops where var is declared just before the loop 2018-02-21 12:24:01 +07:00
Tagir Valeev d5f9284f2e ExpressionUtils#isSimpleExpression: disable for non-final fields 2018-02-05 15:53:39 +07:00
Tagir Valeev 3210510c96 CollectionUtils#isCollectionOrMapSize
Used in ToArrayCallWithZeroLengthArrayArgumentInspection and StreamApiMigrationInspection
2018-01-30 11:01:38 +07:00
Tagir Valeev ac8ad2c822 IDEA-183326 Comment disappears in stream to loop 2017-12-06 17:47:22 +07:00
Tagir Valeev 6746c6e1d1 StreamApiMigration: fixed exception when void expression is used as method argument 2017-12-04 17:40:01 +07:00
Tagir Valeev b435203ca2 IDEA-182759 CommentTracker already used exception 2017-11-28 12:57:49 +07:00
Tagir Valeev 5b36191d2c IDEA-182623 Replace with collect swallows comments 2017-11-27 15:22:26 +07:00
Tagir Valeev 5b8f3b2bfe StreamApiMigrationInspection: preserve comments on cleanUp limit/bufferedReader 2017-11-27 15:22:25 +07:00
Tagir Valeev 14759e531a IDEA-180417 Generated code ("Replace with collect") is invalid follow-up
Fixed for groupingBy as well
2017-10-13 13:12:17 +07:00
Tagir Valeev 59c3fd672a IDEA-180417 Generated code ("Replace with collect") is invalid 2017-10-13 13:04:12 +07:00
Roman 545ae69261 StreamApiMigrationInspection: improve stream source recognition 2017-09-27 12:28:23 +07:00
Roman c20bbf70d2 Simplify Stream API call chain inspection improvements: IDEA-179118 2017-09-27 09:43:29 +07:00
Tagir Valeev fa6bbd0b5d CollectMigration: prepare to IncorporateStreamOperationsInspection; fix NewListTerminal to support collections only 2017-09-26 09:29:37 +07:00
Roman Ivanov 364c5bb129 add new groupBy cases 2017-09-13 11:29:31 +07:00
Roman Ivanov 0752af3706 fix errors 2017-09-13 10:11:23 +07:00
Roman Ivanov c3b4d6f849 support return in forEach replacement 2017-09-01 12:37:18 +07:00
Roman Ivanov 5acdc9ccdc add tests 2017-09-01 12:07:23 +07:00
Roman Ivanov aaee667ca7 add nested stream filter recognition 2017-08-24 11:35:17 +07:00
Roman Ivanov ef335f6a88 fix codegen for natural order: IDEA-CR-23874 2017-08-17 16:13:48 +07:00