--- a/langtools/src/share/classes/com/sun/tools/javac/comp/AttrContext.java Sat Sep 29 09:00:58 2012 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/AttrContext.java Thu Oct 04 13:04:53 2012 +0100
@@ -56,7 +56,7 @@
/** Are arguments to current function applications boxed into an array for varargs?
*/
- boolean varArgs = false;
+ Resolve.MethodResolutionPhase pendingResolutionPhase = null;
/** A record of the lint/SuppressWarnings currently in effect
*/
@@ -67,6 +67,11 @@
*/
Symbol enclVar = null;
+ /** ResultInfo to be used for attributing 'return' statement expressions
+ * (set by Attr.visitMethod and Attr.visitLambda)
+ */
+ Attr.ResultInfo returnResult = null;
+
/** Duplicate this context, replacing scope field and copying all others.
*/
AttrContext dup(Scope scope) {
@@ -75,9 +80,10 @@
info.staticLevel = staticLevel;
info.isSelfCall = isSelfCall;
info.selectSuper = selectSuper;
- info.varArgs = varArgs;
+ info.pendingResolutionPhase = pendingResolutionPhase;
info.lint = lint;
info.enclVar = enclVar;
+ info.returnResult = returnResult;
return info;
}
@@ -93,6 +99,11 @@
return scope.getElements();
}
+ boolean lastResolveVarargs() {
+ return pendingResolutionPhase != null &&
+ pendingResolutionPhase.isVarargsRequired();
+ }
+
public String toString() {
return "AttrContext[" + scope.toString() + "]";
}