langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java
changeset 13689 4d519199a6aa
parent 13439 3025d6ac1401
child 14049 3207422a0f9b
equal deleted inserted replaced
13636:bee2d435e11f 13689:4d519199a6aa
   404             boolean alivePrev = alive;
   404             boolean alivePrev = alive;
   405             ListBuffer<PendingExit> pendingExitsPrev = pendingExits;
   405             ListBuffer<PendingExit> pendingExitsPrev = pendingExits;
   406             Lint lintPrev = lint;
   406             Lint lintPrev = lint;
   407 
   407 
   408             pendingExits = new ListBuffer<PendingExit>();
   408             pendingExits = new ListBuffer<PendingExit>();
   409             lint = lint.augment(tree.sym.attributes_field);
   409             lint = lint.augment(tree.sym.annotations);
   410 
   410 
   411             try {
   411             try {
   412                 // process all the static initializers
   412                 // process all the static initializers
   413                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   413                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   414                     if (!l.head.hasTag(METHODDEF) &&
   414                     if (!l.head.hasTag(METHODDEF) &&
   440 
   440 
   441         public void visitMethodDef(JCMethodDecl tree) {
   441         public void visitMethodDef(JCMethodDecl tree) {
   442             if (tree.body == null) return;
   442             if (tree.body == null) return;
   443             Lint lintPrev = lint;
   443             Lint lintPrev = lint;
   444 
   444 
   445             lint = lint.augment(tree.sym.attributes_field);
   445             lint = lint.augment(tree.sym.annotations);
   446 
   446 
   447             Assert.check(pendingExits.isEmpty());
   447             Assert.check(pendingExits.isEmpty());
   448 
   448 
   449             try {
   449             try {
   450                 alive = true;
   450                 alive = true;
   466         }
   466         }
   467 
   467 
   468         public void visitVarDef(JCVariableDecl tree) {
   468         public void visitVarDef(JCVariableDecl tree) {
   469             if (tree.init != null) {
   469             if (tree.init != null) {
   470                 Lint lintPrev = lint;
   470                 Lint lintPrev = lint;
   471                 lint = lint.augment(tree.sym.attributes_field);
   471                 lint = lint.augment(tree.sym.annotations);
   472                 try{
   472                 try{
   473                     scan(tree.init);
   473                     scan(tree.init);
   474                 } finally {
   474                 } finally {
   475                     lint = lintPrev;
   475                     lint = lintPrev;
   476                 }
   476                 }
   781             if (tree.name != names.empty) {
   781             if (tree.name != names.empty) {
   782                 caught = List.nil();
   782                 caught = List.nil();
   783             }
   783             }
   784             classDef = tree;
   784             classDef = tree;
   785             thrown = List.nil();
   785             thrown = List.nil();
   786             lint = lint.augment(tree.sym.attributes_field);
   786             lint = lint.augment(tree.sym.annotations);
   787 
   787 
   788             try {
   788             try {
   789                 // process all the static initializers
   789                 // process all the static initializers
   790                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   790                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
   791                     if (!l.head.hasTag(METHODDEF) &&
   791                     if (!l.head.hasTag(METHODDEF) &&
   861 
   861 
   862             List<Type> caughtPrev = caught;
   862             List<Type> caughtPrev = caught;
   863             List<Type> mthrown = tree.sym.type.getThrownTypes();
   863             List<Type> mthrown = tree.sym.type.getThrownTypes();
   864             Lint lintPrev = lint;
   864             Lint lintPrev = lint;
   865 
   865 
   866             lint = lint.augment(tree.sym.attributes_field);
   866             lint = lint.augment(tree.sym.annotations);
   867 
   867 
   868             Assert.check(pendingExits.isEmpty());
   868             Assert.check(pendingExits.isEmpty());
   869 
   869 
   870             try {
   870             try {
   871                 for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
   871                 for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
   900         }
   900         }
   901 
   901 
   902         public void visitVarDef(JCVariableDecl tree) {
   902         public void visitVarDef(JCVariableDecl tree) {
   903             if (tree.init != null) {
   903             if (tree.init != null) {
   904                 Lint lintPrev = lint;
   904                 Lint lintPrev = lint;
   905                 lint = lint.augment(tree.sym.attributes_field);
   905                 lint = lint.augment(tree.sym.annotations);
   906                 try{
   906                 try{
   907                     scan(tree.init);
   907                     scan(tree.init);
   908                 } finally {
   908                 } finally {
   909                     lint = lintPrev;
   909                     lint = lintPrev;
   910                 }
   910                 }
  1489             pendingExits = new ListBuffer<AssignPendingExit>();
  1489             pendingExits = new ListBuffer<AssignPendingExit>();
  1490             if (tree.name != names.empty) {
  1490             if (tree.name != names.empty) {
  1491                 firstadr = nextadr;
  1491                 firstadr = nextadr;
  1492             }
  1492             }
  1493             classDef = tree;
  1493             classDef = tree;
  1494             lint = lint.augment(tree.sym.attributes_field);
  1494             lint = lint.augment(tree.sym.annotations);
  1495 
  1495 
  1496             try {
  1496             try {
  1497                 // define all the static fields
  1497                 // define all the static fields
  1498                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
  1498                 for (List<JCTree> l = tree.defs; l.nonEmpty(); l = l.tail) {
  1499                     if (l.head.hasTag(VARDEF)) {
  1499                     if (l.head.hasTag(VARDEF)) {
  1556             Bits uninitsPrev = uninits.dup();
  1556             Bits uninitsPrev = uninits.dup();
  1557             int nextadrPrev = nextadr;
  1557             int nextadrPrev = nextadr;
  1558             int firstadrPrev = firstadr;
  1558             int firstadrPrev = firstadr;
  1559             Lint lintPrev = lint;
  1559             Lint lintPrev = lint;
  1560 
  1560 
  1561             lint = lint.augment(tree.sym.attributes_field);
  1561             lint = lint.augment(tree.sym.annotations);
  1562 
  1562 
  1563             Assert.check(pendingExits.isEmpty());
  1563             Assert.check(pendingExits.isEmpty());
  1564 
  1564 
  1565             try {
  1565             try {
  1566                 boolean isInitialConstructor =
  1566                 boolean isInitialConstructor =
  1607         public void visitVarDef(JCVariableDecl tree) {
  1607         public void visitVarDef(JCVariableDecl tree) {
  1608             boolean track = trackable(tree.sym);
  1608             boolean track = trackable(tree.sym);
  1609             if (track && tree.sym.owner.kind == MTH) newVar(tree.sym);
  1609             if (track && tree.sym.owner.kind == MTH) newVar(tree.sym);
  1610             if (tree.init != null) {
  1610             if (tree.init != null) {
  1611                 Lint lintPrev = lint;
  1611                 Lint lintPrev = lint;
  1612                 lint = lint.augment(tree.sym.attributes_field);
  1612                 lint = lint.augment(tree.sym.annotations);
  1613                 try{
  1613                 try{
  1614                     scanExpr(tree.init);
  1614                     scanExpr(tree.init);
  1615                     if (track) letInit(tree.pos(), tree.sym);
  1615                     if (track) letInit(tree.pos(), tree.sym);
  1616                 } finally {
  1616                 } finally {
  1617                     lint = lintPrev;
  1617                     lint = lintPrev;