== Why is this an issue? include::../description.adoc[] [source,scala] ---- if (condition1) { if (condition2) { // Noncompliant /* ... */ } } ---- Will be more readable as [source,scala] ---- if (condition1 && condition2) { // Compliant /* ... */ } ---- == How to fix it If merging the conditions seems to result in a more complex code, extracting the condition or part of it in a named function or variable is a better approach to fix readability. === Code examples ==== Noncompliant code example [source,scala] ---- if (file != null) { if (file.isFile || file.isDirectory) { // Noncompliant /* ... */ } } ---- ==== Compliant solution [source,scala] ---- if (file != null && isFileOrDirectory(file)) { // Compliant /* ... */ } def isFileOrDirectory(file: File): Boolean = file.isFile || file.isDirectory ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::../message.adoc[] include::../highlighting.adoc[] ''' == Comments And Links (visible only on this page) include::../comments-and-links.adoc[] endif::env-github,rspecator-view[]