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

changeset 1571
af8417e590f4
parent 1551
8cdd96f2fdb9
child 1581
4ff468de829d
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Mon Feb 04 18:08:53 2013 -0500
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Sun Feb 17 16:44:55 2013 -0500
     1.3 @@ -35,7 +35,7 @@
     1.4  import com.sun.tools.javac.comp.DeferredAttr.DeferredAttrContext;
     1.5  import com.sun.tools.javac.comp.DeferredAttr.DeferredType;
     1.6  import com.sun.tools.javac.comp.Infer.InferenceContext;
     1.7 -import com.sun.tools.javac.comp.Infer.InferenceContext.FreeTypeListener;
     1.8 +import com.sun.tools.javac.comp.Infer.FreeTypeListener;
     1.9  import com.sun.tools.javac.comp.Resolve.MethodResolutionContext.Candidate;
    1.10  import com.sun.tools.javac.jvm.*;
    1.11  import com.sun.tools.javac.tree.*;
    1.12 @@ -564,7 +564,7 @@
    1.13                                      methodCheck,
    1.14                                      warn);
    1.15  
    1.16 -        methodCheck.argumentsAcceptable(env, currentResolutionContext.deferredAttrContext(m, infer.emptyContext),
    1.17 +        methodCheck.argumentsAcceptable(env, currentResolutionContext.deferredAttrContext(m, infer.emptyContext, resultInfo, warn),
    1.18                                  argtypes, mt.getParameterTypes(), warn);
    1.19          return mt;
    1.20      }
    1.21 @@ -741,7 +741,7 @@
    1.22                  inferenceContext.addFreeTypeListener(List.of(t), new FreeTypeListener() {
    1.23                      @Override
    1.24                      public void typesInferred(InferenceContext inferenceContext) {
    1.25 -                        varargsAccessible(env, inferenceContext.asInstType(t, types), inferenceContext);
    1.26 +                        varargsAccessible(env, inferenceContext.asInstType(t), inferenceContext);
    1.27                      }
    1.28                  });
    1.29              } else {
    1.30 @@ -785,8 +785,8 @@
    1.31  
    1.32          public boolean compatible(Type found, Type req, Warner warn) {
    1.33              return strict ?
    1.34 -                    types.isSubtypeUnchecked(found, deferredAttrContext.inferenceContext.asFree(req, types), warn) :
    1.35 -                    types.isConvertible(found, deferredAttrContext.inferenceContext.asFree(req, types), warn);
    1.36 +                    types.isSubtypeUnchecked(found, deferredAttrContext.inferenceContext.asFree(req), warn) :
    1.37 +                    types.isConvertible(found, deferredAttrContext.inferenceContext.asFree(req), warn);
    1.38          }
    1.39  
    1.40          public void report(DiagnosticPosition pos, JCDiagnostic details) {
    1.41 @@ -3589,8 +3589,8 @@
    1.42              candidates = candidates.append(c);
    1.43          }
    1.44  
    1.45 -        DeferredAttrContext deferredAttrContext(Symbol sym, InferenceContext inferenceContext) {
    1.46 -            return deferredAttr.new DeferredAttrContext(attrMode, sym, step, inferenceContext);
    1.47 +        DeferredAttrContext deferredAttrContext(Symbol sym, InferenceContext inferenceContext, ResultInfo pendingResult, Warner warn) {
    1.48 +            return deferredAttr.new DeferredAttrContext(attrMode, sym, step, inferenceContext, pendingResult != null ? pendingResult.checkContext.deferredAttrContext() : deferredAttr.emptyDeferredAttrContext, warn);
    1.49          }
    1.50  
    1.51          /**

mercurial