src/share/classes/com/sun/tools/javac/comp/Flow.java

changeset 1127
ca49d50318dc
parent 990
9a847a77205d
child 1237
568e70bbd9aa
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Flow.java	Sat Nov 05 00:02:33 2011 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Flow.java	Tue Nov 08 11:51:05 2011 -0800
     1.3 @@ -40,8 +40,10 @@
     1.4  import com.sun.tools.javac.tree.JCTree.*;
     1.5  
     1.6  import static com.sun.tools.javac.code.Flags.*;
     1.7 +import static com.sun.tools.javac.code.Flags.BLOCK;
     1.8  import static com.sun.tools.javac.code.Kinds.*;
     1.9  import static com.sun.tools.javac.code.TypeTags.*;
    1.10 +import static com.sun.tools.javac.tree.JCTree.Tag.*;
    1.11  
    1.12  /** This pass implements dataflow analysis for Java programs.
    1.13   *  Liveness analysis checks that every statement is reachable.
    1.14 @@ -321,7 +323,7 @@
    1.15                  log.error(exit.tree.pos(),
    1.16                          "unreported.exception.default.constructor",
    1.17                          exit.thrown);
    1.18 -            } else if (exit.tree.getTag() == JCTree.VARDEF &&
    1.19 +            } else if (exit.tree.hasTag(VARDEF) &&
    1.20                      ((JCVariableDecl)exit.tree).sym.isResourceVariable()) {
    1.21                  log.error(exit.tree.pos(),
    1.22                          "unreported.exception.implicit.close",
    1.23 @@ -416,7 +418,7 @@
    1.24       */
    1.25      void letInit(JCTree tree) {
    1.26          tree = TreeInfo.skipParens(tree);
    1.27 -        if (tree.getTag() == JCTree.IDENT || tree.getTag() == JCTree.SELECT) {
    1.28 +        if (tree.hasTag(IDENT) || tree.hasTag(SELECT)) {
    1.29              Symbol sym = TreeInfo.symbol(tree);
    1.30              if (sym.kind == VAR) {
    1.31                  letInit(tree.pos(), (VarSymbol)sym);
    1.32 @@ -452,7 +454,7 @@
    1.33          pendingExits = oldPendingExits;
    1.34          for (; exits.nonEmpty(); exits = exits.tail) {
    1.35              PendingExit exit = exits.head;
    1.36 -            if (exit.tree.getTag() == JCTree.BREAK &&
    1.37 +            if (exit.tree.hasTag(BREAK) &&
    1.38                  ((JCBreak) exit.tree).target == tree) {
    1.39                  inits.andSet(exit.inits);
    1.40                  uninits.andSet(exit.uninits);
    1.41 @@ -471,7 +473,7 @@
    1.42          pendingExits = new ListBuffer<PendingExit>();
    1.43          for (; exits.nonEmpty(); exits = exits.tail) {
    1.44              PendingExit exit = exits.head;
    1.45 -            if (exit.tree.getTag() == JCTree.CONTINUE &&
    1.46 +            if (exit.tree.hasTag(CONTINUE) &&
    1.47                  ((JCContinue) exit.tree).target == tree) {
    1.48                  inits.andSet(exit.inits);
    1.49                  uninits.andSet(exit.uninits);
    1.50 @@ -517,7 +519,7 @@
    1.51       */
    1.52      void scanDef(JCTree tree) {
    1.53          scanStat(tree);
    1.54 -        if (tree != null && tree.getTag() == JCTree.BLOCK && !alive) {
    1.55 +        if (tree != null && tree.hasTag(JCTree.Tag.BLOCK) && !alive) {
    1.56              log.error(tree.pos(),
    1.57                        "initializer.must.be.able.to.complete.normally");
    1.58          }
    1.59 @@ -528,7 +530,7 @@
    1.60      void scanStat(JCTree tree) {
    1.61          if (!alive && tree != null) {
    1.62              log.error(tree.pos(), "unreachable.stmt");
    1.63 -            if (tree.getTag() != JCTree.SKIP) alive = true;
    1.64 +            if (!tree.hasTag(SKIP)) alive = true;
    1.65          }
    1.66          scan(tree);
    1.67      }
    1.68 @@ -614,7 +616,7 @@
    1.69          try {
    1.70              // define all the static fields
    1.71              for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
    1.72 -                if (l.head.getTag() == JCTree.VARDEF) {
    1.73 +                if (l.head.hasTag(VARDEF)) {
    1.74                      JCVariableDecl def = (JCVariableDecl)l.head;
    1.75                      if ((def.mods.flags & STATIC) != 0) {
    1.76                          VarSymbol sym = def.sym;
    1.77 @@ -626,7 +628,7 @@
    1.78  
    1.79              // process all the static initializers
    1.80              for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
    1.81 -                if (l.head.getTag() != JCTree.METHODDEF &&
    1.82 +                if (!l.head.hasTag(METHODDEF) &&
    1.83                      (TreeInfo.flags(l.head) & STATIC) != 0) {
    1.84                      scanDef(l.head);
    1.85                      errorUncaught();
    1.86 @@ -653,7 +655,7 @@
    1.87  
    1.88              // define all the instance fields
    1.89              for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
    1.90 -                if (l.head.getTag() == JCTree.VARDEF) {
    1.91 +                if (l.head.hasTag(VARDEF)) {
    1.92                      JCVariableDecl def = (JCVariableDecl)l.head;
    1.93                      if ((def.mods.flags & STATIC) == 0) {
    1.94                          VarSymbol sym = def.sym;
    1.95 @@ -665,7 +667,7 @@
    1.96  
    1.97              // process all the instance initializers
    1.98              for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
    1.99 -                if (l.head.getTag() != JCTree.METHODDEF &&
   1.100 +                if (!l.head.hasTag(METHODDEF) &&
   1.101                      (TreeInfo.flags(l.head) & STATIC) == 0) {
   1.102                      scanDef(l.head);
   1.103                      errorUncaught();
   1.104 @@ -691,7 +693,7 @@
   1.105  
   1.106              // process all the methods
   1.107              for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   1.108 -                if (l.head.getTag() == JCTree.METHODDEF) {
   1.109 +                if (l.head.hasTag(METHODDEF)) {
   1.110                      scan(l.head);
   1.111                      errorUncaught();
   1.112                  }
   1.113 @@ -760,7 +762,7 @@
   1.114                  PendingExit exit = exits.head;
   1.115                  exits = exits.tail;
   1.116                  if (exit.thrown == null) {
   1.117 -                    Assert.check(exit.tree.getTag() == JCTree.RETURN);
   1.118 +                    Assert.check(exit.tree.hasTag(RETURN));
   1.119                      if (isInitialConstructor) {
   1.120                          inits = exit.inits;
   1.121                          for (int i = firstadr; i < nextadr; i++)
   1.122 @@ -989,7 +991,7 @@
   1.123                                      Bits uninits) {
   1.124              for (;stats.nonEmpty(); stats = stats.tail) {
   1.125                  JCTree stat = stats.head;
   1.126 -                if (stat.getTag() == JCTree.VARDEF) {
   1.127 +                if (stat.hasTag(VARDEF)) {
   1.128                      int adr = ((JCVariableDecl) stat).sym.adr;
   1.129                      inits.excl(adr);
   1.130                      uninits.incl(adr);
   1.131 @@ -1346,7 +1348,7 @@
   1.132  
   1.133      public void visitUnary(JCUnary tree) {
   1.134          switch (tree.getTag()) {
   1.135 -        case JCTree.NOT:
   1.136 +        case NOT:
   1.137              scanCond(tree.arg);
   1.138              Bits t = initsWhenFalse;
   1.139              initsWhenFalse = initsWhenTrue;
   1.140 @@ -1355,8 +1357,8 @@
   1.141              uninitsWhenFalse = uninitsWhenTrue;
   1.142              uninitsWhenTrue = t;
   1.143              break;
   1.144 -        case JCTree.PREINC: case JCTree.POSTINC:
   1.145 -        case JCTree.PREDEC: case JCTree.POSTDEC:
   1.146 +        case PREINC: case POSTINC:
   1.147 +        case PREDEC: case POSTDEC:
   1.148              scanExpr(tree.arg);
   1.149              letInit(tree.arg);
   1.150              break;
   1.151 @@ -1367,7 +1369,7 @@
   1.152  
   1.153      public void visitBinary(JCBinary tree) {
   1.154          switch (tree.getTag()) {
   1.155 -        case JCTree.AND:
   1.156 +        case AND:
   1.157              scanCond(tree.lhs);
   1.158              Bits initsWhenFalseLeft = initsWhenFalse;
   1.159              Bits uninitsWhenFalseLeft = uninitsWhenFalse;
   1.160 @@ -1377,7 +1379,7 @@
   1.161              initsWhenFalse.andSet(initsWhenFalseLeft);
   1.162              uninitsWhenFalse.andSet(uninitsWhenFalseLeft);
   1.163              break;
   1.164 -        case JCTree.OR:
   1.165 +        case OR:
   1.166              scanCond(tree.lhs);
   1.167              Bits initsWhenTrueLeft = initsWhenTrue;
   1.168              Bits uninitsWhenTrueLeft = uninitsWhenTrue;
   1.169 @@ -1418,7 +1420,7 @@
   1.170          private boolean is292targetTypeCast(JCTypeCast tree) {
   1.171              boolean is292targetTypeCast = false;
   1.172              JCExpression expr = TreeInfo.skipParens(tree.expr);
   1.173 -            if (expr.getTag() == JCTree.APPLY) {
   1.174 +            if (expr.hasTag(APPLY)) {
   1.175                  JCMethodInvocation apply = (JCMethodInvocation)expr;
   1.176                  Symbol sym = TreeInfo.symbol(apply.meth);
   1.177                  is292targetTypeCast = sym != null &&

mercurial