diff --git a/java/java-impl/src/com/siyeh/ig/encapsulation/AssignmentOrReturnOfFieldWithMutableTypeInspection.java b/java/java-impl/src/com/siyeh/ig/encapsulation/AssignmentOrReturnOfFieldWithMutableTypeInspection.java index a8d889ddab15..579bae0d39a2 100644 --- a/java/java-impl/src/com/siyeh/ig/encapsulation/AssignmentOrReturnOfFieldWithMutableTypeInspection.java +++ b/java/java-impl/src/com/siyeh/ig/encapsulation/AssignmentOrReturnOfFieldWithMutableTypeInspection.java @@ -161,6 +161,7 @@ public final class AssignmentOrReturnOfFieldWithMutableTypeInspection extends Ba boolean reportAssignment = !ContainerUtil.or(recordClass.getConstructors(), c -> JavaPsiRecordUtil.isExplicitCanonicalConstructor(c)); for (PsiRecordComponent component : recordHeader.getRecordComponents()) { final PsiType type = component.getType(); + if (ClassUtils.isImmutable(type)) continue; final boolean mutable = type instanceof PsiArrayType || ContainerUtil.exists(MUTABLE_TYPES, typeName -> InheritanceUtil.isInheritor(type, typeName)); if (!mutable) continue; diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/encapsulation/assignment_or_return_of_field_with_mutable_type/AssignmentOrReturnOfFieldWithMutableType.java b/java/java-tests/testData/ig/com/siyeh/igtest/encapsulation/assignment_or_return_of_field_with_mutable_type/AssignmentOrReturnOfFieldWithMutableType.java index 92eca0c9a1a9..9965b8e7f46c 100644 --- a/java/java-tests/testData/ig/com/siyeh/igtest/encapsulation/assignment_or_return_of_field_with_mutable_type/AssignmentOrReturnOfFieldWithMutableType.java +++ b/java/java-tests/testData/ig/com/siyeh/igtest/encapsulation/assignment_or_return_of_field_with_mutable_type/AssignmentOrReturnOfFieldWithMutableType.java @@ -226,4 +226,6 @@ record Data4(Collection strings) { public Collection strings() { return strings; } +} +record Fooz(ImmutableList ints) { } \ No newline at end of file