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

changeset 1406
2901c7b5339e
parent 1393
d7d932236fee
child 1409
33abf479f202
equal deleted inserted replaced
1405:e6b1abdc11ca 1406:2901c7b5339e
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)) {

mercurial