Commit Graph
3630 Commits
Author SHA1 Message Date
Anna.Kozlova 178e834fb9 checked exception compatibility constraint: don't substitute with inferred variables as types are already constructed based on substituted values, so avoid dbl substitution which leads to errors in case of references to the containing method (IDEA-166104) 2017-01-02 12:27:12 +01:00
Tagir Valeev 38db92f734 UseBulkOperationInspection: register BulkMethodInfo via extension points; JPA classes extracted 2016-12-30 17:48:49 +07:00
Tagir Valeev 5e742cdfac StreamToLoopInspection: reuse final variable as non-final (removing "final" keyword) (IDEA-CR-17006) 2016-12-30 15:09:55 +07:00
Tagir Valeev a613a9253d UseBulkOperationInspection: qualifier expression checked; arrays support fixed for CrudRepository.save 2016-12-30 14:02:55 +07: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
Anna.Kozlova 1cf721e0ce string comparison: evaluate based on equals comparison (IDEA-160823) 2016-12-28 18:49:05 +01:00
Anna.Kozlova 9a669f36ad error if static on-demand import references non-class (IDEA-160943) 2016-12-28 17:08:19 +01:00
Anna.Kozlova 88b453aad4 ensure add javadoc intention is available after identifier (IDEA-165956) 2016-12-28 14:20:06 +01:00
Anna.Kozlova f6364fbc68 method hierarchy with generics methods: fix adapting substitutor (IDEA-165969) 2016-12-28 14:20:06 +01:00
Tagir Valeev 2c57d04054 StringConcatenationInLoopsInspectionFix: fixed parenthesized append (IDEA-165968), fix renamed to "Convert variable ''{0}'' from String to {1}" 2016-12-28 13:40:03 +07:00
Anna.Kozlova 9d9c62523d warn about static methods in interface with same erasure (IDEA-165927) 2016-12-27 14:47:58 +01:00
Anna.Kozlova a59edc4e4a accessibility check for annotation parameters: treat parameters as they are outside the class (IDEA-165904) 2016-12-27 14:47:58 +01:00
Tagir Valeev d707262f9d StreamToLoop: merge sorted().toArray() and sorted().collect(Collectors.toList()) into single step 2016-12-27 17:47:44 +07:00
Anna.Kozlova 8f533a3edc overload resolution: don't ignore method with incorrect number of parameters when it overrides vararg method (IDEA-165829) 2016-12-27 11:29:37 +01:00
Tagir Valeev 54eb6ce6af StreamToLoop: support condition inside flatMap 2016-12-27 14:40:01 +07:00
Tagir Valeev 96cf01152f StreamToLoop/ToPrimitiveArrayTerminalOperation: reassign final array making it possible to reuse existing variable 2016-12-27 13:58:09 +07:00
Tagir Valeev ae5d133904 StreamToLoopInspection: sorted() operation (currently for non-primitive streams only) 2016-12-27 13:13:53 +07:00
Tagir Valeev fb12495825 StreamToLoopInspection: unwrap && and || chains; copy return statement in found/not found places; do not eagerly evaluate non-trivial ternary branch 2016-12-27 12:38:05 +07:00
Anna.Kozlova 341b97a5b2 exact method refs: mark as not exact if on raw type 2016-12-23 19:37:48 +01:00
Tagir Valeev c9c574e428 StreamToLoopInspection: preserve comments; CommentTracker: now possible to delete element first and only after that register unchanged parts. 2016-12-23 18:09:43 +07:00
Tagir Valeev 1e33755e09 StreamToLoopInspection: reuse existing variable if we should reassign it in loop, but it's possible to use it as non-final 2016-12-23 13:30:08 +07:00
peter 66b8d67f53 IDEA-165067 Unwrapping 'if' leads to non-compilable code 2016-12-22 14:06:29 +01: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 7ebe6f583d StreamToLoop: fixed comparator parentheses wrapping; ParenthesesUtils changes reverted (unnecessary) 2016-12-20 09:48:30 +07:00
peter 8d4406a15e IDEA-165594 Auto completion adds unnecessary spaces before and after colon in case of method reference 2016-12-19 15:47:42 +01:00
Tagir Valeev a94e87e968 StreamToLoop: inline simple common method references 2016-12-19 18:43:21 +07:00
Tagir Valeev 437d89ac15 StreamToLoop comparator support: insert parentheses if necessary 2016-12-19 16:50:08 +07:00
Tagir Valeev 204a045f0a StreamToLoop: min/max: Comparators as lambdas/method references supported; Comparator.naturalOrder() and reverseOrder() inlined. 2016-12-19 16:35:41 +07:00
Anna.Kozlova d7f10b93e1 retrieve type from binary comparisons to detect applicable constants (IDEA-165557) 2016-12-19 09:40:53 +01:00
Tagir Valeev 4b066b1b90 StreamToLoopInspection fixed when collection result is non-trivial generic type involving ? extends wildcards 2016-12-16 16:43:58 +07:00
Tagir Valeev 9c78db8af0 FunctionHelper: fix renaming in lambdas if autogenerated name conflicts with the existing one 2016-12-16 11:12:15 +07:00
Anna.Kozlova 08163051f3 show class/package conflict only if corresponding subdirectory contains classes so there could be usages with ambiguous imports 2016-12-15 14:48:27 +01: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 3741495801 LambdaGenerationUtil: disable if expression is accessed for writing
Fixes IDEA-165482 Optional.isPresent suggests to replace the code which assigns the variable defined outside
2016-12-15 11:51:58 +07:00
Tagir Valeev f04e5ecef5 IDEA-165397 Replace stream API with loop: support lambdas as toArray argument 2016-12-15 09:52:13 +07:00
Anna.Kozlova 9544b4c809 highlight inaccessible array component type (IDEA-165434) 2016-12-14 18:40:27 +01:00
Tagir Valeev 81e951bf90 StreamToLoopInspection#ensureCodeBlock refactored to use PsiTreeUtil.mark/releaseMark (IDEA-CR-16755)
RefactoringUtil#expandExpressionLambdaToCodeBlock reverted (now changes there unnecessary)
void single-expression lambda support
2016-12-14 17:57:02 +07:00
Anna.Kozlova 575a0740a9 method refs: ensure raw substitutor is not used for second search case to build return type constraints (IDEA-165239) 2016-12-14 11:31:36 +01:00
Tagir Valeev dddfd5d7b6 LambdaGenerationUtil#canBeUncheckedLambda: supports statements; checks control-flow breaks;
Fix for IDEA-165369 Replace Optional.isPresent() should be disabled if the thenBranch contains non-local control flow
2016-12-14 15:44:59 +07:00
Anna.Kozlova c376fa7e97 type arguments containment: ensure arrays are contained in type parameters with Serializable, Cloneable or Object bounds (IDEA-165295) 2016-12-13 17:46:28 +01:00
Anna.Kozlova 56a364de17 collapse to diamond in more cases (following IDEA-CR-16753) 2016-12-13 15:47:37 +01:00
Tagir Valeev 215dabf2ae IDEA-163062 [Java8][Feature] Function.identity() inspection 2016-12-13 16:17:43 +07:00
Tagir Valeev e4f40bf51f StreamToLoopInspection: fix when stream is inside multi-line expression lambda 2016-12-13 12:35:16 +07:00
Tagir Valeev 7b65a6919d StreamToLoopInspection: handle some if/ifPresent cases 2016-12-13 12:33:43 +07:00
Tagir Valeev f25764d72f StreamToLoop: disable in this()/super() constructor invocation as we cannot generate statements before this/super call. 2016-12-12 19:12:02 +07:00