Commit Graph

12753 Commits

Author SHA1 Message Date
Tagir Valeev
d08daf82f5 [java-inspections] IDEA-364908 WhileLoopSpinsOnField doesn't recognize lock
(cherry picked from commit 7a9fb186e4c23bf81a57cf1766a22cd6f85b5097)

IJ-CR-152528

GitOrigin-RevId: 0c49f423e2043958a2b11a95244f58b8e7323085
2025-01-09 19:00:03 +00:00
Tagir Valeev
a35bbc7c9c [java-inspections] Preview feature warning: limit highlighting to method name
Fixes IDEA-362013 Stream.of should not be highlighted because it's not a preview feature


(cherry picked from commit 0818188d2e5ae25916c0433dfe976c808eebf869)

IJ-CR-151174

GitOrigin-RevId: c81154ec031a4da1ef432831628fe93537ce599b
2024-12-13 10:37:17 +00:00
Tagir Valeev
3eea2c8961 [java-analysis] Parameter nullability: prefer nullability known from type over nullability known from parameter declaration
Type nullability could be more precise if parameter is generic
Fixes IDEA-364343 False-positive NPE at unboxing inside lambda with JSpecify annotations


(cherry picked from commit 9a49f5687eccaa013e639cdf15950be911e100bc)

IJ-CR-151033

GitOrigin-RevId: be6c25b7e63a9d231077351fd0bf813515e7f9bf
2024-12-09 17:46:27 +00:00
Tagir Valeev
071179ffed [java-intentions] IDEA-363624 Create Class generates invalid and redundant annotation @NotNull @NotNull for constructor parameter
(cherry picked from commit 9c3c9c55517369e6715c65a9696c287514261a10)

IJ-CR-151031

GitOrigin-RevId: 8306c8925395abd7dcee24de847335e4e9b1f535
2024-12-09 10:58:58 +00:00
Tagir Valeev
d2d87a71f3 [java-intentions] IDEA-363734 "Make Xxx impelent Yyy" quick fix inserts @NotNull
(cherry picked from commit 4e9a3f94cf1aedadd0b2c4699e168ccb3be0e405)

IJ-CR-150708

GitOrigin-RevId: ced9d4595e513387ebf996bf8dd0894877ef0f3e
2024-12-05 01:08:15 +00:00
Tagir Valeev
d2b1f518c8 [java-refactoring] IDEA-360614 Replace with single implementation: no downcast when 'this' is used
(cherry picked from commit f2ea406a5cf229cf9e63b6c2b53b9d86f245a6d9)

IJ-CR-150207

GitOrigin-RevId: 0eec797e7e9d105bf594aabd85533bd5c5395dd1
2024-11-26 19:12:59 +00:00
Tagir Valeev
300adf91fc [java-inspections] IDEA-363792 Incorrect inspection suggestion to replace 0.0/0.0 with 1.0
(cherry picked from commit 72ea479f6b2c3a331685175b11459556ae0a29bf)

IJ-CR-150124

GitOrigin-RevId: 842566d57921ebcbe355cab6c17a6a09f08d486a
2024-11-26 12:30:58 +00:00
Tagir Valeev
b6f684ed23 [java-dfa] IDEA-363270 Misleading warning for switch case when expression on Boolean values
(cherry picked from commit 449fdf6cb9137b7dcd038adca7b26ffc15f7d59a)

IJ-CR-150040

GitOrigin-RevId: 957b8f5555a16e1e4912bc19bfe9ff133715709b
2024-11-25 14:43:15 +00:00
Tagir Valeev
32684d7e9f [java-intentions] Create method from usage should skip external type annotation
Fixes (finally) IDEA-360115 Create method from List.of results in long jetbrains NotNull annotation


(cherry picked from commit 8e1657ad1d3af686e50c048eea1f7c439ec7365b)

IJ-CR-149633

GitOrigin-RevId: 1c86e8a1b9b0d5902f095ca7393bef8e2dea66d9
2024-11-19 14:11:05 +00:00
Bas Leijdekkers
7178d5454c Java: correctly qualify method call when it is inlined from static interface method (IDEA-362625)
(cherry picked from commit 2f32664c77558fc4507a8a6ecc327f6c91b7d815)

IJ-CR-149100

