IronLua.Compiler.Scope.GetReturnLabel C# (CSharp) 메소드

GetReturnLabel() 공개 메소드

public GetReturnLabel ( ) : LabelTarget
리턴 System.Linq.Expressions.LabelTarget
        public LabelTarget GetReturnLabel()
        {
            if (returnLabel != null)
                return returnLabel;
            if (parent == null)
                return null;
            return parent.GetReturnLabel();
        }

Usage Example

예제 #1
0
        Expr ILastStatementVisitor <Expr> .Visit(LastStatement.Return lastStatement)
        {
            var returnLabel = scope.GetReturnLabel();

            if (returnLabel == null)
            {
                return(Expr.Empty());
            }

            var returnValues = lastStatement.Values
                               .Select(expr => Expr.Convert(expr.Visit(this), typeof(object))).ToArray();

            if (returnValues.Length == 0)
            {
                return(Expr.Return(returnLabel));
            }
            if (returnValues.Length == 1)
            {
                return(Expr.Return(returnLabel, returnValues[0]));
            }

            return(Expr.Return(
                       returnLabel,
                       Expr.New(MemberInfos.NewVarargs, Expr.NewArrayInit(typeof(object), returnValues))));
        }
All Usage Examples Of IronLua.Compiler.Scope::GetReturnLabel