Commit Graph

137 Commits

Author SHA1 Message Date
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
Roman Ivanov f9f85c0832 improve codegen in simple case 2017-08-17 16:13:47 +07:00
Roman Ivanov fa416812fc improve conversion to stream api for joining cases 2017-08-17 10:21:31 +07:00
Roman Ivanov 72bab18a58 support min/max in stream api migration, rearrange tests 2017-08-02 12:57:45 +07:00
Roman Ivanov dd4ba58889 add support for binary operation reduction in stream migration 2017-07-20 17:15:07 +07:00
Tagir Valeev 036f556c55 ControlFlowUtils#statementBreaksLoop: fix void return case 2017-04-21 17:52:15 +07:00
Tagir Valeev d0bd812d05 BoolUtils#getNegatedExpressionText: push negation down into || and && 2017-04-10 16:11:18 +07:00
Tagir Valeev 478cae19bf IDEA-170032 Replace with foreach is not proposed in alt-enter
Now both options (when unchecked) only disable warning and batch-mode replacement, but the action is still available as an intention.
2017-03-30 13:07:18 +07:00
Tagir Valeev b2cd46bdeb StreamApiUtil: fix addition of map operation when object-object cast is involved 2017-03-14 13:19:47 +07:00
Tagir Valeev 909f89ab6e StreamApiMigration: disallow reassigning counting loop variable 2017-02-20 13:29:52 +07:00
Tagir Valeev 21b3f46f1a StreamApiMigration: collect(joining()): allow separator addition based on counting loop variable value 2017-02-19 18:37:49 +07:00
Tagir Valeev b8c9f1a1e0 IDEA-168203 Follow-up: do not suggest if initializer may throw checked exception or accesses non-final variable 2017-02-17 12:47:39 +07:00
Tagir Valeev 024c0831ac IDEA-168203 StreamApiMigration: accept more standard collection constructors 2017-02-15 11:46:18 +07:00
Tagir Valeev fc3f0bb09d SimplifyStreamApiCallChainsInspection: convert IntStream.range(0, Math.min(limit, arr.length)).map(idx -> arr[idx]) to Arrays.stream(arr).limit(limit) and so on 2017-02-15 11:46:18 +07:00
Tagir Valeev 95ed6b3fd6 StreamApiMigrationInspection: use Stream.of, etc. to iterate explicitly created array 2017-02-14 14:27:23 +07:00
Tagir Valeev 05ccacfa5f StreamApiMigration: check for label not pointing to the statement (Fix for EA-96734 - NPE: TerminalBlock.extractOperation) 2017-02-13 16:14:55 +07:00
Tagir Valeev 95baf652ae StreamApiMigration: support joining with prefix and suffix 2017-02-06 14:40:21 +07:00
Tagir Valeev 9fbe22a647 afterAnyMatchAssignmentBooleanInverted: fixed after automatic simplification 2017-02-03 16:46:00 +03:00
Tagir Valeev 0bc8981efa IDEA-167574 Provide inspection for find redundant StreamSupport.stream
Refactor SimplifyStreamApiCallChainsInspection
2017-02-03 10:40:11 +03:00
Tagir Valeev 9246190c9c StreamApiMigrationInspection: suggest to use takeWhile() in Java-9 2017-02-01 19:46:04 +03:00
Tagir Valeev e8c6ba183b IDEA-167263 Stream API migration does not work when replacing simple loop on array of primitive types (int, long, double) 2017-01-30 14:00:52 +03:00
Tagir Valeev 533f500368 IDEA-167088 Stream API migration: support joining with delimiter 2017-01-26 09:42:45 +01:00
Tagir Valeev 5f29e676e6 IDEA-167088 Stream API migration: allow resulting StringBuilder usages in concatenation 2017-01-25 14:36:47 +07:00
Tagir Valeev 4e6237cc7f IDEA-167088 Stream API migration: intermediate mapping added 2017-01-25 13:36:56 +07:00
Tagir Valeev bfa2fb9348 IDEA-167088 Stream API migration: support simple joining cases: fixed AT_WANTED_PLACE case 2017-01-25 13:05:08 +07:00
Tagir Valeev 16ddd276ed IDEA-167088 Stream API migration: support simple joining cases 2017-01-25 12:46:01 +07:00
Tagir Valeev 327e51962b IDEA-166814 Stream API migration: support more post-loop steps 2017-01-19 14:14:20 +07:00
Tagir Valeev cbd273dda8 StreamApiMigration: minor fixes in FindFirst scenarios 2017-01-18 13:52:12 +07:00
Tagir Valeev a363362459 StreamApiMigration: automatically simplify IntStream.range().mapXyz chains; IndexedContainer#getElementType: do not erase 2017-01-16 17:43:50 +07:00
Tagir Valeev 5b04785164 IDEA-166499 Stream API migration: support array filling in a loop 2017-01-12 17:37:10 +07:00
Tagir Valeev 5a599cdffd IDEA-166424 Guava create collections , nonsupport replace with stream API 2017-01-12 11:55:44 +07:00
Tagir Valeev 347bd66e81 StreamApiMigrationInspection: enable flatMap with primitive type change 2017-01-12 11:18:29 +07:00
Tagir Valeev 0957d52585 Convert for-loop with Collections.addAll: support primitive types; switch off when count expression is used; wrong contracts removed 2017-01-12 11:04:58 +07:00
Tagir Valeev 1ee8a1fbfe IDEA-166211 Convert for-loop with Collections.addAll inside into Java 8's stream API calls chain 2017-01-11 15:57:54 +07:00
Tagir Valeev b3a181a091 StreamApiMigrationInspection: refactoring of collect scenarios: CollectTerminal interface extracted and used; all forEach scenarios moved to ForEachMigration; cosmetics 2017-01-11 14:37:50 +07:00
Tagir Valeev 3738e54fee StreamApiMigration: add parentheses if necessary when .stream() can be omitted (fix for EA-93812). 2017-01-10 09:42:03 +06:00
Tagir Valeev 01d7ee7d3c IDEA-165942 Inspection to replace method call in a loop with bulk operation 2016-12-30 13:01:31 +07:00
Tagir Valeev 9cae3c25fa IDEA-165790 Stream API migration: support distinct() with collect(toList()) 2016-12-22 16:33:06 +07:00
Tagir Valeev e2b7d60680 StreamApiMigrationInspection: support limit count with separate variable 2016-12-22 12:33:15 +07:00
Tagir Valeev fb7790606c StreamApiMigrationInspection: try continue extracting operations when limit is successfully peeled off 2016-12-21 16:04:42 +07:00
Tagir Valeev 6341a52ccd StreamApiMigrationInspection: support postfix limit conversion (like if(count++ > 100) break; => limit(102)) (IDEA-CR-16910) 2016-12-21 13:45:42 +07:00
Tagir Valeev a15916ae24 IDEA-165063 Stream API migration: support simple limit conversions 2016-12-20 16:31:57 +07:00
Tagir Valeev e778bb8680 StreamApiMigrationInspection: chained computeIfAbsent generated incorrect code 2016-12-20 10:56:31 +07:00
Tagir Valeev 50223c222e Fix IDEA-165466 Stream API migration: automatically simplify emptyList().stream() to empty()
SimplifyStreamApiCallChainsInspection refactoring: simplifyCollectionStreamCalls extracted;
2016-12-15 17:13:14 +07:00
Tagir Valeev 54f7edf064 StreamApiMigrationInspection: use collect when computeIfAbsent is used; VariableAccessUtils#variableIsUsed instead of ReferenceSearch (IDEA-CR-16490) 2016-12-07 12:51:54 +07:00