552 @Override |
552 @Override |
553 public void report(DiagnosticPosition pos, JCDiagnostic details) { |
553 public void report(DiagnosticPosition pos, JCDiagnostic details) { |
554 chk.basicHandler.report(pos, details); |
554 chk.basicHandler.report(pos, details); |
555 } |
555 } |
556 }); |
556 }); |
557 } |
|
558 |
|
559 @Override |
|
560 protected Type check(DiagnosticPosition pos, Type found) { |
|
561 return chk.checkNonVoid(pos, super.check(pos, found)); |
|
562 } |
557 } |
563 } |
558 } |
564 |
559 |
565 final ResultInfo statInfo; |
560 final ResultInfo statInfo; |
566 final ResultInfo varInfo; |
561 final ResultInfo varInfo; |
1695 if (env.info.returnResult.pt.hasTag(VOID)) { |
1690 if (env.info.returnResult.pt.hasTag(VOID)) { |
1696 env.info.returnResult.checkContext.report(tree.expr.pos(), |
1691 env.info.returnResult.checkContext.report(tree.expr.pos(), |
1697 diags.fragment("unexpected.ret.val")); |
1692 diags.fragment("unexpected.ret.val")); |
1698 } |
1693 } |
1699 attribTree(tree.expr, env, env.info.returnResult); |
1694 attribTree(tree.expr, env, env.info.returnResult); |
1700 } else if (!env.info.returnResult.pt.hasTag(VOID)) { |
1695 } else if (!env.info.returnResult.pt.hasTag(VOID) && |
|
1696 !env.info.returnResult.pt.hasTag(NONE)) { |
1701 env.info.returnResult.checkContext.report(tree.pos(), |
1697 env.info.returnResult.checkContext.report(tree.pos(), |
1702 diags.fragment("missing.ret.val")); |
1698 diags.fragment("missing.ret.val")); |
1703 } |
1699 } |
1704 } |
1700 } |
1705 result = null; |
1701 result = null; |