public override IPStmt VisitReturnStmt(PParser.ReturnStmtContext context) { IPExpr returnValue = context.expr() == null ? null : exprVisitor.Visit(context.expr()); PLanguageType returnType = returnValue?.Type ?? PrimitiveType.Null; if (!method.Signature.ReturnType.IsAssignableFrom(returnType)) { throw handler.TypeMismatch(context, returnType, method.Signature.ReturnType); } return(new ReturnStmt(context, returnValue)); }
public override object VisitReturnStmt(PParser.ReturnStmtContext context) { return(null); }