BindingFlags.Public needed here as Exception.HResult is now public in .NET 4.5. This...
[mono.git] / mcs / class / dlr / Runtime / Microsoft.Scripting.Core / Ast / Expression.DebuggerProxy.cs
1 /* ****************************************************************************
2  *
3  * Copyright (c) Microsoft Corporation. 
4  *
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.
10  *
11  * You must not remove this notice, or any other, from this software.
12  *
13  *
14  * ***************************************************************************/
15
16 using System;
17 using System.Collections.ObjectModel;
18 using System.Reflection;
19 using System.Runtime.CompilerServices;
20
21 #if CLR2
22 namespace Microsoft.Scripting.Ast {
23 #else
24 namespace System.Linq.Expressions {
25 #endif
26 #if !SILVERLIGHT
27     public partial class Expression {
28         #region Generated Expression Debugger Proxies
29
30         // *** BEGIN GENERATED CODE ***
31         // generated by function: gen_debug_proxies from: generate_tree.py
32
33         internal class BinaryExpressionProxy {
34             private readonly BinaryExpression _node;
35
36             public BinaryExpressionProxy(BinaryExpression node) {
37                 _node = node;
38             }
39
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; } }
50         }
51
52         internal class BlockExpressionProxy {
53             private readonly BlockExpression _node;
54
55             public BlockExpressionProxy(BlockExpression node) {
56                 _node = node;
57             }
58
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; } }
66         }
67
68         internal class CatchBlockProxy {
69             private readonly CatchBlock _node;
70
71             public CatchBlockProxy(CatchBlock node) {
72                 _node = node;
73             }
74
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; } }
79         }
80
81         internal class ConditionalExpressionProxy {
82             private readonly ConditionalExpression _node;
83
84             public ConditionalExpressionProxy(ConditionalExpression node) {
85                 _node = node;
86             }
87
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; } }
95         }
96
97         internal class ConstantExpressionProxy {
98             private readonly ConstantExpression _node;
99
100             public ConstantExpressionProxy(ConstantExpression node) {
101                 _node = node;
102             }
103
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; } }
109         }
110
111         internal class DebugInfoExpressionProxy {
112             private readonly DebugInfoExpression _node;
113
114             public DebugInfoExpressionProxy(DebugInfoExpression node) {
115                 _node = node;
116             }
117
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; } }
128         }
129
130         internal class DefaultExpressionProxy {
131             private readonly DefaultExpression _node;
132
133             public DefaultExpressionProxy(DefaultExpression node) {
134                 _node = node;
135             }
136
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; } }
141         }
142
143         internal class DynamicExpressionProxy {
144             private readonly DynamicExpression _node;
145
146             public DynamicExpressionProxy(DynamicExpression node) {
147                 _node = node;
148             }
149
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; } }
157         }
158
159         internal class GotoExpressionProxy {
160             private readonly GotoExpression _node;
161
162             public GotoExpressionProxy(GotoExpression node) {
163                 _node = node;
164             }
165
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; } }
173         }
174
175         internal class IndexExpressionProxy {
176             private readonly IndexExpression _node;
177
178             public IndexExpressionProxy(IndexExpression node) {
179                 _node = node;
180             }
181
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; } }
189         }
190
191         internal class InvocationExpressionProxy {
192             private readonly InvocationExpression _node;
193
194             public InvocationExpressionProxy(InvocationExpression node) {
195                 _node = node;
196             }
197
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; } }
204         }
205
206         internal class LabelExpressionProxy {
207             private readonly LabelExpression _node;
208
209             public LabelExpressionProxy(LabelExpression node) {
210                 _node = node;
211             }
212
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; } }
219         }
220
221         internal class LambdaExpressionProxy {
222             private readonly LambdaExpression _node;
223
224             public LambdaExpressionProxy(LambdaExpression node) {
225                 _node = node;
226             }
227
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; } }
237         }
238
239         internal class ListInitExpressionProxy {
240             private readonly ListInitExpression _node;
241
242             public ListInitExpressionProxy(ListInitExpression node) {
243                 _node = node;
244             }
245
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; } }
252         }
253
254         internal class LoopExpressionProxy {
255             private readonly LoopExpression _node;
256
257             public LoopExpressionProxy(LoopExpression node) {
258                 _node = node;
259             }
260
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; } }
268         }
269
270         internal class MemberExpressionProxy {
271             private readonly MemberExpression _node;
272
273             public MemberExpressionProxy(MemberExpression node) {
274                 _node = node;
275             }
276
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; } }
283         }
284
285         internal class MemberInitExpressionProxy {
286             private readonly MemberInitExpression _node;
287
288             public MemberInitExpressionProxy(MemberInitExpression node) {
289                 _node = node;
290             }
291
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; } }
298         }
299
300         internal class MethodCallExpressionProxy {
301             private readonly MethodCallExpression _node;
302
303             public MethodCallExpressionProxy(MethodCallExpression node) {
304                 _node = node;
305             }
306
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; } }
314         }
315
316         internal class NewArrayExpressionProxy {
317             private readonly NewArrayExpression _node;
318
319             public NewArrayExpressionProxy(NewArrayExpression node) {
320                 _node = node;
321             }
322
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; } }
328         }
329
330         internal class NewExpressionProxy {
331             private readonly NewExpression _node;
332
333             public NewExpressionProxy(NewExpression node) {
334                 _node = node;
335             }
336
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; } }
344         }
345
346         internal class ParameterExpressionProxy {
347             private readonly ParameterExpression _node;
348
349             public ParameterExpressionProxy(ParameterExpression node) {
350                 _node = node;
351             }
352
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; } }
359         }
360
361         internal class RuntimeVariablesExpressionProxy {
362             private readonly RuntimeVariablesExpression _node;
363
364             public RuntimeVariablesExpressionProxy(RuntimeVariablesExpression node) {
365                 _node = node;
366             }
367
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; } }
373         }
374
375         internal class SwitchCaseProxy {
376             private readonly SwitchCase _node;
377
378             public SwitchCaseProxy(SwitchCase node) {
379                 _node = node;
380             }
381
382             public Expression Body { get { return _node.Body; } }
383             public ReadOnlyCollection<Expression> TestValues { get { return _node.TestValues; } }
384         }
385
386         internal class SwitchExpressionProxy {
387             private readonly SwitchExpression _node;
388
389             public SwitchExpressionProxy(SwitchExpression node) {
390                 _node = node;
391             }
392
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; } }
401         }
402
403         internal class TryExpressionProxy {
404             private readonly TryExpression _node;
405
406             public TryExpressionProxy(TryExpression node) {
407                 _node = node;
408             }
409
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; } }
418         }
419
420         internal class TypeBinaryExpressionProxy {
421             private readonly TypeBinaryExpression _node;
422
423             public TypeBinaryExpressionProxy(TypeBinaryExpression node) {
424                 _node = node;
425             }
426
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; } }
433         }
434
435         internal class UnaryExpressionProxy {
436             private readonly UnaryExpression _node;
437
438             public UnaryExpressionProxy(UnaryExpression node) {
439                 _node = node;
440             }
441
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; } }
450         }
451
452         // *** END GENERATED CODE ***
453
454         #endregion
455     }
456 #endif
457 }