Commit Graph

3256 Commits

Author SHA1 Message Date
Anna.Kozlova
e75b0faed2 inference: ensure erasure flag is pushed to the container expression
IDEA-185316
2018-03-14 17:39:04 +01:00
Anna.Kozlova
6a9bc6782d ensure class added to the throws list is visible outside of method
IDEA-187595
2018-03-14 17:39:04 +01:00
Anna.Kozlova
d2bfe3d14b ensure name when retrieving constructors from a class (IDEA-188068) 2018-03-13 10:35:45 +01:00
Tagir Valeev
2e6232e029 StreamApiMigration tests reorganized 2018-03-13 11:21:23 +07:00
Tagir Valeev
b2d5f75a92 StreamApiMigration: support Java10 toUnmodifiableList/Set (part of IDEA-187213) 2018-03-13 11:21:22 +07:00
Daniil Ovchinnikov
47bedfb488 [jvm-lang] java: return if no method is found after reformat IDEA-188113 2018-03-12 21:40:30 +03:00
Anna.Kozlova
117f3f1d2f ensure tailing comments doesn't break statement in the middle (IDEA-188072) 2018-03-12 18:34:26 +01:00
Tagir Valeev
c1f2c5c380 StreamToLoop: special handling of max().orElse(MIN_VALUE), etc. 2018-03-12 15:24:01 +07:00
Tagir Valeev
ebbdbbe432 StreamToLoop: special handling of skip(1) 2018-03-12 15:24:00 +07:00
Tagir Valeev
552f6fd49e IDEA-188021 "Move assignment to field declaration" leaves comment in class initializer 2018-03-12 10:18:09 +07:00
Anna.Kozlova
acfb22157b remove redundant type args: get rid of 2 different fixes 2018-03-09 18:44:26 +01:00
Anna.Kozlova
e3f42bdb9b extract PsiPrecedenceUtil as read-only part of ParenthesisUtils
leave methods to ensure compatibility, to be inlined and deprecated in separate commit (IDEA-CR-30329)
2018-03-09 16:38:07 +01:00
Tagir Valeev
a0923d48b8 MoveFieldAssignmentToInitializerFix: keep comments when removing empty initializer
Fixes IDEA-187524 "Move assignment to field declaration" loses comment on class initializer
2018-03-09 19:45:31 +07:00
Tagir Valeev
350eba5000 Optional compared with null: do not warn when subsequent isPresent check is found
IDEA-187578  Inspection to detect when Optional is compared with null
2018-03-09 19:30:59 +07:00
Anna.Kozlova
51f6813ee3 valid static method reference on class's inheritor (IDEA-187974) 2018-03-09 11:44:47 +01:00
Anna.Kozlova
36b1e622eb inference: skip bounds checking for captured fresh variables (IDEA-187943) 2018-03-08 19:06:30 +01:00
Roman Shevchenko
156b436799 [java] parses local-var syntax for lambda parameters (IDEA-187804) 2018-03-08 18:14:26 +01:00
Anna.Kozlova
877b2424ce inference: don't process lambda return expressions for void return type
those lambda return expressions can't influence containing call inference according to lambda constraint; which means that no additional inference variables could be propagated during inference process hence exception constraints could operate with proper types which are in fact type parameters - which would lead to unhandled exceptions on the top level (IDEA-187930)
2018-03-08 11:53:52 +01:00
Anna.Kozlova
99027d3bc5 fix test data (IDEA-CR-30316) 2018-03-07 14:36:37 +01:00
Tagir Valeev
a24ad7b268 OptionalAssignedToNull: added optional (sic!) warning on optional == null comparison
Fixes IDEA-187578 Inspection to detect when Optional is compared with null
2018-03-07 16:20:10 +07:00
Anna.Kozlova
9bdd5f11e3 respect precedence for div as production argument (IDEA-187205) 2018-03-07 09:18:32 +01:00
Anna Kozlova
b69f886265 redundant type arguments for non-generic methods & method references
IDEA-187548
2018-03-07 08:02:42 +01:00
Anna Kozlova
bea45461b0 provide special colors for statically imported members (IDEA-98499) 2018-03-07 08:02:41 +01:00
Anna Kozlova
424081efe0 interface static methods in method refs by subclass error (IDEA-187330) 2018-03-07 08:02:41 +01:00
Anna Kozlova
54a49e7777 restore javadoc references for non-phisical methods, e.g. enum#valueOf
IDEA-187289
looks like there is no fields which can be generated, so only methods are checked through processDeclarations
2018-03-07 08:02:41 +01:00
Anna Kozlova
f295742259 interface static methods in method refs by subclass error (IDEA-187330) 2018-03-07 08:02:41 +01:00
Tagir Valeev
2c4af2781d Inspection: Expression can be folded into Stream chain (IDEA-187123) 2018-03-05 16:35:35 +07:00
Tagir Valeev
43b86a988e CodeEditUtil#removeChildren: fixed nextLeaf determination
Before when removing more than one element, nextLeaf was invalid as well. The invalidation check below did not work as parent might still exist (element might be relinked to dummy file)

