@@ -6,6 +6,12 @@ struct ∂⃖recurse{N}; end
6
6
7
7
include (" recurse.jl" )
8
8
9
+ function generate_lambda_ex (world:: UInt , source:: LineNumberNode ,
10
+ args:: Core.SimpleVector , sparams:: Core.SimpleVector , body:: Expr )
11
+ stub = Core. GeneratedFunctionStub (identity, args, sparams)
12
+ return stub (world, source, body)
13
+ end
14
+
9
15
function perform_optic_transform (world:: UInt , source:: LineNumberNode ,
10
16
@nospecialize (ff:: Type{∂⃖recurse{N}} ), @nospecialize (args)) where {N}
11
17
@assert N >= 1
@@ -15,8 +21,8 @@ function perform_optic_transform(world::UInt, source::LineNumberNode,
15
21
mthds = Base. _methods_by_ftype (sig, - 1 , world)
16
22
if mthds === nothing || length (mthds) != 1
17
23
# Core.println("[perform_optic_transform] ", sig, " => ", mthds)
18
- stub = Core . GeneratedFunctionStub (identity, Core . svec ( :ff , :args ), Core . svec ())
19
- return stub (world, source , :(throw (MethodError (ff, args))))
24
+ return generate_lambda_ex (world, source,
25
+ Core . svec ( :ff , :args ), Core . svec () , :(throw (MethodError (ff, args))))
20
26
end
21
27
match = only (mthds):: Core.MethodMatch
22
28
0 commit comments