protected virtual void _Generate(AstNodeStmReturn Return) { Output.Write("return"); if (Return.Expression != null) { Output.Write(" "); Generate(Return.Expression); } Output.Write(";"); }
protected virtual void _Generate(AstNodeStmReturn Return) { var expressionType = Return.Expression != null ? Return.Expression.Type : typeof(void); if (expressionType != MethodInfo.ReturnType) { throw new Exception($"Return type mismatch {expressionType} != {MethodInfo.ReturnType}"); } if (Return.Expression != null) { Generate(Return.Expression); } Emit(OpCodes.Ret); }
protected virtual void _Generate(AstNodeStmReturn Return) { var ExpressionType = (Return.Expression != null) ? Return.Expression.Type : typeof(void); if (ExpressionType != MethodInfo.ReturnType) { throw (new Exception(String.Format("Return type mismatch {0} != {1}", ExpressionType, MethodInfo.ReturnType))); } if (Return.Expression != null) { Generate(Return.Expression); } Emit(OpCodes.Ret); }