Commit Graph
3744 Commits
Author SHA1 Message Date
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
Tagir Valeev e87c551445 StreamToLoop: reuse variable if possible when the stream is used in the declaration 2016-12-12 17:27:54 +07:00
Tagir Valeev 810445f21d StreamToLoop: unwrap negation and ternary; minor refactoring 2016-12-12 17:27:53 +07:00
Anna.Kozlova 9f73d110c8 collapse to diamond during completion: don't walk up from statement (IDEA-162324) 2016-12-09 15:42:52 +01:00
Tagir Valeev 8e128b7f32 StreamToLoop: support Optional unwrap if possible 2016-12-09 15:17:26 +07:00
Tagir Valeev f99940c8e3 StreamToLoop: add finisher parentheses automatically if necessary 2016-12-09 11:04:29 +07:00
Tagir Valeev c7ccea5186 StreamToLoop: add variable name suggestions from method reference output variable 2016-12-09 10:33:49 +07:00
Tagir Valeev e7e0982841 IDEA-165193 Provide a quick-fix to replace String concatenation in loop with StringBuilder 2016-12-08 15:56:55 +07:00
Anna.Kozlova 4290a37a08 new inference: check intersection type of upper bound to detect substitution (IDEA-165011) 2016-12-07 18:44:34 +01:00
Dmitry Batkovich 4ac9d4360e create constructor parameter should consider context (e.g.: type parameter name == some class name from java.lang) 2016-12-07 18:23:14 +03:00
Anna.Kozlova 5732b8fb81 ensure static fields/static initializers are evaluated before instance fields (IDEA-165084) 2016-12-07 11:18:47 +01: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
Tagir Valeev 95fac58f03 ExcessiveLambdaUsageInspection: support JUnit5 assertions; regex as lambdaMethod, minor improvements (IDEA-CR-16398) 2016-12-07 12:13:02 +07:00
Anna.Kozlova e55fbf3f1d isEffectivelyFinal: disallow effectively final variables to be initialized twice (IDEA-165060) 2016-12-06 17:54:19 +01:00
Pavel Dolgov 05744d1ffd Java: Merged ConfusingElseInspection and RemoveRedundantElseAction into RedundantElseInspection, made it an INFORMATION-level inspection (IDEA-162191) 2016-12-06 17:42:37 +03:00
Anna.Kozlova 81e49151ff don't insert braces around single lambda parameter 2016-12-06 12:35:48 +01:00
Anna.Kozlova 57ec346668 precise rethrow: special case for catch Exception (IDEA-164241) 2016-12-06 12:13:22 +01:00
Tagir Valeev f0c8802a27 StreamToLoop inspection: simplify toMap mergers (a,b)->a (use putIfAbsent) and (a,b)->b (use put) 2016-12-06 12:23:06 +07:00
Tagir Valeev f3d41d8a3c InlineStreamMapAction: restore comments 2016-12-06 12:23:06 +07:00
Tagir Valeev d7cb4edc8d IDEA-164880 Refactoring to function composition methods 2016-12-06 12:23:05 +07:00
Roman Shevchenko 9aef1ccba3 [java] allows @author tag on method Javadoc (IDEA-159020) 2016-12-02 20:29:33 +01:00
Anna.Kozlova 382b78aeca unrelated defaults: check if current class contains explicit method (IDEA-164732) 2016-12-02 11:51:07 +01:00
Tagir Valeev 203c11fca6 IDEA-164822 Migrate to Stream API: support toMap/groupingBy scenarios 2016-12-02 16:30:57 +07:00
Anna.Kozlova 936294e05d allow functional expressions in nested conditional expressions (IDEA-164828) 2016-12-01 16:52:02 +01:00
Anna.Kozlova 1732f58088 disable method reference replacement with qualifier (IDEA-164723) 2016-12-01 10:39:31 +01:00
Anna.Kozlova a17be30b79 include package local methods into method hierarchy (IDEA-164557) 2016-12-01 10:39:31 +01:00
Dmitry Batrak e6a6f609ea IDEA-164610 Quick documentation should escape angle brackets at the value of a String field referred via @value (javadoc tag)
also add quotes to string value, and convert value into a link to corresponding field's javadoc, like javadoc tool does
2016-11-30 18:01:44 +03:00
Tagir Valeev 4e919302c7 StreamToLoopInspection: support inside single-expression lambdas 2016-11-30 17:36:09 +07:00
Pavel Dolgov 2f5e954770 Java: Fixed false positive "unreachable statement" in the control flow analysis (IDEA-164442) 2016-11-30 13:04:34 +03:00
Tagir Valeev d749f3dc5a IDEA-163909 Inspection to replace computeIfAbsent returning a constant with putIfAbsent 2016-11-30 15:15:58 +07:00
Roman Shevchenko cfffd966fb [java] resolve into multi-release modular libs 2016-11-29 15:04:19 +01:00
Anna.Kozlova 5098bf49fc completion for private modifier in java 9 interfaces, hide 'static' from completion in java 6 2016-11-28 15:38:48 +01:00
Anna.Kozlova d4a9f70ca8 private modifier in interfaces: check for modifier combinations, body (IDEA-164596) 2016-11-28 15:38:48 +01:00
Roman Shevchenko e7fd8b0fef [java] tolerates ambiguous modules in readability analysis (IDEA-164553) 2016-11-25 20:42:50 +01:00
Anna.Kozlova 57bd0325ef copy also nullable annotations when create constructor parameter from field (IDEA-164493) 2016-11-25 12:50:54 +01:00
Anna.Kozlova df3abfd8c3 check constructor only implicitly called constructor (IDEA-164500) 2016-11-25 12:50:54 +01:00
Anna.Kozlova 261e309dd7 import static: insert single-static-import if multiple on-demand imports with corresponding constants are available leading to ambiguity reference 2016-11-25 09:56:52 +01:00