@@ -124,20 +124,29 @@ function create_cthulhu_source(@nospecialize(opt), effects::Effects)
124124 return OptimizedSource (ir, opt. src, opt. src. inlineable, effects)
125125end
126126
127+ function set_cthulhu_source! (result:: InferenceResult )
128+ result. src = create_cthulhu_source (result. src, result. ipo_effects)
129+ end
130+
127131@static if VERSION ≥ v " 1.12.0-DEV.1823"
128132CC. finishinfer! (state:: InferenceState , interp:: CthulhuInterpreter ) = cthulhu_finish (CC. finishinfer!, state, interp)
133+ @static if VERSION ≥ v " 1.12.0-DEV.1988"
134+ function CC. finish! (interp:: CthulhuInterpreter , caller:: InferenceState , validation_world:: UInt )
135+ set_cthulhu_source! (caller. result)
136+ return @invoke CC. finish! (interp:: AbstractInterpreter , caller:: InferenceState , validation_world:: UInt )
137+ end
138+ else
129139function CC. finish! (interp:: CthulhuInterpreter , caller:: InferenceState )
130- result = caller. result
131- result. src = create_cthulhu_source (result. src, result. ipo_effects)
140+ set_cthulhu_source! (caller. result)
132141 return @invoke CC. finish! (interp:: AbstractInterpreter , caller:: InferenceState )
133142end
143+ end
134144
135145elseif VERSION ≥ v " 1.12.0-DEV.734"
136146CC. finishinfer! (state:: InferenceState , interp:: CthulhuInterpreter ) = cthulhu_finish (CC. finishinfer!, state, interp)
137147function CC. finish! (interp:: CthulhuInterpreter , caller:: InferenceState ;
138148 can_discard_trees:: Bool = false )
139- result = caller. result
140- result. src = create_cthulhu_source (result. src, result. ipo_effects)
149+ set_cthulhu_source! (caller. result)
141150 return @invoke CC. finish! (interp:: AbstractInterpreter , caller:: InferenceState ;
142151 can_discard_trees)
143152end
@@ -147,7 +156,7 @@ CC.finish(state::InferenceState, interp::CthulhuInterpreter) = cthulhu_finish(CC
147156function CC. finish! (interp:: CthulhuInterpreter , caller:: InferenceState )
148157 result = caller. result
149158 opt = result. src
150- result . src = create_cthulhu_source (opt, result. ipo_effects )
159+ set_cthulhu_source! ( result)
151160 if opt isa CC. OptimizationState
152161 CC. ir_to_codeinf! (opt)
153162 end
0 commit comments