--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Wed Sep 12 17:45:22 2018 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Mon Sep 10 16:59:41 2018 -0700
@@ -169,7 +169,7 @@
@Override
public void setOverloadKind(OverloadKind overloadKind) {
OverloadKind previous = t.getOverloadKind();
- if (previous == null) {
+ if (previous == null || previous == OverloadKind.ERROR) {
t.setOverloadKind(overloadKind);
} else {
Assert.check(previous == overloadKind);
@@ -1240,7 +1240,7 @@
Type descType = types.findDescriptorType(pt);
List<Type> freeArgVars = inferenceContext.freeVarsIn(descType.getParameterTypes());
if (freeArgVars.nonEmpty() &&
- tree.getOverloadKind() == JCMemberReference.OverloadKind.OVERLOADED) {
+ tree.getOverloadKind() != JCMemberReference.OverloadKind.UNOVERLOADED) {
stuckVars.addAll(freeArgVars);
depVars.addAll(inferenceContext.freeVarsIn(descType.getReturnType()));
}
@@ -1305,7 +1305,7 @@
@Override
public void visitReference(JCMemberReference tree) {
super.visitReference(tree);
- if (tree.getOverloadKind() == JCMemberReference.OverloadKind.OVERLOADED) {
+ if (tree.getOverloadKind() != JCMemberReference.OverloadKind.UNOVERLOADED) {
stuck = true;
}
}