diff --git a/src/compiler/interface2.jl b/src/compiler/interface2.jl index 31ae7eaf4..571227d84 100644 --- a/src/compiler/interface2.jl +++ b/src/compiler/interface2.jl @@ -72,7 +72,13 @@ if VERSION >= v"1.10.0-DEV.873" function _pullback_generator(world::UInt, source, self, ctx, f, args) ret = _generate_pullback(ctx, world, f, args...) - ret isa Core.CodeInfo && return ret + if ret isa Core.CodeInfo + if isdefined(Base, :__has_internal_change) && Base.__has_internal_change(v"1.12-alpha", :codeinfonargs) + ret.nargs = 4 + ret.isva = true + end + return ret + end stub = Core.GeneratedFunctionStub(identity, Core.svec(:methodinstance, :ctx, :f, :args), Core.svec()) stub(world, source, ret) @@ -85,7 +91,13 @@ end function _callable_pullback_generator(world::UInt, source, self, Δ) ret = _generate_callable_pullback(self, world, Δ) - ret isa Core.CodeInfo && return ret + if ret isa Core.CodeInfo + if isdefined(Base, :__has_internal_change) && Base.__has_internal_change(v"1.12-alpha", :codeinfonargs) + ret.nargs = 2 + ret.isva = false + end + return ret + end stub = Core.GeneratedFunctionStub(identity, Core.svec(:methodinstance, :Δ), Core.svec()) stub(world, source, ret) diff --git a/src/lib/literal_getproperty.jl b/src/lib/literal_getproperty.jl index c50cab171..cf7d08068 100644 --- a/src/lib/literal_getproperty.jl +++ b/src/lib/literal_getproperty.jl @@ -85,6 +85,11 @@ function _generate_literal_getproperty(ctx, world, x, ::Type{Val{f}}) where f ci.edges = Core.MethodInstance[mi, mi_pb_getproperty, mi_getproperty, mi_rrule] # XXX: on 1.10, we should also set metadata like min-world and max-world + if isdefined(Base, :__has_internal_change) && Base.__has_internal_change(v"1.12-alpha", :codeinfonargs) + ci.nargs = 5 + ci.isva = false + end + return ci else # nothing to optimize here, need to recurse into `getproperty`