@@ -30,18 +30,21 @@ macro nonoverlay(ex)
3030 return esc (out)
3131end
3232
33- function make_overlay_generator (selfname:: Symbol , fargsname:: Symbol )
34- function overlay_generator (world:: UInt , source:: LineNumberNode , passtype, fargtypes)
35- @nospecialize passtype fargtypes
36- try
37- return generate_overlay_src (world, source, passtype, fargtypes, selfname, fargsname)
38- catch err
39- # internal error happened - return an expression to raise the special exception
40- return generate_internalerr_ex (
41- err, #= bt=# catch_backtrace (), #= context=# :overlay_generator , world, source,
42- #= argnames=# Core. svec (selfname, fargsname), #= spnames=# Core. svec (),
43- #= metadata=# (; world, source, passtype, fargtypes))
44- end
33+ struct CassetteOverlayGenerator
34+ selfname:: Symbol
35+ fargsname:: Symbol
36+ end
37+ function (generator:: CassetteOverlayGenerator )(world:: UInt , source:: LineNumberNode , passtype, fargtypes)
38+ @nospecialize passtype fargtypes
39+ (; selfname, fargsname) = generator
40+ try
41+ return generate_overlay_src (world, source, passtype, fargtypes, selfname, fargsname)
42+ catch err
43+ # internal error happened - return an expression to raise the special exception
44+ return generate_internalerr_ex (
45+ err, #= bt=# catch_backtrace (), #= context=# :CassetteOverlayGenerator , world, source,
46+ #= argnames=# Core. svec (selfname, fargsname), #= spnames=# Core. svec (),
47+ #= metadata=# (; world, source, passtype, fargtypes))
4548 end
4649end
4750
@@ -111,7 +114,7 @@ macro overlaypass(args...)
111114 # the main code transformation pass
112115 mainpass = quote
113116 function (pass:: $PassName )(fargs... )
114- $ (Expr (:meta , :generated , make_overlay_generator (:pass , :fargs )))
117+ $ (Expr (:meta , :generated , CassetteOverlayGenerator (:pass , :fargs )))
115118 # also include a fallback implementation that will be used when this method
116119 # is dynamically dispatched with `!isdispatchtuple` signatures.
117120 return first (fargs)(Base. tail (fargs)... )
0 commit comments