AbstractExpectedExceptionChecker.java 文件源码

java
阅读 65 收藏 0 点赞 0 评论 0

项目:error-prone 作者:
Description scanBlock(MethodTree tree, BlockTree block, VisitorState state) {
  PeekingIterator<? extends StatementTree> it =
      Iterators.peekingIterator(block.getStatements().iterator());
  while (it.hasNext() && !MATCHER.matches(it.peek(), state)) {
    it.next();
  }
  List<Tree> expectations = new ArrayList<>();
  while (it.hasNext() && MATCHER.matches(it.peek(), state)) {
    expectations.add(it.next());
  }
  if (expectations.isEmpty()) {
    return NO_MATCH;
  }
  Deque<StatementTree> suffix = new ArrayDeque<>();
  StatementTree failure = null;
  Iterators.addAll(suffix, it);
  if (!suffix.isEmpty() && FAIL_MATCHER.matches(suffix.peekLast(), state)) {
    failure = suffix.removeLast();
  }
  return handleMatch(tree, state, expectations, ImmutableList.copyOf(suffix), failure);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号