@Override public boolean visitIfExpression(@NotNull UIfExpression node) { UExpression condition = node.getCondition(); UExpression body = node.getThenBranch(); UElement elseBody = node.getElseBranch(); condition.accept(this); if (body != null) { boolean wasReachable = mReachable; body.accept(this); mReachable = wasReachable; } if (elseBody != null) { boolean wasReachable = mReachable; elseBody.accept(this); mReachable = wasReachable; } return false; }
private static boolean isReachableFrom( @NonNull UElement method, @NonNull UCallExpression from, @NonNull UCallExpression to) { ReachableVisitor visitor = new ReachableVisitor(from, to); method.accept(visitor); return visitor.isReachable(); }