--- old/src/share/classes/com/sun/tools/javac/code/Symtab.java 2010-07-14 01:57:37.000000000 -0700 +++ new/src/share/classes/com/sun/tools/javac/code/Symtab.java 2010-07-14 01:57:37.000000000 -0700 @@ -148,6 +148,7 @@ public final Type inheritedType; public final Type proprietaryType; public final Type systemType; + public final Type autoCloseableType; /** The symbol representing the length field of an array. */ @@ -159,6 +160,9 @@ /** The symbol representing the final finalize method on enums */ public final MethodSymbol enumFinalFinalize; + /** The symbol representing the close method on ARM AutoCloseable type */ + public final MethodSymbol autoCloseableClose; + /** The predefined type that belongs to a tag. */ public final Type[] typeOfTag = new Type[TypeTags.TypeTagCount]; @@ -444,6 +448,12 @@ suppressWarningsType = enterClass("java.lang.SuppressWarnings"); inheritedType = enterClass("java.lang.annotation.Inherited"); systemType = enterClass("java.lang.System"); + autoCloseableType = enterClass("java.lang.AutoCloseable"); + autoCloseableClose = new MethodSymbol(PUBLIC, + names.close, + new MethodType(List.nil(), voidType, + List.of(exceptionType), methodClass), + autoCloseableType.tsym); synthesizeEmptyInterfaceIfMissing(cloneableType); synthesizeEmptyInterfaceIfMissing(serializableType);