@@ -201,7 +201,7 @@ isshortdef(ex) = (@capture(ex, (fcall_ = body_)) &&
201
201
202
202
function longdef1 (ex)
203
203
if @capture (ex, (arg_ -> body_))
204
- @q function ($ arg,) $ body end
204
+ @q function ($ arg,) $ ( body. args ... ) end
205
205
elseif isshortdef (ex)
206
206
@assert @capture (ex, (fcall_ = body_))
207
207
striplines (Expr (:function , fcall, body))
@@ -213,12 +213,13 @@ longdef(ex) = prewalk(longdef1, ex)
213
213
214
214
function shortdef1 (ex)
215
215
@match ex begin
216
- function f_ (args__) body_ end => @q $ f ($ (args... )) = $ body
217
- function f_ (args__) where T__ body_ end => @q $ f ($ (args... )) where $ (T... ) = $ body
218
- function f_ (args__):: rtype_ body_ end => @q $ f ($ (args... )):: $rtype = $ body
219
- function (args__,) body_ end => @q ($ (args... ),) -> $ body
216
+ function f_ (args__) body_ end => @q $ f ($ (args... )) = $ (body. args... )
217
+ function f_ (args__) where T__ body_ end => @q $ f ($ (args... )) where $ (T... ) = $ (body. args... )
218
+ function f_ (args__):: rtype_ body_ end => @q $ f ($ (args... )):: $rtype = $ (body. args... )
219
+ function f_ (args__):: rtype_ where T__ body_ end => @q ($ f ($ (args... )):: $rtype ) where $ (T... ) = $ (body. args... )
220
+ function (args__,) body_ end => @q ($ (args... ),) -> $ (body. args... )
220
221
((args__,) -> body_) => ex
221
- (arg_ -> body_) => @q ($ arg,) -> $ body
222
+ (arg_ -> body_) => @q ($ arg,) -> $ ( body. args ... )
222
223
_ => ex
223
224
end
224
225
end
0 commit comments