Commit Graph

70 Commits

Author SHA1 Message Date
Tagir Valeev
5ae32b3ec9 [java-analysis] LambdaUtil.isSafeLambdaReplacement: check all calls in-between; check applicability
Fixes IDEA-350194 Inspection QuickFix results in compilation error

GitOrigin-RevId: fb83bfcb4e4aef9dc87a5c84de6d08202dd52ec6
2024-04-16 19:06:42 +00:00
Tagir Valeev
9a26cb1f10 [java-inspections] LambdaCanBeMethodReferenceInspection: do not suggest ::isInstance for parameterized classes
Fixes EA-429448 - AE: LambdaCanBeMethodReferenceInspection.lambda$getLambdaToMethodReferenceConversionCandidate$0

GitOrigin-RevId: 71c796f587168bff0990bcff7369f7b189d5bede
2023-06-06 09:51:28 +00:00
Tagir Valeev
98e7ca52f1 [java-inspections] IDEA-301083 "Replace lambda with method reference" doesn't work for constructor calls in nested Enum
Copied enum was created always at top-level. In fact, as we copy the whole file anyway, there's no need to do something additional with enum. Just find it in copy and return.

GitOrigin-RevId: d85c21acfc879c02be0ef85eff4264faf0c99ffb
2022-09-05 20:08:11 +00:00
Tagir Valeev
7e1064ea3c [java-intentions] More preview tests; minor fixes
GitOrigin-RevId: 22a46c15d8900d8a31514846755a013f6a67ad42
2022-07-29 17:55:13 +00:00
Tagir Valeev
97472fc470 [java-inspections] LambdaCanBeMethodReference: avoid conversion to cast on invalid type
Fixes EA-429448 - AE: LambdaCanBeMethodReferenceInspection.lambda$getLambdaToMethodReferenceConversionCandidate$0

GitOrigin-RevId: 51471968b691b383659da01bad4360493a04e46e
2022-06-30 08:49:25 +00:00
Anna Kozlova
4972eabd8b [java] don't replace lambda with method reference when qualifier is nullable (IDEA-278691)
GitOrigin-RevId: f514b690e9e2d007c124ce2b7179af39b6131f3f
2022-01-17 18:21:47 +00:00
Tagir Valeev
4577e3c4bf [java-inspections] Avoid isInstance conversion for invalid type element
Fixes EA-429448 - AE: LambdaCanBeMethodReferenceInspection.lambda$getLambdaToMethodReferenceConversionCandidate$0

GitOrigin-RevId: 689dc8501700e55feb56f8ae31278cf237265c5c
2021-12-21 04:52:09 +00:00
Anna Kozlova
eacd3576f5 [java] compare copied enum constructors as isEquivalent (IDEA-281446)
GitOrigin-RevId: 2b2456ad69da44c92376b42ffbfb8993f2aff3c2
2021-11-04 09:15:50 +00:00
Tagir Valeev
308d1fd0e6 [java-inspections] LambdaUtil#isSafeLambdaReplacement: check whether functional interface type matches exactly
GitOrigin-RevId: 04b67615268182a09ce3a211547dc8213997eb58
2021-10-20 13:09:36 +00:00
Tagir Valeev
bcb843dd8f [java-inspections] LambdaCanBeMethodReference: disable conversion in many cases when cast is required
Fixes IDEA-267865 Add a option for Java's method reference inspection that ignore lambda which can't convert into method reference without a cast

GitOrigin-RevId: b6f762383d6ba1ef19a5de36e0ad53d107ba4e80
2021-10-09 13:28:51 +00:00
Anna Kozlova
1cd8782c82 [java] disable lambda -> method references for casts in qualifiers (IDEA-277905)
GitOrigin-RevId: 7904b8a59aa8c8f1f95deba5b14872624ff68ff7
2021-09-20 10:35:13 +00:00
Tagir Valeev
d833da5281 [java-inspection] IDEA-252155 False positive "Lambda can be replaced with method reference" when casting with additional bounds
GitOrigin-RevId: 2b752e6b47a0d53b05b4e7cd98064c5ce54e2904
2020-10-06 08:04:23 +00:00
Tagir Valeev
b0929155eb IDEA-216467 "Lambda can be replaced with method reference" does not detect all cases with varargs
GitOrigin-RevId: 232800df8754a17bc8358640b675bc5a8903dfce
2020-06-09 12:46:23 +03:00
Tagir Valeev
8ddeb2cd07 Disable lambda2methodref if lambda parameter has annotations; preserve annotations in extract to methodref
Fixes IDEA-200489 Replacing lambda with method reference discards annotation on Java 11 var lambda parameter

