3
3
using System . Diagnostics . Contracts ;
4
4
using System . Linq . Expressions ;
5
5
6
+ using ZySharp . Validation ;
7
+
6
8
namespace ZySharp . Metaprogramming
7
9
{
8
10
public static partial class Expr
9
11
{
12
+ #pragma warning disable S2436 , S107
13
+
10
14
/// <summary>
11
15
/// Compiles and invokes the given <paramref name="expression"/>.
12
16
/// </summary>
@@ -20,6 +24,7 @@ public static partial class Expr
20
24
public static TResult Invoke < TResult > (
21
25
this Expression < Func < TResult > > expression )
22
26
{
27
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
23
28
return expression . Compile ( ) . Invoke ( ) ;
24
29
}
25
30
@@ -29,6 +34,7 @@ public static TResult Invoke<T1, TResult>(
29
34
this Expression < Func < T1 , TResult > > expression ,
30
35
T1 arg1 )
31
36
{
37
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
32
38
return expression . Compile ( ) . Invoke ( arg1 ) ;
33
39
}
34
40
@@ -38,6 +44,7 @@ public static TResult Invoke<T1, T2, TResult>(
38
44
this Expression < Func < T1 , T2 , TResult > > expression ,
39
45
T1 arg1 , T2 arg2 )
40
46
{
47
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
41
48
return expression . Compile ( ) . Invoke ( arg1 , arg2 ) ;
42
49
}
43
50
@@ -47,6 +54,7 @@ public static TResult Invoke<T1, T2, T3, TResult>(
47
54
this Expression < Func < T1 , T2 , T3 , TResult > > expression ,
48
55
T1 arg1 , T2 arg2 , T3 arg3 )
49
56
{
57
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
50
58
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 ) ;
51
59
}
52
60
@@ -56,6 +64,7 @@ public static TResult Invoke<T1, T2, T3, T4, TResult>(
56
64
this Expression < Func < T1 , T2 , T3 , T4 , TResult > > expression ,
57
65
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 )
58
66
{
67
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
59
68
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 ) ;
60
69
}
61
70
@@ -65,6 +74,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, TResult>(
65
74
this Expression < Func < T1 , T2 , T3 , T4 , T5 , TResult > > expression ,
66
75
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 )
67
76
{
77
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
68
78
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 ) ;
69
79
}
70
80
@@ -74,6 +84,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, TResult>(
74
84
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , TResult > > expression ,
75
85
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 )
76
86
{
87
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
77
88
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 ) ;
78
89
}
79
90
@@ -83,6 +94,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, TResult>(
83
94
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , TResult > > expression ,
84
95
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 )
85
96
{
97
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
86
98
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 ) ;
87
99
}
88
100
@@ -92,6 +104,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(
92
104
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , TResult > > expression ,
93
105
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 )
94
106
{
107
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
95
108
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 ) ;
96
109
}
97
110
@@ -101,6 +114,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(
101
114
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , TResult > > expression ,
102
115
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 )
103
116
{
117
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
104
118
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 ) ;
105
119
}
106
120
@@ -110,6 +124,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(
110
124
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , TResult > > expression ,
111
125
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 , T10 arg10 )
112
126
{
127
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
113
128
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 ) ;
114
129
}
115
130
@@ -119,6 +134,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResu
119
134
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , TResult > > expression ,
120
135
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 , T10 arg10 , T11 arg11 )
121
136
{
137
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
122
138
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 ) ;
123
139
}
124
140
@@ -128,6 +144,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
128
144
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , TResult > > expression ,
129
145
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 , T10 arg10 , T11 arg11 , T12 arg12 )
130
146
{
147
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
131
148
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 ) ;
132
149
}
133
150
@@ -137,6 +154,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
137
154
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , TResult > > expression ,
138
155
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 , T10 arg10 , T11 arg11 , T12 arg12 , T13 arg13 )
139
156
{
157
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
140
158
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 ) ;
141
159
}
142
160
@@ -146,6 +164,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
146
164
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , TResult > > expression ,
147
165
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 , T10 arg10 , T11 arg11 , T12 arg12 , T13 arg13 , T14 arg14 )
148
166
{
167
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
149
168
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 ) ;
150
169
}
151
170
@@ -155,6 +174,7 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
155
174
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , TResult > > expression ,
156
175
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 , T10 arg10 , T11 arg11 , T12 arg12 , T13 arg13 , T14 arg14 , T15 arg15 )
157
176
{
177
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
158
178
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 ) ;
159
179
}
160
180
@@ -164,7 +184,10 @@ public static TResult Invoke<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
164
184
this Expression < Func < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , TResult > > expression ,
165
185
T1 arg1 , T2 arg2 , T3 arg3 , T4 arg4 , T5 arg5 , T6 arg6 , T7 arg7 , T8 arg8 , T9 arg9 , T10 arg10 , T11 arg11 , T12 arg12 , T13 arg13 , T14 arg14 , T15 arg15 , T16 arg16 )
166
186
{
187
+ ValidateArgument . For ( expression , nameof ( expression ) , v => v . NotNull ( ) ) ;
167
188
return expression . Compile ( ) . Invoke ( arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 , arg11 , arg12 , arg13 , arg14 , arg15 , arg16 ) ;
168
189
}
190
+
191
+ #pragma warning restore S2436 , S107
169
192
}
170
193
}
0 commit comments