Commit Graph

2791 Commits

Author SHA1 Message Date
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
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
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
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
Anna.Kozlova
d4a9f70ca8 private modifier in interfaces: check for modifier combinations, body (IDEA-164596) 2016-11-28 15:38:48 +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
Anna.Kozlova
83bb640734 ensure inserted single-static-import when conflicting on-demand imports are presented (IDEA-155031) 2016-11-25 09:56:52 +01:00
Tagir Valeev
c2e815fc97 IDEA-163405 Migration from Stream API back to for loops: iteration#2 2016-11-24 18:15:51 +07:00
Anna.Kozlova
e201eee547 warn if lambda -> method ref fix can change semantics (IDEA-CR-16052) 2016-11-23 14:31:13 +01:00
Anna.Kozlova
049a253fdf inference: don't erase types when target type is parameterized with unbounded wildcards only, in this case no unchecked warning would be generated and the types won't be affected by unchecked warning clause 2016-11-23 11:53:29 +01:00
Bas Leijdekkers
ad8c623aca add parentheses to quick fix presentation 2016-11-23 11:31:36 +01:00
Tagir Valeev
0f7c78a5a6 IDEA-163991 ifPresent is not suggested when value is not used inside expression; OptionalIsPresentInspection uses CommentTracker now 2016-11-23 17:26:57 +07:00
Anna.Kozlova
2514f10f0e lambda -> method ref: allow conversion with any qualifier, show warning only for trivial qualifiers; same for anonymous -> method ref (IDEA-CR-16052) 2016-11-22 20:22:29 +01:00
Anna.Kozlova
becb6c7387 inference: mark call unchecked required when proper types are compared (IDEA-164243) 2016-11-21 19:33:20 +01:00
Bas Leijdekkers
eae8f18550 Report default annotation parameters in more cases 2016-11-21 17:09:17 +01:00
Anna.Kozlova
7d1f9d1e7b lambda -> method ref: allow pure method call chain (IDEA-164223) 2016-11-21 16:28:18 +01:00
Tagir Valeev
3fa339e3dd IDEA-164016 Replace Optional.isPresent() checks with functional-style expressions fix produces non-compilable code 2016-11-21 14:47:02 +07:00
Tagir Valeev
f60c60c661 IDEA-164144 Intention offers change to comparingInt for long fields 2016-11-21 13:08:30 +07:00
Anna.Kozlova
ec82847b4e resolve for method reference qualifier should prefer classes in case of constructor refs (IDEA-164165) 2016-11-18 17:58:54 +01:00