1 /* ****************************************************************************
3 * Copyright (c) Microsoft Corporation.
5 * This source code is subject to terms and conditions of the Apache License, Version 2.0. A
6 * copy of the license can be found in the License.html file at the root of this distribution. If
7 * you cannot locate the Apache License, Version 2.0, please send an email to
8 * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
9 * by the terms of the Apache License, Version 2.0.
11 * You must not remove this notice, or any other, from this software.
14 * ***************************************************************************/
17 using System.Collections.ObjectModel;
18 using System.Reflection;
19 using System.Runtime.CompilerServices;
22 namespace Microsoft.Scripting.Ast {
24 namespace System.Linq.Expressions {
27 public partial class Expression {
28 #region Generated Expression Debugger Proxies
30 // *** BEGIN GENERATED CODE ***
31 // generated by function: gen_debug_proxies from: generate_tree.py
33 internal class BinaryExpressionProxy {
34 private readonly BinaryExpression _node;
36 public BinaryExpressionProxy(BinaryExpression node) {
40 public Boolean CanReduce { get { return _node.CanReduce; } }
41 public LambdaExpression Conversion { get { return _node.Conversion; } }
42 public String DebugView { get { return _node.DebugView; } }
43 public Boolean IsLifted { get { return _node.IsLifted; } }
44 public Boolean IsLiftedToNull { get { return _node.IsLiftedToNull; } }
45 public Expression Left { get { return _node.Left; } }
46 public MethodInfo Method { get { return _node.Method; } }
47 public ExpressionType NodeType { get { return _node.NodeType; } }
48 public Expression Right { get { return _node.Right; } }
49 public Type Type { get { return _node.Type; } }
52 internal class BlockExpressionProxy {
53 private readonly BlockExpression _node;
55 public BlockExpressionProxy(BlockExpression node) {
59 public Boolean CanReduce { get { return _node.CanReduce; } }
60 public String DebugView { get { return _node.DebugView; } }
61 public ReadOnlyCollection<Expression> Expressions { get { return _node.Expressions; } }
62 public ExpressionType NodeType { get { return _node.NodeType; } }
63 public Expression Result { get { return _node.Result; } }
64 public Type Type { get { return _node.Type; } }
65 public ReadOnlyCollection<ParameterExpression> Variables { get { return _node.Variables; } }
68 internal class CatchBlockProxy {
69 private readonly CatchBlock _node;
71 public CatchBlockProxy(CatchBlock node) {
75 public Expression Body { get { return _node.Body; } }
76 public Expression Filter { get { return _node.Filter; } }
77 public Type Test { get { return _node.Test; } }
78 public ParameterExpression Variable { get { return _node.Variable; } }
81 internal class ConditionalExpressionProxy {
82 private readonly ConditionalExpression _node;
84 public ConditionalExpressionProxy(ConditionalExpression node) {
88 public Boolean CanReduce { get { return _node.CanReduce; } }
89 public String DebugView { get { return _node.DebugView; } }
90 public Expression IfFalse { get { return _node.IfFalse; } }
91 public Expression IfTrue { get { return _node.IfTrue; } }
92 public ExpressionType NodeType { get { return _node.NodeType; } }
93 public Expression Test { get { return _node.Test; } }
94 public Type Type { get { return _node.Type; } }
97 internal class ConstantExpressionProxy {
98 private readonly ConstantExpression _node;
100 public ConstantExpressionProxy(ConstantExpression node) {
104 public Boolean CanReduce { get { return _node.CanReduce; } }
105 public String DebugView { get { return _node.DebugView; } }
106 public ExpressionType NodeType { get { return _node.NodeType; } }
107 public Type Type { get { return _node.Type; } }
108 public Object Value { get { return _node.Value; } }
111 internal class DebugInfoExpressionProxy {
112 private readonly DebugInfoExpression _node;
114 public DebugInfoExpressionProxy(DebugInfoExpression node) {
118 public Boolean CanReduce { get { return _node.CanReduce; } }
119 public String DebugView { get { return _node.DebugView; } }
120 public SymbolDocumentInfo Document { get { return _node.Document; } }
121 public Int32 EndColumn { get { return _node.EndColumn; } }
122 public Int32 EndLine { get { return _node.EndLine; } }
123 public Boolean IsClear { get { return _node.IsClear; } }
124 public ExpressionType NodeType { get { return _node.NodeType; } }
125 public Int32 StartColumn { get { return _node.StartColumn; } }
126 public Int32 StartLine { get { return _node.StartLine; } }
127 public Type Type { get { return _node.Type; } }
130 internal class DefaultExpressionProxy {
131 private readonly DefaultExpression _node;
133 public DefaultExpressionProxy(DefaultExpression node) {
137 public Boolean CanReduce { get { return _node.CanReduce; } }
138 public String DebugView { get { return _node.DebugView; } }
139 public ExpressionType NodeType { get { return _node.NodeType; } }
140 public Type Type { get { return _node.Type; } }
143 internal class DynamicExpressionProxy {
144 private readonly DynamicExpression _node;
146 public DynamicExpressionProxy(DynamicExpression node) {
150 public ReadOnlyCollection<Expression> Arguments { get { return _node.Arguments; } }
151 public CallSiteBinder Binder { get { return _node.Binder; } }
152 public Boolean CanReduce { get { return _node.CanReduce; } }
153 public String DebugView { get { return _node.DebugView; } }
154 public Type DelegateType { get { return _node.DelegateType; } }
155 public ExpressionType NodeType { get { return _node.NodeType; } }
156 public Type Type { get { return _node.Type; } }
159 internal class GotoExpressionProxy {
160 private readonly GotoExpression _node;
162 public GotoExpressionProxy(GotoExpression node) {
166 public Boolean CanReduce { get { return _node.CanReduce; } }
167 public String DebugView { get { return _node.DebugView; } }
168 public GotoExpressionKind Kind { get { return _node.Kind; } }
169 public ExpressionType NodeType { get { return _node.NodeType; } }
170 public LabelTarget Target { get { return _node.Target; } }
171 public Type Type { get { return _node.Type; } }
172 public Expression Value { get { return _node.Value; } }
175 internal class IndexExpressionProxy {
176 private readonly IndexExpression _node;
178 public IndexExpressionProxy(IndexExpression node) {
182 public ReadOnlyCollection<Expression> Arguments { get { return _node.Arguments; } }
183 public Boolean CanReduce { get { return _node.CanReduce; } }
184 public String DebugView { get { return _node.DebugView; } }
185 public PropertyInfo Indexer { get { return _node.Indexer; } }
186 public ExpressionType NodeType { get { return _node.NodeType; } }
187 public Expression Object { get { return _node.Object; } }
188 public Type Type { get { return _node.Type; } }
191 internal class InvocationExpressionProxy {
192 private readonly InvocationExpression _node;
194 public InvocationExpressionProxy(InvocationExpression node) {
198 public ReadOnlyCollection<Expression> Arguments { get { return _node.Arguments; } }
199 public Boolean CanReduce { get { return _node.CanReduce; } }
200 public String DebugView { get { return _node.DebugView; } }
201 public Expression Expression { get { return _node.Expression; } }
202 public ExpressionType NodeType { get { return _node.NodeType; } }
203 public Type Type { get { return _node.Type; } }
206 internal class LabelExpressionProxy {
207 private readonly LabelExpression _node;
209 public LabelExpressionProxy(LabelExpression node) {
213 public Boolean CanReduce { get { return _node.CanReduce; } }
214 public String DebugView { get { return _node.DebugView; } }
215 public Expression DefaultValue { get { return _node.DefaultValue; } }
216 public ExpressionType NodeType { get { return _node.NodeType; } }
217 public LabelTarget Target { get { return _node.Target; } }
218 public Type Type { get { return _node.Type; } }
221 internal class LambdaExpressionProxy {
222 private readonly LambdaExpression _node;
224 public LambdaExpressionProxy(LambdaExpression node) {
228 public Expression Body { get { return _node.Body; } }
229 public Boolean CanReduce { get { return _node.CanReduce; } }
230 public String DebugView { get { return _node.DebugView; } }
231 public String Name { get { return _node.Name; } }
232 public ExpressionType NodeType { get { return _node.NodeType; } }
233 public ReadOnlyCollection<ParameterExpression> Parameters { get { return _node.Parameters; } }
234 public Type ReturnType { get { return _node.ReturnType; } }
235 public Boolean TailCall { get { return _node.TailCall; } }
236 public Type Type { get { return _node.Type; } }
239 internal class ListInitExpressionProxy {
240 private readonly ListInitExpression _node;
242 public ListInitExpressionProxy(ListInitExpression node) {
246 public Boolean CanReduce { get { return _node.CanReduce; } }
247 public String DebugView { get { return _node.DebugView; } }
248 public ReadOnlyCollection<ElementInit> Initializers { get { return _node.Initializers; } }
249 public NewExpression NewExpression { get { return _node.NewExpression; } }
250 public ExpressionType NodeType { get { return _node.NodeType; } }
251 public Type Type { get { return _node.Type; } }
254 internal class LoopExpressionProxy {
255 private readonly LoopExpression _node;
257 public LoopExpressionProxy(LoopExpression node) {
261 public Expression Body { get { return _node.Body; } }
262 public LabelTarget BreakLabel { get { return _node.BreakLabel; } }
263 public Boolean CanReduce { get { return _node.CanReduce; } }
264 public LabelTarget ContinueLabel { get { return _node.ContinueLabel; } }
265 public String DebugView { get { return _node.DebugView; } }
266 public ExpressionType NodeType { get { return _node.NodeType; } }
267 public Type Type { get { return _node.Type; } }
270 internal class MemberExpressionProxy {
271 private readonly MemberExpression _node;
273 public MemberExpressionProxy(MemberExpression node) {
277 public Boolean CanReduce { get { return _node.CanReduce; } }
278 public String DebugView { get { return _node.DebugView; } }
279 public Expression Expression { get { return _node.Expression; } }
280 public MemberInfo Member { get { return _node.Member; } }
281 public ExpressionType NodeType { get { return _node.NodeType; } }
282 public Type Type { get { return _node.Type; } }
285 internal class MemberInitExpressionProxy {
286 private readonly MemberInitExpression _node;
288 public MemberInitExpressionProxy(MemberInitExpression node) {
292 public ReadOnlyCollection<MemberBinding> Bindings { get { return _node.Bindings; } }
293 public Boolean CanReduce { get { return _node.CanReduce; } }
294 public String DebugView { get { return _node.DebugView; } }
295 public NewExpression NewExpression { get { return _node.NewExpression; } }
296 public ExpressionType NodeType { get { return _node.NodeType; } }
297 public Type Type { get { return _node.Type; } }
300 internal class MethodCallExpressionProxy {
301 private readonly MethodCallExpression _node;
303 public MethodCallExpressionProxy(MethodCallExpression node) {
307 public ReadOnlyCollection<Expression> Arguments { get { return _node.Arguments; } }
308 public Boolean CanReduce { get { return _node.CanReduce; } }
309 public String DebugView { get { return _node.DebugView; } }
310 public MethodInfo Method { get { return _node.Method; } }
311 public ExpressionType NodeType { get { return _node.NodeType; } }
312 public Expression Object { get { return _node.Object; } }
313 public Type Type { get { return _node.Type; } }
316 internal class NewArrayExpressionProxy {
317 private readonly NewArrayExpression _node;
319 public NewArrayExpressionProxy(NewArrayExpression node) {
323 public Boolean CanReduce { get { return _node.CanReduce; } }
324 public String DebugView { get { return _node.DebugView; } }
325 public ReadOnlyCollection<Expression> Expressions { get { return _node.Expressions; } }
326 public ExpressionType NodeType { get { return _node.NodeType; } }
327 public Type Type { get { return _node.Type; } }
330 internal class NewExpressionProxy {
331 private readonly NewExpression _node;
333 public NewExpressionProxy(NewExpression node) {
337 public ReadOnlyCollection<Expression> Arguments { get { return _node.Arguments; } }
338 public Boolean CanReduce { get { return _node.CanReduce; } }
339 public ConstructorInfo Constructor { get { return _node.Constructor; } }
340 public String DebugView { get { return _node.DebugView; } }
341 public ReadOnlyCollection<MemberInfo> Members { get { return _node.Members; } }
342 public ExpressionType NodeType { get { return _node.NodeType; } }
343 public Type Type { get { return _node.Type; } }
346 internal class ParameterExpressionProxy {
347 private readonly ParameterExpression _node;
349 public ParameterExpressionProxy(ParameterExpression node) {
353 public Boolean CanReduce { get { return _node.CanReduce; } }
354 public String DebugView { get { return _node.DebugView; } }
355 public Boolean IsByRef { get { return _node.IsByRef; } }
356 public String Name { get { return _node.Name; } }
357 public ExpressionType NodeType { get { return _node.NodeType; } }
358 public Type Type { get { return _node.Type; } }
361 internal class RuntimeVariablesExpressionProxy {
362 private readonly RuntimeVariablesExpression _node;
364 public RuntimeVariablesExpressionProxy(RuntimeVariablesExpression node) {
368 public Boolean CanReduce { get { return _node.CanReduce; } }
369 public String DebugView { get { return _node.DebugView; } }
370 public ExpressionType NodeType { get { return _node.NodeType; } }
371 public Type Type { get { return _node.Type; } }
372 public ReadOnlyCollection<ParameterExpression> Variables { get { return _node.Variables; } }
375 internal class SwitchCaseProxy {
376 private readonly SwitchCase _node;
378 public SwitchCaseProxy(SwitchCase node) {
382 public Expression Body { get { return _node.Body; } }
383 public ReadOnlyCollection<Expression> TestValues { get { return _node.TestValues; } }
386 internal class SwitchExpressionProxy {
387 private readonly SwitchExpression _node;
389 public SwitchExpressionProxy(SwitchExpression node) {
393 public Boolean CanReduce { get { return _node.CanReduce; } }
394 public ReadOnlyCollection<SwitchCase> Cases { get { return _node.Cases; } }
395 public MethodInfo Comparison { get { return _node.Comparison; } }
396 public String DebugView { get { return _node.DebugView; } }
397 public Expression DefaultBody { get { return _node.DefaultBody; } }
398 public ExpressionType NodeType { get { return _node.NodeType; } }
399 public Expression SwitchValue { get { return _node.SwitchValue; } }
400 public Type Type { get { return _node.Type; } }
403 internal class TryExpressionProxy {
404 private readonly TryExpression _node;
406 public TryExpressionProxy(TryExpression node) {
410 public Expression Body { get { return _node.Body; } }
411 public Boolean CanReduce { get { return _node.CanReduce; } }
412 public String DebugView { get { return _node.DebugView; } }
413 public Expression Fault { get { return _node.Fault; } }
414 public Expression Finally { get { return _node.Finally; } }
415 public ReadOnlyCollection<CatchBlock> Handlers { get { return _node.Handlers; } }
416 public ExpressionType NodeType { get { return _node.NodeType; } }
417 public Type Type { get { return _node.Type; } }
420 internal class TypeBinaryExpressionProxy {
421 private readonly TypeBinaryExpression _node;
423 public TypeBinaryExpressionProxy(TypeBinaryExpression node) {
427 public Boolean CanReduce { get { return _node.CanReduce; } }
428 public String DebugView { get { return _node.DebugView; } }
429 public Expression Expression { get { return _node.Expression; } }
430 public ExpressionType NodeType { get { return _node.NodeType; } }
431 public Type Type { get { return _node.Type; } }
432 public Type TypeOperand { get { return _node.TypeOperand; } }
435 internal class UnaryExpressionProxy {
436 private readonly UnaryExpression _node;
438 public UnaryExpressionProxy(UnaryExpression node) {
442 public Boolean CanReduce { get { return _node.CanReduce; } }
443 public String DebugView { get { return _node.DebugView; } }
444 public Boolean IsLifted { get { return _node.IsLifted; } }
445 public Boolean IsLiftedToNull { get { return _node.IsLiftedToNull; } }
446 public MethodInfo Method { get { return _node.Method; } }
447 public ExpressionType NodeType { get { return _node.NodeType; } }
448 public Expression Operand { get { return _node.Operand; } }
449 public Type Type { get { return _node.Type; } }
452 // *** END GENERATED CODE ***