コード例 #1
0
 protected virtual void _Generate(AstNodeStmReturn Return)
 {
     Output.Write("return");
     if (Return.Expression != null)
     {
         Output.Write(" ");
         Generate(Return.Expression);
     }
     Output.Write(";");
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }