langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java
changeset 18010 604faee85350
parent 17998 02a5abb2ae2f
child 18672 1d6d1be0a94f
equal deleted inserted replaced
18009:f47ea7c9c3f4 18010:604faee85350
   432             boolean alivePrev = alive;
   432             boolean alivePrev = alive;
   433             ListBuffer<PendingExit> pendingExitsPrev = pendingExits;
   433             ListBuffer<PendingExit> pendingExitsPrev = pendingExits;
   434             Lint lintPrev = lint;
   434             Lint lintPrev = lint;
   435 
   435 
   436             pendingExits = new ListBuffer<PendingExit>();
   436             pendingExits = new ListBuffer<PendingExit>();
   437             lint = lint.augment(tree.sym.annotations);
   437             lint = lint.augment(tree.sym);
   438 
   438 
   439             try {
   439             try {
   440                 // process all the static initializers
   440                 // process all the static initializers
   441                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   441                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   442                     if (!l.head.hasTag(METHODDEF) &&
   442                     if (!l.head.hasTag(METHODDEF) &&
   468 
   468 
   469         public void visitMethodDef(JCMethodDecl tree) {
   469         public void visitMethodDef(JCMethodDecl tree) {
   470             if (tree.body == null) return;
   470             if (tree.body == null) return;
   471             Lint lintPrev = lint;
   471             Lint lintPrev = lint;
   472 
   472 
   473             lint = lint.augment(tree.sym.annotations);
   473             lint = lint.augment(tree.sym);
   474 
   474 
   475             Assert.check(pendingExits.isEmpty());
   475             Assert.check(pendingExits.isEmpty());
   476 
   476 
   477             try {
   477             try {
   478                 alive = true;
   478                 alive = true;
   494         }
   494         }
   495 
   495 
   496         public void visitVarDef(JCVariableDecl tree) {
   496         public void visitVarDef(JCVariableDecl tree) {
   497             if (tree.init != null) {
   497             if (tree.init != null) {
   498                 Lint lintPrev = lint;
   498                 Lint lintPrev = lint;
   499                 lint = lint.augment(tree.sym.annotations);
   499                 lint = lint.augment(tree.sym);
   500                 try{
   500                 try{
   501                     scan(tree.init);
   501                     scan(tree.init);
   502                 } finally {
   502                 } finally {
   503                     lint = lintPrev;
   503                     lint = lintPrev;
   504                 }
   504                 }
   834             if (tree.name != names.empty) {
   834             if (tree.name != names.empty) {
   835                 caught = List.nil();
   835                 caught = List.nil();
   836             }
   836             }
   837             classDef = tree;
   837             classDef = tree;
   838             thrown = List.nil();
   838             thrown = List.nil();
   839             lint = lint.augment(tree.sym.annotations);
   839             lint = lint.augment(tree.sym);
   840 
   840 
   841             try {
   841             try {
   842                 // process all the static initializers
   842                 // process all the static initializers
   843                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   843                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   844                     if (!l.head.hasTag(METHODDEF) &&
   844                     if (!l.head.hasTag(METHODDEF) &&
   914 
   914 
   915             List<Type> caughtPrev = caught;
   915             List<Type> caughtPrev = caught;
   916             List<Type> mthrown = tree.sym.type.getThrownTypes();
   916             List<Type> mthrown = tree.sym.type.getThrownTypes();
   917             Lint lintPrev = lint;
   917             Lint lintPrev = lint;
   918 
   918 
   919             lint = lint.augment(tree.sym.annotations);
   919             lint = lint.augment(tree.sym);
   920 
   920 
   921             Assert.check(pendingExits.isEmpty());
   921             Assert.check(pendingExits.isEmpty());
   922 
   922 
   923             try {
   923             try {
   924                 for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
   924                 for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
   953         }
   953         }
   954 
   954 
   955         public void visitVarDef(JCVariableDecl tree) {
   955         public void visitVarDef(JCVariableDecl tree) {
   956             if (tree.init != null) {
   956             if (tree.init != null) {
   957                 Lint lintPrev = lint;
   957                 Lint lintPrev = lint;
   958                 lint = lint.augment(tree.sym.annotations);
   958                 lint = lint.augment(tree.sym);
   959                 try{
   959                 try{
   960                     scan(tree.init);
   960                     scan(tree.init);
   961                 } finally {
   961                 } finally {
   962                     lint = lintPrev;
   962                     lint = lintPrev;
   963                 }
   963                 }
  1578             pendingExits = new ListBuffer<AssignPendingExit>();
  1578             pendingExits = new ListBuffer<AssignPendingExit>();
  1579             if (tree.name != names.empty) {
  1579             if (tree.name != names.empty) {
  1580                 firstadr = nextadr;
  1580                 firstadr = nextadr;
  1581             }
  1581             }
  1582             classDef = tree;
  1582             classDef = tree;
  1583             lint = lint.augment(tree.sym.annotations);
  1583             lint = lint.augment(tree.sym);
  1584 
  1584 
  1585             try {
  1585             try {
  1586                 // define all the static fields
  1586                 // define all the static fields
  1587                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
  1587                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
  1588                     if (l.head.hasTag(VARDEF)) {
  1588                     if (l.head.hasTag(VARDEF)) {
  1646             int nextadrPrev = nextadr;
  1646             int nextadrPrev = nextadr;
  1647             int firstadrPrev = firstadr;
  1647             int firstadrPrev = firstadr;
  1648             int returnadrPrev = returnadr;
  1648             int returnadrPrev = returnadr;
  1649             Lint lintPrev = lint;
  1649             Lint lintPrev = lint;
  1650 
  1650 
  1651             lint = lint.augment(tree.sym.annotations);
  1651             lint = lint.augment(tree.sym);
  1652 
  1652 
  1653             Assert.check(pendingExits.isEmpty());
  1653             Assert.check(pendingExits.isEmpty());
  1654 
  1654 
  1655             try {
  1655             try {
  1656                 boolean isInitialConstructor =
  1656                 boolean isInitialConstructor =
  1698         public void visitVarDef(JCVariableDecl tree) {
  1698         public void visitVarDef(JCVariableDecl tree) {
  1699             boolean track = trackable(tree.sym);
  1699             boolean track = trackable(tree.sym);
  1700             if (track && tree.sym.owner.kind == MTH) newVar(tree.sym);
  1700             if (track && tree.sym.owner.kind == MTH) newVar(tree.sym);
  1701             if (tree.init != null) {
  1701             if (tree.init != null) {
  1702                 Lint lintPrev = lint;
  1702                 Lint lintPrev = lint;
  1703                 lint = lint.augment(tree.sym.annotations);
  1703                 lint = lint.augment(tree.sym);
  1704                 try{
  1704                 try{
  1705                     scanExpr(tree.init);
  1705                     scanExpr(tree.init);
  1706                     if (track) letInit(tree.pos(), tree.sym);
  1706                     if (track) letInit(tree.pos(), tree.sym);
  1707                 } finally {
  1707                 } finally {
  1708                     lint = lintPrev;
  1708                     lint = lintPrev;