--- a/langtools/src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Fri Jul 05 11:02:17 2013 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Fri Jul 05 11:03:04 2013 +0100
@@ -95,7 +95,7 @@
make = TreeMaker.instance(context);
types = Types.instance(context);
Names names = Names.instance(context);
- stuckTree = make.Ident(names.empty).setType(Type.noType);
+ stuckTree = make.Ident(names.empty).setType(Type.stuckType);
}
/** shared tree for stuck expressions */
@@ -649,7 +649,12 @@
* a default expected type (j.l.Object).
*/
private Type recover(DeferredType dt) {
- dt.check(attr.new RecoveryInfo(deferredAttrContext));
+ dt.check(attr.new RecoveryInfo(deferredAttrContext) {
+ @Override
+ protected Type check(DiagnosticPosition pos, Type found) {
+ return chk.checkNonVoid(pos, super.check(pos, found));
+ }
+ });
return super.apply(dt);
}
}