@@ -159,10 +159,13 @@ function static_array_gen(::Type{SA}, @nospecialize(ex), mod::Module) where {SA}
159159 args = parse_cat_ast (ex)
160160 return :($ SA {$Tuple{$(size(args)...)}} ($ tuple ($ (escall (args)... ))))
161161 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
163163 error (" Expected generator in comprehension, e.g. [f(i,j) for i = 1:3, j = 1:3]" )
164164 end
165165 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
166169 n_rng = length (ex. args) - 1
167170 rng_args = (ex. args[i+ 1 ]. args[1 ] for i = 1 : n_rng)
168171 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}
174177 end
175178 end
176179 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
178181 error (" Expected generator in typed comprehension, e.g. Float64[f(i,j) for i = 1:3, j = 1:3]" )
179182 end
180183 T = esc (ex. args[1 ])
181184 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
182188 n_rng = length (ex. args) - 1
183189 rng_args = (ex. args[i+ 1 ]. args[1 ] for i = 1 : n_rng)
184190 rngs = Any[Core. eval (mod, ex. args[i+ 1 ]. args[2 ]) for i = 1 : n_rng]
0 commit comments