This rule is defined by the following XPath expression:
//Statement[(ForStatement or WhileStatement) and count(*//AssignmentOperator[@Image = '='])=1 and */Statement [ ./Block/BlockStatement/Statement/StatementExpression/PrimaryExpression /PrimaryPrefix/Name/../../PrimarySuffix/Expression [(PrimaryExpression or AdditiveExpression) and count (.//PrimaryPrefix/Name)=1]//PrimaryPrefix/Name/@Image and ./Block/BlockStatement/Statement/StatementExpression/Expression/PrimaryExpression /PrimaryPrefix/Name/../../PrimarySuffix[count (..//PrimarySuffix)=1]/Expression[(PrimaryExpression or AdditiveExpression) and count(.//PrimaryPrefix/Name)=1] //PrimaryPrefix/Name/@Image ]]
Example:
public class Test { public void bar() { int[] a = new int[10]; int[] b = new int[10]; for (int i=0;i<10;i++) { b[i]=a[i]; } } } // this will trigger the rule for (int i=0;i<10;i++) { b[i]=a[c[i]]; } } }