private static boolean whileStatementsAreEquivalent( @NotNull GrWhileStatement statement1, @NotNull GrWhileStatement statement2) { final GrExpression condition1 = (GrExpression) statement1.getCondition(); final GrExpression condition2 = (GrExpression) statement2.getCondition(); final GrStatement body1 = statement1.getBody(); final GrStatement body2 = statement2.getBody(); return expressionsAreEquivalent(condition1, condition2) && statementsAreEquivalent(body1, body2); }
public void visitWhileStatement(GrWhileStatement whileStatement) { if (myExpression.equals(whileStatement.getCondition())) { myResult = new TypeConstraint[] { new SubtypeConstraint(TypesUtil.getJavaLangObject(whileStatement), PsiType.BOOLEAN) }; } }
public void visitWhileStatement(GrWhileStatement whileStatement) { final InstructionImpl instruction = startNode(whileStatement); final GrCondition condition = whileStatement.getCondition(); if (condition != null) { condition.accept(this); } if (!alwaysTrue(condition)) { addPendingEdge(whileStatement, myHead); // break } final GrCondition body = whileStatement.getBody(); if (body != null) { body.accept(this); } checkPending(instruction); // check for breaks targeted here if (myHead != null) addEdge(myHead, instruction); // loop interruptFlow(); finishNode(instruction); }