--- old/src/share/classes/com/sun/tools/javac/code/Symbol.java 2014-05-09 16:27:51.122168873 -0400 +++ new/src/share/classes/com/sun/tools/javac/code/Symbol.java 2014-05-09 16:27:51.021164586 -0400 @@ -45,7 +45,7 @@ import static com.sun.tools.javac.code.TypeTag.CLASS; import static com.sun.tools.javac.code.TypeTag.FORALL; import static com.sun.tools.javac.code.TypeTag.TYPEVAR; -import com.sun.tools.javac.tree.JCTree.JCVariableDecl; +import com.sun.tools.javac.tree.JCTree.*; /** Root class for Java symbols. It contains subclasses * for specific sorts of symbols, such as variables, methods and operators, @@ -206,6 +206,12 @@ } } + public void appendDeclarationAttributes(List a) { + if (metadata != null || a.nonEmpty()) { + initedMetadata().append(a); + } + } + public void setTypeAttributes(List a) { if (metadata != null || a.nonEmpty()) { if (metadata == null) @@ -1252,11 +1258,15 @@ public void setLazyConstValue(final Env env, final Attr attr, - final JCVariableDecl variable) + final JCVariableDecl variable, + final JCLambda currentLambda, + final boolean speculative) { setData(new Callable() { public Object call() { - return attr.attribLazyConstantValue(env, variable, type); + return attr.attribLazyConstantValue(env, variable, type, + currentLambda, + speculative); } }); }