GitOrigin-RevId: 78bf5f00389f8e1e8a866fbaa226cea2e31b749c
2020-05-21 14:05:56 +03:00
Anna Kozlova
616e3ca030 method references: allow access to protected methods through super (IDEA-217862)
GitOrigin-RevId: f1d86f6127a64146e87998423f3034e38a46409c
2019-08-05 23:03:36 +03:00
Tagir Valeev
e85e0ebdfb LambdaCanBeMethodReferenceInspection: fix EA-140341 CCE; cleanup 2019-03-26 10:42:03 +07:00
Tagir Valeev
8fa34c7dbe LambdaCanBeMethodReferenceInspection: allow parenthesized qualifier 2019-03-25 10:57:30 +07:00
Anna.Kozlova
1ace9ab2c3 lambda -> method ref: reuse comment tracker (IDEA-189934) 2019-02-04 15:21:43 +01:00
Tagir Valeev
8da8dca8e0 IDEA-200455 Suggest to replace (a, b) -> a + b lambdas with Integer::sum, Long::sum, Double::sum 2019-01-31 14:21:13 +07:00
Tagir Valeev
4b66e1de3d LambdaCanBeMethodReferenceInspection: support parentheses like s -> (s) instanceof Xyz or s -> (s) != null, etc. 2018-07-11 14:43:43 +07:00
Tagir Valeev
5639829e97 LambdaCanBeMethodReferenceInspection: support parentheses around whole lambda body 2018-07-06 15:13:11 +07:00
Tagir Valeev
52053135e8 LambdaCanBeMethodReferenceInspection: support parenthesized call arguments 2018-07-05 13:25:33 +07:00
Anna.Kozlova
4d4eefc1ab disable lambda -> method ref for qualified new expressions (IDEA-183613)
there is no place where qualifier can be added for constructor reference
2017-12-13 14:10:59 +01:00
Anna Kozlova
e323aa8b9c lambda -> method ref: don't transform by default array access qualifiers (IDEA-166740) 2017-01-18 19:11:49 +03: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
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
7d1f9d1e7b lambda -> method ref: allow pure method call chain (IDEA-164223) 2016-11-21 16:28:18 +01:00
Tagir Valeev
ee1bd69c2e IDEA-162574 False positive 'Lambda can be replaced with method reference' 2016-10-18 12:53:15 +07:00
Tagir Valeev
aa605118de LightQuickFixTestCase: Check whether <caret> is present in "before" files; wrong tests fixed 2016-10-07 16:34:42 +07:00
Tagir Valeev
8015562c2d IDEA-160898 Inspection to convert several commonly-used lambdas to method references 2016-09-08 12:25:37 +07:00
Anna Kozlova
86aa72abe4 preserve comments while converting from lambda to method ref (IDEA-156734) 2016-05-31 11:44:10 +03:00
Anna.Kozlova
81a6342d17 anonymous -> method ref: collapse receiver method references to raw receiver (IDEA-153261) 2016-03-18 20:49:43 +01:00
Anna.Kozlova
ae59643c87 testdata for IDEA-151214 2016-03-18 15:50:22 +01:00
Anna.Kozlova
15d6e64813 lambda -> method ref: compare denotable types (IDEA-153054) 2016-03-16 15:35:39 +01:00
Anna Kozlova
bd2113b739 lambda -> method ref: avoid Object::getClass as the type depends on qualifier (IDEA-150967) 2016-02-01 16:53:20 +03:00
Anna Kozlova
01fc1dc40f lambda -> method ref: make cast type denotable (IDEA-134217) 2016-01-04 19:25:03 +01:00
Anna Kozlova
62cc281a3d disable lambda -> methref for qualified new expressions (IDEA-147054) 2015-10-29 19:40:11 +01:00
Anna Kozlova
090038722a EA-70589 - IOE: PsiJavaParserFacadeImpl.createExpressionFromText 2015-09-29 17:59:47 +02:00
Anna Kozlova
6144008d26 disable lambda -> meth ref if qualifier is not pure (IDEA-139825) 2015-08-26 16:23:35 +03:00
Anna Kozlova
75e3086fb2 lambda -> meth ref: reject replacements with invalid qualifiers (IDEA-142695) 2015-07-21 08:51:06 +02:00
Anna Kozlova
e5097dfc24 lambda -> method ref: ensure that capture is checked according to the param ref; avoid wildcards in method ref qualifiers (IDEA-139529) 2015-04-24 13:46:11 +02:00
Anna Kozlova
b8683c3640 lambda -> meth ref: accept receiver only for calls on lambda params (IDEA-138593) 2015-04-01 20:39:31 +02:00
Anna Kozlova
bcbc25e1de lambda -> method reference: ensure functional type was not changed after transformation (IDEA-136163) 2015-02-17 14:58:58 +01:00
Anna Kozlova
fcb252d25e ensure functional type for formal parameters lambda is valid after method reference replacement (IDEA-135053) 2015-01-08 19:54:23 +01:00
Anna Kozlova
fa99ec2a74 lambda -> method ref: do not skip array initializer; ensure dimension expressions are correct 2015-01-02 12:05:46 +01:00
Anna Kozlova
79da0849e2 disable lambda -> method ref if resulted methods are not the same (IDEA-134486) 2014-12-18 14:13:23 +01:00
Anna Kozlova
efc2dc0c59 lambda -> methref: respect laziness (IDEA-133372) 2014-11-24 12:09:15 +01:00
Anna Kozlova
6261633a4d AIOOBE 2014-11-13 12:35:05 +01:00
Anna Kozlova
1d2a8e0571 lambda -> meth ref: varargs 2014-11-12 13:13:35 +01:00
Anna Kozlova
bf5b3ed5b2 lambda -> method refs: cleanup ambiguity between receiver/non-receiver methods 2014-11-11 18:24:48 +01:00