Fixes IDEA-187531 "Add on demand static import" with intervening comment and an empty line breaks code
2018-03-03 15:47:21 +07:00
Tagir Valeev
aa89c3b6fa CommentTracker: do not add a comment as a first child of PsiElement
Fixes IDEA-187526 "Add static import" with an intervening comment leads to exception
2018-03-02 16:22:19 +07:00
Tagir Valeev
4f854bc34a RedundantCompareCall testdata fixed 2018-03-02 09:54:28 +07:00
Tagir Valeev
2735fd74d5 IDEA-187474 Ternary condition is not boolean: add a quick-fix for method call 2018-03-01 14:45:49 +07:00
Tagir Valeev
c4da8fdb79 IDEA-187130 Inspection: Comparison of primitives with compareTo() 2018-03-01 12:33:56 +07:00
Tagir Valeev
f6c45995d3 IDEA-187224: test fixed (beforeStringSubstringLength.java was not added mistakenly) 2018-02-28 14:15:23 +07:00
Tagir Valeev
5feb5cb75a IDEA-187224 Add inspection for substring with String#length as second param 2018-02-27 13:05:45 +07:00
Tagir Valeev
0da4fd17f3 IDEA-187214 Stream to loop inspection: support Java 10 toUnmodifiableList/Set/Map 2018-02-27 10:57:08 +07:00
Tagir Valeev
c483ae9cd0 ControlFlowUtils#getInitializerUsageStatus fixed for do-while loops where var is declared just before the loop 2018-02-21 12:24:01 +07:00
Tagir Valeev
3b96a595b9 DeleteSideEffectsAwareFix: handle comments 2018-02-20 17:06:53 +07:00
Anna.Kozlova
bca21ba8c6 inference: substitution for captures (IDEA-186844) 2018-02-19 18:36:42 +01:00
Tagir Valeev
413aca292b WrapWithAdapterMethodCallFix: correctly handle disjunction type
Fixes EA-116570 Cannot create expression for type class com.intellij.psi.PsiDisjunctionType
2018-02-18 07:54:47 +07:00
Tagir Valeev
f5975ad8a2 Variable finality highlighting fixes
Unreachable branches are analyzed for twice assignment, but constants are evaluated.
Fixes IDEA-186321 Bad code green: non-iterating for-loop update
Fixes IDEA-186304 good code red: field might not have been initialized in unreachable branch
Fixes (mostly) IDEA-186305 good code red: variable might already have been assigned to
2018-02-17 12:35:03 +07:00
Anna.Kozlova
8703c07861 disable add on demand static import for method reference qualifiers
IDEA-186826
2018-02-16 16:01:55 +01:00
Daniil Ovchinnikov
872ddb5d0e [jvm-lang] rename create getter/setter actions
- _Create Getter_ -> _Create read-only property 'foo' in 'Bar'_
- _Create Setter_ -> _Create write-only property 'foo' in 'Bar'_

Action names are now consistent with _Create property 'foo' in 'Bar'_.
2018-02-15 16:00:36 +03:00
Anna.Kozlova
8d8a443512 enum, abstract and final should be an error somewhere (IDEA-186642) 2018-02-14 18:37:36 +01:00
Daniil Ovchinnikov
544ee7980f [jvm-lang] java: port _Create getter/setter from usage_ actions
- extract PropertyRenderer for reusing;
- make them work with type parameter guesser.
2018-02-13 01:15:09 +03:00
Daniil Ovchinnikov
3151924a52 [jvm-lang] java: don't create private abstract methods (IDEA-186499) 2018-02-12 19:25:20 +03:00
Daniil Ovchinnikov
fbe959bf47 [jvm-lang] java: port _Create property from usage_ action
- make it create template for both getter and setter;
- make it work with type parameter guesser;
- add tests!
2018-02-12 17:45:12 +03:00
Tagir Valeev
63231c630d IDEA-186381 bad code green: variable might already have been assigned
Fixed parentheses handling on the left-side of assignment and in unary operations
Fixed error message priority
2018-02-09 12:45:18 +07:00
Tagir Valeev
c8f3d1e20c ControlFlowUtil#isVariableAssignedInLoop: evaluate constant conditions
Fixes IDEA-186306 good code red: variable might be assigned in loop
2018-02-08 13:29:49 +07:00
Tagir Valeev
4234f0d140 EffectiveFinal tests reported in IDEA-154224, IDEA-163280, IDEA-171790 2018-02-08 13:21:31 +07:00
Tagir Valeev
b9630248cd FinalVariableMightNotHaveBeenInitializedInsideLambda: added separate initializer test 2018-02-08 12:31:34 +07:00