40 import com.sun.tools.javac.code.Lint.LintCategory; |
40 import com.sun.tools.javac.code.Lint.LintCategory; |
41 import com.sun.tools.javac.code.Type.*; |
41 import com.sun.tools.javac.code.Type.*; |
42 import com.sun.tools.javac.code.Symbol.*; |
42 import com.sun.tools.javac.code.Symbol.*; |
43 import com.sun.tools.javac.comp.DeferredAttr.DeferredAttrContext; |
43 import com.sun.tools.javac.comp.DeferredAttr.DeferredAttrContext; |
44 import com.sun.tools.javac.comp.Infer.InferenceContext; |
44 import com.sun.tools.javac.comp.Infer.InferenceContext; |
45 import com.sun.tools.javac.comp.Infer.InferenceContext.FreeTypeListener; |
45 import com.sun.tools.javac.comp.Infer.FreeTypeListener; |
46 import com.sun.tools.javac.tree.JCTree.*; |
46 import com.sun.tools.javac.tree.JCTree.*; |
47 import com.sun.tools.javac.tree.JCTree.JCPolyExpression.*; |
47 import com.sun.tools.javac.tree.JCTree.JCPolyExpression.*; |
48 |
48 |
49 import static com.sun.tools.javac.code.Flags.*; |
49 import static com.sun.tools.javac.code.Flags.*; |
50 import static com.sun.tools.javac.code.Flags.ANNOTATION; |
50 import static com.sun.tools.javac.code.Flags.ANNOTATION; |
528 final Infer.InferenceContext inferenceContext = checkContext.inferenceContext(); |
528 final Infer.InferenceContext inferenceContext = checkContext.inferenceContext(); |
529 if (inferenceContext.free(req)) { |
529 if (inferenceContext.free(req)) { |
530 inferenceContext.addFreeTypeListener(List.of(req), new FreeTypeListener() { |
530 inferenceContext.addFreeTypeListener(List.of(req), new FreeTypeListener() { |
531 @Override |
531 @Override |
532 public void typesInferred(InferenceContext inferenceContext) { |
532 public void typesInferred(InferenceContext inferenceContext) { |
533 checkType(pos, found, inferenceContext.asInstType(req, types), checkContext); |
533 checkType(pos, found, inferenceContext.asInstType(req), checkContext); |
534 } |
534 } |
535 }); |
535 }); |
536 } |
536 } |
537 if (req.hasTag(ERROR)) |
537 if (req.hasTag(ERROR)) |
538 return req; |
538 return req; |