public override InjectionValue VisitReturnStatement([NotNull] injectionParser.ReturnStatementContext context) { if (context.expression() != null) { var result = Visit(context.expression()); if (debugger != null) { debugger.BeforeReturn(new ReturnContext(context, result)); } if (result.Kind == InjectionValueKind.Array) { throw new StatementFailedException("Cannot return dim from a subrutine."); } return(result); } return(InjectionValue.Unit); }