Groovy Documentation

groovy.org.codenarc.rule.unnecessary
[Groovy] Class UnnecessaryIfStatementRule

java.lang.Object
  org.codenarc.rule.AbstractAstVisitorRule
      groovy.org.codenarc.rule.unnecessary.UnnecessaryIfStatementRule

class UnnecessaryIfStatementRule
extends AbstractAstVisitorRule

Rule that checks for unnecessary if statements. If/else statements are considered unnecessary for the four scenarios described below.

(1) When the if and else blocks contain only an explicit return of true and false constants. These cases can be replaced by a simple return statement. Examples include:

(2) When the if statement is the last statement in a block and the if and else blocks contain only true and false expressions. This is an implicit return of true/false. For example, the if statement in the following code can be replaced by someExpression: boolean myMethod() { doSomething() if (someExpression) true; else false } (3) When the second-to-last statement in a block is an if statement with no else, where the block contains a single return statement, and the last statement in the block is a return statement, and one return statement returns a true expression and the other returns a false expression. For example, the if statement in the following code can be replaced by return expression1: if (expression1) { return true } return false NOTE: This check is disabled by setting checkLastStatementImplicitElse to false. (4) When either the if block or else block of an if statement that is not the last statement in a block contain only a single constant or literal expression For example, the if statement in the following code has no effect and can be removed: def myMethod() { if (someExpression) { 123 } doSomething() }
Authors:
Chris Mair


Property Summary
Class astVisitorClass

boolean checkLastStatementImplicitElse

String name

int priority

 

Property Detail

astVisitorClass

Class astVisitorClass


checkLastStatementImplicitElse

boolean checkLastStatementImplicitElse


name

String name


priority

int priority


 

Groovy Documentation