#if NET20 || NET30 || !NET_4_6 // Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System.Collections.ObjectModel; using System.Reflection; namespace System.Linq.Expressions.Reimplement { internal class BinaryExpressionProxy { private readonly BinaryExpression _node; public BinaryExpressionProxy(BinaryExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public LambdaExpression Conversion { get { return _node.Conversion; } } public string DebugView { get { return _node.DebugView; } } public bool IsLifted { get { return _node.IsLifted; } } public bool IsLiftedToNull { get { return _node.IsLiftedToNull; } } public Expression Left { get { return _node.Left; } } public MethodInfo Method { get { return _node.Method; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Expression Right { get { return _node.Right; } } public Type Type { get { return _node.Type; } } } internal class BlockExpressionProxy { private readonly BlockExpression _node; public BlockExpressionProxy(BlockExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public ReadOnlyCollection Expressions { get { return _node.Expressions; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Expression Result { get { return _node.Result; } } public Type Type { get { return _node.Type; } } public ReadOnlyCollection Variables { get { return _node.Variables; } } } internal class CatchBlockProxy { private readonly CatchBlock _node; public CatchBlockProxy(CatchBlock node) { _node = node; } public Expression Body { get { return _node.Body; } } public Expression Filter { get { return _node.Filter; } } public Type Test { get { return _node.Test; } } public ParameterExpression Variable { get { return _node.Variable; } } } internal class ConditionalExpressionProxy { private readonly ConditionalExpression _node; public ConditionalExpressionProxy(ConditionalExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public Expression IfFalse { get { return _node.IfFalse; } } public Expression IfTrue { get { return _node.IfTrue; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Expression Test { get { return _node.Test; } } public Type Type { get { return _node.Type; } } } internal class ConstantExpressionProxy { private readonly ConstantExpression _node; public ConstantExpressionProxy(ConstantExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } public object Value { get { return _node.Value; } } } internal class DebugInfoExpressionProxy { private readonly DebugInfoExpression _node; public DebugInfoExpressionProxy(DebugInfoExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public SymbolDocumentInfo Document { get { return _node.Document; } } public int EndColumn { get { return _node.EndColumn; } } public int EndLine { get { return _node.EndLine; } } public bool IsClear { get { return _node.IsClear; } } public ExpressionType NodeType { get { return _node.NodeType; } } public int StartColumn { get { return _node.StartColumn; } } public int StartLine { get { return _node.StartLine; } } public Type Type { get { return _node.Type; } } } internal class DefaultExpressionProxy { private readonly DefaultExpression _node; public DefaultExpressionProxy(DefaultExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class GotoExpressionProxy { private readonly GotoExpression _node; public GotoExpressionProxy(GotoExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public GotoExpressionKind Kind { get { return _node.Kind; } } public ExpressionType NodeType { get { return _node.NodeType; } } public LabelTarget Target { get { return _node.Target; } } public Type Type { get { return _node.Type; } } public Expression Value { get { return _node.Value; } } } internal class IndexExpressionProxy { private readonly IndexExpression _node; public IndexExpressionProxy(IndexExpression node) { _node = node; } public ReadOnlyCollection Arguments { get { return _node.Arguments; } } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public PropertyInfo Indexer { get { return _node.Indexer; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Expression Object { get { return _node.Object; } } public Type Type { get { return _node.Type; } } } internal class InvocationExpressionProxy { private readonly InvocationExpression _node; public InvocationExpressionProxy(InvocationExpression node) { _node = node; } public ReadOnlyCollection Arguments { get { return _node.Arguments; } } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public Expression Expression { get { return _node.Expression; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class LabelExpressionProxy { private readonly LabelExpression _node; public LabelExpressionProxy(LabelExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public Expression DefaultValue { get { return _node.DefaultValue; } } public ExpressionType NodeType { get { return _node.NodeType; } } public LabelTarget Target { get { return _node.Target; } } public Type Type { get { return _node.Type; } } } internal class LambdaExpressionProxy { private readonly LambdaExpression _node; public LambdaExpressionProxy(LambdaExpression node) { _node = node; } public Expression Body { get { return _node.Body; } } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public string Name { get { return _node.Name; } } public ExpressionType NodeType { get { return _node.NodeType; } } public ReadOnlyCollection Parameters { get { return _node.Parameters; } } public Type ReturnType { get { return _node.ReturnType; } } public bool TailCall { get { return _node.TailCall; } } public Type Type { get { return _node.Type; } } } internal class ListInitExpressionProxy { private readonly ListInitExpression _node; public ListInitExpressionProxy(ListInitExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public ReadOnlyCollection Initializers { get { return _node.Initializers; } } public NewExpression NewExpression { get { return _node.NewExpression; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class LoopExpressionProxy { private readonly LoopExpression _node; public LoopExpressionProxy(LoopExpression node) { _node = node; } public Expression Body { get { return _node.Body; } } public LabelTarget BreakLabel { get { return _node.BreakLabel; } } public bool CanReduce { get { return _node.CanReduce; } } public LabelTarget ContinueLabel { get { return _node.ContinueLabel; } } public string DebugView { get { return _node.DebugView; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class MemberExpressionProxy { private readonly MemberExpression _node; public MemberExpressionProxy(MemberExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public Expression Expression { get { return _node.Expression; } } public MemberInfo Member { get { return _node.Member; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class MemberInitExpressionProxy { private readonly MemberInitExpression _node; public MemberInitExpressionProxy(MemberInitExpression node) { _node = node; } public ReadOnlyCollection Bindings { get { return _node.Bindings; } } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public NewExpression NewExpression { get { return _node.NewExpression; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class MethodCallExpressionProxy { private readonly MethodCallExpression _node; public MethodCallExpressionProxy(MethodCallExpression node) { _node = node; } public ReadOnlyCollection Arguments { get { return _node.Arguments; } } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public MethodInfo Method { get { return _node.Method; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Expression Object { get { return _node.Object; } } public Type Type { get { return _node.Type; } } } internal class NewArrayExpressionProxy { private readonly NewArrayExpression _node; public NewArrayExpressionProxy(NewArrayExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public ReadOnlyCollection Expressions { get { return _node.Expressions; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class NewExpressionProxy { private readonly NewExpression _node; public NewExpressionProxy(NewExpression node) { _node = node; } public ReadOnlyCollection Arguments { get { return _node.Arguments; } } public bool CanReduce { get { return _node.CanReduce; } } public ConstructorInfo Constructor { get { return _node.Constructor; } } public string DebugView { get { return _node.DebugView; } } public ReadOnlyCollection Members { get { return _node.Members; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class ParameterExpressionProxy { private readonly ParameterExpression _node; public ParameterExpressionProxy(ParameterExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public bool IsByRef { get { return _node.IsByRef; } } public string Name { get { return _node.Name; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class RuntimeVariablesExpressionProxy { private readonly RuntimeVariablesExpression _node; public RuntimeVariablesExpressionProxy(RuntimeVariablesExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } public ReadOnlyCollection Variables { get { return _node.Variables; } } } internal class SwitchCaseProxy { private readonly SwitchCase _node; public SwitchCaseProxy(SwitchCase node) { _node = node; } public Expression Body { get { return _node.Body; } } public ReadOnlyCollection TestValues { get { return _node.TestValues; } } } internal class SwitchExpressionProxy { private readonly SwitchExpression _node; public SwitchExpressionProxy(SwitchExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public ReadOnlyCollection Cases { get { return _node.Cases; } } public MethodInfo Comparison { get { return _node.Comparison; } } public string DebugView { get { return _node.DebugView; } } public Expression DefaultBody { get { return _node.DefaultBody; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Expression SwitchValue { get { return _node.SwitchValue; } } public Type Type { get { return _node.Type; } } } internal class TryExpressionProxy { private readonly TryExpression _node; public TryExpressionProxy(TryExpression node) { _node = node; } public Expression Body { get { return _node.Body; } } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public Expression Fault { get { return _node.Fault; } } public Expression Finally { get { return _node.Finally; } } public ReadOnlyCollection Handlers { get { return _node.Handlers; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } } internal class TypeBinaryExpressionProxy { private readonly TypeBinaryExpression _node; public TypeBinaryExpressionProxy(TypeBinaryExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public Expression Expression { get { return _node.Expression; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Type Type { get { return _node.Type; } } public Type TypeOperand { get { return _node.TypeOperand; } } } internal class UnaryExpressionProxy { private readonly UnaryExpression _node; public UnaryExpressionProxy(UnaryExpression node) { _node = node; } public bool CanReduce { get { return _node.CanReduce; } } public string DebugView { get { return _node.DebugView; } } public bool IsLifted { get { return _node.IsLifted; } } public bool IsLiftedToNull { get { return _node.IsLiftedToNull; } } public MethodInfo Method { get { return _node.Method; } } public ExpressionType NodeType { get { return _node.NodeType; } } public Expression Operand { get { return _node.Operand; } } public Type Type { get { return _node.Type; } } } } #endif