GitOrigin-RevId: e224c59e90ff32687ebc67a278d1e63b52095fbd
2024-11-13 15:13:23 +00:00
Tagir Valeev
5e26c44314 [java-refactoring] isFirstUse: handle static method qualifier
Fixes IDEA-356148 Inlining method creates undesirable temporary variable


(cherry picked from commit 34091cb3a6c6388b2086d92e8cd4b206b9250202)

IJ-CR-149087

GitOrigin-RevId: 5d38476c8ff706eb180c628d7b481d0f7b00c7ff
2024-11-12 11:38:15 +00:00
Tagir Valeev
6fe3ec50ef [java-refactoring] isFirstUse: take PsiAssignmentExpression into account
Fixes IDEA-361852 Java Inline Method refactor introduces intermediate variables


(cherry picked from commit 680fbb62f3440b7ae29f4de1793260fe5be0ab36)

IJ-CR-149087

GitOrigin-RevId: c9ede4356696412b656b0295f21f534cce04bc30
2024-11-12 11:38:15 +00:00
Mikhail Pyltsin
b95c1b84e7 [java-inspections] IDEA-360880 Replace cast expressions with pattern variable does nothing inside of ternary operator
- use PsiStatement as scope instead of PsiIfStatement
- more tests


(cherry picked from commit 2602190296988a80d54520c7a0f15fd0f8e3d942)

IJ-CR-147991

GitOrigin-RevId: 45d61e2aa9e70c3aa68032d21a77f05754a76534
2024-11-12 11:25:29 +00:00
Mikhail Pyltsin
21b790bb3f [java-inspections] IDEA-360755 Convert to enhanced switch erases the default value
(cherry picked from commit 7562bb688c2bf6e93bab7537113bb54246949006)

IJ-CR-147994

GitOrigin-RevId: 07dc28c498da2f45ccf2dd0d88c9f603ddfb46b1
2024-10-30 20:48:51 +00:00
Tagir Valeev
1d58cede1d [mod-commands] Rely on document text, rather than PSI text when building the final command
For some reason, they might be different. Probably due to incorrect PSI at the beginning of the action. In any case, document should be the source of truth, as the ModCommand will be applied to the document, rather than PSI
Fixes IDEA-359782 try postfix completion generates trailing garbage


(cherry picked from commit 292399a28d347f9b4fa22730002299d5c5b68167)

IJ-CR-147269

GitOrigin-RevId: 2ccd437d3c51c0ded16be634650ed8dfc59770b4
2024-10-22 14:39:05 +00:00
Tagir Valeev
93592a4c9e [java-refactoring] CodeBlockSurrounder: avoid collapsing with unrelated if-statement
Fixes IDEA-360579 Inline Method creates uncompilable code


(cherry picked from commit cd73e3e730b8cef37f4a26235a2ab3db812f02ff)

IJ-CR-147183

GitOrigin-RevId: 0258e753bfb5f7e66bc4a0526769fe8ba07aa02c
2024-10-21 12:11:50 +00:00
Tagir Valeev
88e99a58b4 [java-dfa] Fix hardcoded contract for three-arg Arrays.binarySearch method (IDEA-359546)
(cherry picked from commit a4ff22126f7d6fc1b4a7d99ee47c3caf1b144c4c)

GitOrigin-RevId: 74f0bae69219b650eb170bc517e5c1bc0b1d9ad2
2024-10-17 13:15:40 +00:00
Tagir Valeev
bad69926e7 [java-inspections] Class can be record: fix Javadoc refs as well (IDEA-356432)
GitOrigin-RevId: 3dc09d1554037b46773b05b973b4a5905e5b3fe5
2024-10-14 15:13:57 +00:00
Mikhail Pyltsin
1512d52efd IJPF-CR-24873 IJ-CR-145218 [java-inspections] IDEA-201932 Provide inspection to highlight redundant creation operations in java date time api
GitOrigin-RevId: 5af6c994aca832256f73eaa301cc21f6bb738316
2024-10-11 20:45:20 +00:00
Tagir Valeev
09bd11efd8 [java-refactoring] IDEA-71792 Support inlining of abstract methods having one implementation
GitOrigin-RevId: 00491acff53aff96705a866e0d799dfe22873d23
2024-10-11 08:10:27 +00:00
Tagir Valeev
676c19bc1f [java-inspections] Report TYPE_USE nullability annotation on classes
GitOrigin-RevId: f5c6113ccd1738d72b0f58fe13a8352a043431c9
2024-10-11 08:10:27 +00:00
Mikhail Pyltsin
7e9f1978a2 [java-highlighting] IDEA-357214 'Module' is highlighted as an error when module name is expected
GitOrigin-RevId: c7ca9de1821e79b96a05ab74a3cbad7052ceb827
2024-10-10 15:17:07 +00:00
Mikhail Pyltsin
0e7c2be54f [java-decompiler] IDEA-346312 adapt patch 044
- clean-up
- more tests

