@@ -159,10 +159,13 @@ function static_array_gen(::Type{SA}, @nospecialize(ex), mod::Module) where {SA}
159
159
args = parse_cat_ast (ex)
160
160
return :($ SA {$Tuple{$(size(args)...)}} ($ tuple ($ (escall (args)... ))))
161
161
elseif head === :comprehension
162
- if length (ex. args) != 1 || ! isa (ex . args[ 1 ], Expr) || ex . args[ 1 ] . head != :generator
162
+ if length (ex. args) != 1
163
163
error (" Expected generator in comprehension, e.g. [f(i,j) for i = 1:3, j = 1:3]" )
164
164
end
165
165
ex = ex. args[1 ]
166
+ if ! isa (ex, Expr) || (ex:: Expr ). head != :generator
167
+ error (" Expected generator in comprehension, e.g. [f(i,j) for i = 1:3, j = 1:3]" )
168
+ end
166
169
n_rng = length (ex. args) - 1
167
170
rng_args = (ex. args[i+ 1 ]. args[1 ] for i = 1 : n_rng)
168
171
rngs = Any[Core. eval (mod, ex. args[i+ 1 ]. args[2 ]) for i = 1 : n_rng]
@@ -174,11 +177,14 @@ function static_array_gen(::Type{SA}, @nospecialize(ex), mod::Module) where {SA}
174
177
end
175
178
end
176
179
elseif head === :typed_comprehension
177
- if length (ex. args) != 2 || ! isa (ex . args[ 2 ], Expr) || ex . args[ 2 ] . head != :generator
180
+ if length (ex. args) != 2
178
181
error (" Expected generator in typed comprehension, e.g. Float64[f(i,j) for i = 1:3, j = 1:3]" )
179
182
end
180
183
T = esc (ex. args[1 ])
181
184
ex = ex. args[2 ]
185
+ if ! isa (ex, Expr) || (ex:: Expr ). head != :generator
186
+ error (" Expected generator in typed comprehension, e.g. Float64[f(i,j) for i = 1:3, j = 1:3]" )
187
+ end
182
188
n_rng = length (ex. args) - 1
183
189
rng_args = (ex. args[i+ 1 ]. args[1 ] for i = 1 : n_rng)
184
190
rngs = Any[Core. eval (mod, ex. args[i+ 1 ]. args[2 ]) for i = 1 : n_rng]
0 commit comments