/** Resolve all continues of this statement. */
boolean resolveContinues(JCTree tree) {
    boolean result = false;
    List<PendingExit> exits = pendingExits.toList();
    pendingExits = new ListBuffer<PendingExit>();

    for (; exits.nonEmpty(); exits = exits.tail) {
        PendingExit exit = exits.head;
        if (exit.tree.getTag() == JCTree.CONTINUE &&
                 ((JCContinue) exit.tree).target == tree) {

            inits.andSet(exit.inits); // 相当于取交集
            uninits.andSet(exit.uninits);
            result = true;
        } else {
            pendingExits.append(exit);
        }
    }
    return result;
}

调用的地方如下截图:

/** Resolve all breaks of this statement. */
boolean resolveBreaks(JCTree tree, // tree是break的跳出目标
                      ListBuffer<PendingExit> oldPendingExits) {
    boolean result = false;
    List<PendingExit> exits = pendingExits.toList();
    pendingExits = oldPendingExits;
    for (; exits.nonEmpty(); exits = exits.tail) {
        PendingExit exit = exits.head;
        if (exit.tree.getTag() == JCTree.BREAK &&
                    ((JCBreak) exit.tree).target == tree) {
            inits.andSet(exit.inits);
            uninits.andSet(exit.uninits);
            result = true;
        } else {
            pendingExits.append(exit);
        }
    }
    return result;
}

调用的地方如下:  

Flow类中的resolveBreaks与resolveContinues的更多相关文章

  1. 揭开C++类中虚表的“神秘面纱”

    C++类中的虚表结构是C++对象模型中一个重要的知识点,这里咱们就来深入分析下虚表的在内存中的结构. C++一个类中有虚函数的话就会有一个虚表指针,其指向对应的虚表,一般一个类只会有一个虚表,每个虚表 ...

  2. Python类中super()和__init__()的关系

    Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...

  3. Hibernate jpa 在实体类中对于时间的注解

    在时间类型DATE 属性上添加一个 @Temporal(TemporalType.DATE)(精确到年月日)@Temporal(TemporalType.TIME)(精确到时分秒)@Temporal( ...

  4. Java中是否可以调用一个类中的main方法?

    前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ...

  5. Myeclipse中导入项目后java类中汉字注释出现乱码问题(已解决)

    今天重装系统,安装了新的Myeclipse后,导入之前的项目后,,出现了乱码问题.乱码问题主要是java类中的注释,而jsp页面中汉字却完好如初: 右键项目,查看项目的编码格式,UTF-8,把java ...

  6. 解析C#类中的构造函数

    <解析C#类中的构造函数> 一.  C#中的构造函数概述: C#中类包含数据成员和函数成员.函数成员提供了操作类中数据的某些功能,包括方法.属性.构造器和终结器.运算符和索引器. 构造函数 ...

  7. junit4 assert类中的assert方法总结

    junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean cond ...

  8. 第6章 Java类中的方法

    1.如何定义java的方法 什么是方法:方法使用来解决一类问题的代码集合,是一个功能模块在类中定义个方法的方法是: 访问修饰符 返回值类型 方法名(参数列表){ 方法体 } 1.访问修饰符,是限制该方 ...

  9. Reader与InputStream两个类中的read()的区别

    InputStream类的read()方法是从流里面取出一个字节,他的函数原型是 int read(); ,Reader类的read()方法则是从流里面取出一个字符(一个char),他的函数原型也是  ...

随机推荐

  1. Content-Type,内容类型

    Content-Type,内容类型,一般是指网页中存在的Content-Type,ContentType属性指定请求和响应的HTTP内容类型.如果未指定 ContentType,默认为text/htm ...

  2. HDU1254 推箱子(BFS) 2016-07-24 14:24 86人阅读 评论(0) 收藏

    推箱子 Problem Description 推箱子是一个很经典的游戏.今天我们来玩一个简单版本.在一个M*N的房间里有一个箱子和一个搬运工,搬运工的工作就是把箱子推到指定的位置,注意,搬运工只能推 ...

  3. hdu 5066 小球碰撞(物理题)

    http://acm.hdu.edu.cn/showproblem.php?pid=5066 中学物理题 #include <cstdio> #include <cstdlib> ...

  4. Oracle sql 优化の常用方式

    1.不要用 '*' 代替所有列名,特别是字段比较多的情况下 使用select * 可以列出某个表的所有列名,但是这样的写法对于Oracle来说会存在动态解析问题.Oracle系统通过查询数据字典将 ' ...

  5. C# 使用log4net写日记

    一 导入LOG4NET 打开VS2012 工具>>库程序包管理器>>管理解决方案的NuGet程序包,搜索LOG4NET,如下图 二 添加配置文件log4net.config 在 ...

  6. 2D Circular Geometry Kernel ( Geometry Kernels) CGAL 4.13 -User Manual

    1 Introduction The goal of the circular kernel is to offer to the user a large set of functionalitie ...

  7. Asp.Net分页生成页码超链接方法

    namespace Common { public class PageLinkHelp { /// <summary> /// 生成分页超链接标签 /// 使用了Bootstrap3的分 ...

  8. 错误:Parameter '0' not found.Available parameters are [arg1, arg0, param1, param2]的解决方法

    调用的方法: List<Card> temp = cardService.queryRepeat(Type,shop); xml: <select id="queryRep ...

  9. XPath高级用法(冰山一角)

    运算符+内置函数 使用XPath选择元素时,使用运算符+内置函数来进行筛选: .//div[contains(@class,"ec_desc") or contains(@clas ...

  10. 如何使用socket进行java网络编程(五)

    本篇记录: 1.再谈readLine()方法 2.什么是真正的长连接 最近又参与了一个socket的项目,又遇到了老生常谈的readLine()问题:对方通过其vb程序向我方socketServer程 ...