GitOrigin-RevId: 1f763889cae7396a9eaf081decc1e6a8c0785f11
2024-10-10 09:55:49 +00:00
Bas Leijdekkers
481fab7d13 Java: allow to "Inline to Anonymous Class" classes with static members (IDEA-360451)
GitOrigin-RevId: 835f91a1d35db9b78041da36c3bd147fa4e52ba3
2024-10-09 18:25:23 +00:00
Bas Leijdekkers
9404af07f5 Java: more refactoring warning message clarification (IJPF-CR-24908)
GitOrigin-RevId: c545eaecb2f911f77da5bd55121f95c1209fab29
2024-10-09 18:25:23 +00:00
Mikhail Pyltsin
e729bc10c8 IJ-CR-146190 [java-inspections] IDEA-360134 Support %n in format string
- support escape symbols

GitOrigin-RevId: 46d46c58b5a43d4aed1c1549326035b0bc32161e
2024-10-09 11:22:00 +00:00
Tagir Valeev
8ea673ff41 [java-analysis] PsiSubstitutorImpl: better preserve context; more tests
GitOrigin-RevId: 4765f00cf6a5eafe902b9fae73c450f475e3d8c8
2024-10-08 20:08:05 +00:00
Tagir Valeev
f5463b7662 [java-inspection] NullableStuffInspectionBase: better determine annotation name
GitOrigin-RevId: 1c00dc9d26ce2e8ebf78379fefbd6b3a9e764007
2024-10-08 20:08:05 +00:00
Mikhail Pyltsin
066fa7fe85 [java-inspections] IDEA-360279 Narrow the scope for ImplicitToExplicitClassBackwardMigrationInspection
GitOrigin-RevId: 7d1e2b8da9983291201eb214f9437c68aaa12b87
2024-10-08 16:45:11 +00:00
Mikhail Pyltsin
52fe84a033 [java-inspections] IDEA-360291 'Make method constructor' fix shouldn't be shown for implicit classes
GitOrigin-RevId: ba571565430db01d06d37f2da5ab49a97b466db4
2024-10-08 14:02:23 +00:00
Mikhail Pyltsin
a9a1a18b94 [java-inspections] IDEA-357275 "Convert class to record" quickfix throws IOE when inherit compiled class
GitOrigin-RevId: 3fef0a37b006d12b2728b98454071d0fd7d3b24f
2024-10-07 18:58:01 +00:00
Tagir Valeev
bfda3761a4 [java-analysis] NullableNotNullManager: take into account container for super owners as well
GitOrigin-RevId: b64e2e9453855fb5cad0279dd59a71080630931c
2024-10-07 18:02:44 +00:00
Bas Leijdekkers
81a6c7d02c Java: support safe delete for record components (IDEA-245145)
GitOrigin-RevId: 5eccf46c5e0cce0d63c5ac480ad8d180b1ef0fed
2024-10-07 17:17:27 +00:00
Mikhail Pyltsin
81fe531f88 [java-inspections] IDEA-360134 Support %n in format string
GitOrigin-RevId: c7d3b60eec4a72ded2132a3ab24e035baf2c1241
2024-10-07 13:08:21 +00:00
Mikhail Pyltsin
77ec6df673 [java-inspections] IDEA-360135 Non-constant string concatenation in logging call could be triggered with exception argument
GitOrigin-RevId: b9a08671660f1a3cb27e566e1a9ed6a05cd211d4
2024-10-07 13:08:20 +00:00
Tagir Valeev
9a8c7a0397 [java-inspections] NullableNotNullManager: prefer container annotation over inherited for methods
Part of IDEA-359811

