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 |
|