langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
changeset 14538 384681be798f
parent 14443 91c05eb19277
child 14541 36f9d11fc9aa
equal deleted inserted replaced
14537:ad188879b6fe 14538:384681be798f
  1358     void checkAutoCloseable(DiagnosticPosition pos, Env<AttrContext> env, Type resource) {
  1358     void checkAutoCloseable(DiagnosticPosition pos, Env<AttrContext> env, Type resource) {
  1359         if (!resource.isErroneous() &&
  1359         if (!resource.isErroneous() &&
  1360             types.asSuper(resource, syms.autoCloseableType.tsym) != null &&
  1360             types.asSuper(resource, syms.autoCloseableType.tsym) != null &&
  1361             !types.isSameType(resource, syms.autoCloseableType)) { // Don't emit warning for AutoCloseable itself
  1361             !types.isSameType(resource, syms.autoCloseableType)) { // Don't emit warning for AutoCloseable itself
  1362             Symbol close = syms.noSymbol;
  1362             Symbol close = syms.noSymbol;
  1363             Filter<JCDiagnostic> prevDeferDiagsFilter = log.deferredDiagFilter;
  1363             Log.DiagnosticHandler discardHandler = new Log.DiscardDiagnosticHandler(log);
  1364             Queue<JCDiagnostic> prevDeferredDiags = log.deferredDiagnostics;
       
  1365             try {
  1364             try {
  1366                 log.deferAll();
       
  1367                 log.deferredDiagnostics = ListBuffer.lb();
       
  1368                 close = rs.resolveQualifiedMethod(pos,
  1365                 close = rs.resolveQualifiedMethod(pos,
  1369                         env,
  1366                         env,
  1370                         resource,
  1367                         resource,
  1371                         names.close,
  1368                         names.close,
  1372                         List.<Type>nil(),
  1369                         List.<Type>nil(),
  1373                         List.<Type>nil());
  1370                         List.<Type>nil());
  1374             }
  1371             }
  1375             finally {
  1372             finally {
  1376                 log.deferredDiagFilter = prevDeferDiagsFilter;
  1373                 log.popDiagnosticHandler(discardHandler);
  1377                 log.deferredDiagnostics = prevDeferredDiags;
       
  1378             }
  1374             }
  1379             if (close.kind == MTH &&
  1375             if (close.kind == MTH &&
  1380                     close.overrides(syms.autoCloseableClose, resource.tsym, types, true) &&
  1376                     close.overrides(syms.autoCloseableClose, resource.tsym, types, true) &&
  1381                     chk.isHandled(syms.interruptedExceptionType, types.memberType(resource, close).getThrownTypes()) &&
  1377                     chk.isHandled(syms.interruptedExceptionType, types.memberType(resource, close).getThrownTypes()) &&
  1382                     env.info.lint.isEnabled(LintCategory.TRY)) {
  1378                     env.info.lint.isEnabled(LintCategory.TRY)) {