GitOrigin-RevId: 530af5840eedbd35c1f247381781c4ebc128b25b
2024-10-07 10:02:40 +00:00
Georgii Ustinov
c02d32ef74 [Java] Make JavaSpellcheckingStrategy dumb aware
IDEA-357681

GitOrigin-RevId: 1fead4d1fdb98c99d8b68d48813f483deaa6b35c
2024-10-05 10:25:23 +00:00
Tagir Valeev
1de7339d44 [java-inspections] Class can be record: automatically use accessors if the fields are not accessible
Fixes IDEA-356432 'Convert to record class' could handle public fields more intelligent

GitOrigin-RevId: c1c458275e808e3c95e2a24a9a8c1919ac25011b
2024-10-04 17:21:43 +00:00
Tagir Valeev
9a88df1dad [java-inspections] JSpecifyAnnotationSupport: do not apply NullMarked to cast type
Fixes IDEA-351866 jSpecify's @NullMarked influences 3rd party packages

GitOrigin-RevId: 418545583d0f421ec678d1c840e0eed11ff765bc
2024-10-04 17:21:43 +00:00
Bas Leijdekkers
2f23d849ea Java: fix "Duplicate branches in 'switch'" inspection false positive on method reference (IDEA-355483)
GitOrigin-RevId: 0d5e06632a349494f05b79dab40d37988fdd7412
2024-10-03 18:24:19 +00:00
Bas Leijdekkers
dfae4a26c2 Java: "Generate overloaded constructor with default parameter values" for records (IDEA-360071)
GitOrigin-RevId: a20fd5478241de404df3243f1b8b9a7d1a73829e
2024-10-02 20:13:41 +00:00
Bas Leijdekkers
95ed423db6 Java: don't create final fields from parameters when this does not compile (IDEA-359981)
GitOrigin-RevId: 3a85c9310c8928cf65459ae1ff1825fabf31ec03
2024-10-02 20:13:41 +00:00
Bas Leijdekkers
14096f0f03 java: don't create final field from parameter when this does not compile (IDEA-359980)
GitOrigin-RevId: d7ce31fbb607a409afa0e2b988eed424440cc336
2024-10-02 20:13:41 +00:00
Tagir Valeev
b223a53bc3 [java-dfa] NotNullByDefault: implicit Object bound is affected by annotation; more tests (IDEA-359811)
GitOrigin-RevId: a3576ee5f2b100b7e68536881a55d0c9a2f9771b
2024-10-02 14:26:44 +00:00
Tagir Valeev
3ec30c1c1b [java-highlighting] IDEA-359187 LVTI: 'lambda expression requires an explicit target type' not highlighted as error when in parenthesis
GitOrigin-RevId: 248072c38aeaf7f05b088c04bc435ecd0e940dd8
2024-10-02 14:26:44 +00:00
Tagir Valeev
5905b6f62a [java-inspections] TrivialFunctionalExpressionUsageInspection: more accurate side-effect handling
IDEA-355026 "Trivial usage of functional expression" breaks semantics if one argument updates the variable used in another

GitOrigin-RevId: e3d9374ecc427d62cee0d821473e9119ae240fc5
2024-10-01 14:50:18 +00:00
Mikhail Pyltsin
3288586fdf [java-inspections] IDEA-359749 StringConcatenationArgumentToLogCallInspection could also be triggered by concatenation
GitOrigin-RevId: bb5024a6be79582644fff96b72a8ceeff0fbf15e
2024-10-01 13:32:46 +00:00
Tagir Valeev
2f492127fc [jspecify] IDEA-356144 JSpecify: Nullable upper bounds do not result in proper nullness
GitOrigin-RevId: 0b3a0065217879ca2ee2d70ee5fec2c41dba7bae
2024-10-01 10:42:29 +00:00
Bas Leijdekkers
af458693d5 Java: don't insert unnecessary casts on inlining method (IDEA-203962)
GitOrigin-RevId: c3f441b42d164438b1035112083a8114735a0a05
2024-10-01 09:31:57 +00:00
Bas Leijdekkers
7be0072137 Java: disallow inlining record to anonymous class (IDEA-359857)
GitOrigin-RevId: f477736ff39ea95cf9c9c5088c2dd0af9399f605
2024-10-01 09:31:57 +00:00