@@ -61,17 +61,17 @@ module ModSelective end
6161 end
6262 frame = Frame (ModSelective, ex)
6363 src = frame. framecode. src
64- edges = CodeEdges (src)
64+ edges = CodeEdges (ModSelective, src)
6565 # Check that the result of direct evaluation agrees with selective evaluation
6666 Core. eval (ModEval, ex)
67- isrequired = lines_required (:x , src, edges)
67+ isrequired = lines_required (GlobalRef (ModSelective, :x ) , src, edges)
6868 # theere is too much diversity in lowering across Julia versions to make it useful to test `sum(isrequired)`
6969 selective_eval_fromstart! (frame, isrequired)
7070 @test ModSelective. x === ModEval. x
7171 @test allmissing (ModSelective, (:y , :z , :a , :b , :k ))
7272 @test ! allmissing (ModSelective, (:x , :y )) # add :y here to test the `all` part of the test itself
7373 # To evaluate z we need to do all the computations for y
74- isrequired = lines_required (:z , src, edges)
74+ isrequired = lines_required (GlobalRef (ModSelective, :z ) , src, edges)
7575 selective_eval_fromstart! (frame, isrequired)
7676 @test ModSelective. y === ModEval. y
7777 @test ModSelective. z === ModEval. z
@@ -82,7 +82,7 @@ module ModSelective end
8282 @test ModSelective. b === ModEval. b
8383 # Test that we get two separate evaluations of k
8484 @test allmissing (ModSelective, (:k ,))
85- isrequired = lines_required (:k , src, edges)
85+ isrequired = lines_required (GlobalRef (ModSelective, :k ) , src, edges)
8686 selective_eval_fromstart! (frame, isrequired)
8787 @test ModSelective. k != ModEval. k
8888
@@ -101,8 +101,8 @@ module ModSelective end
101101 end
102102 frame = Frame (ModSelective, ex)
103103 src = frame. framecode. src
104- edges = CodeEdges (src)
105- isrequired = lines_required (:a2 , src, edges)
104+ edges = CodeEdges (ModSelective, src)
105+ isrequired = lines_required (GlobalRef (ModSelective, :a2 ) , src, edges)
106106 selective_eval_fromstart! (frame, isrequired, #= istoplevel=# true )
107107 Core. eval (ModEval, ex)
108108 @test ModSelective. a2 === ModEval. a2 == 1
@@ -122,8 +122,8 @@ module ModSelective end
122122 end
123123 frame = Frame (ModSelective, ex)
124124 src = frame. framecode. src
125- edges = CodeEdges (src)
126- isrequired = lines_required (:a3 , src, edges)
125+ edges = CodeEdges (ModSelective, src)
126+ isrequired = lines_required (GlobalRef (ModSelective, :a3 ) , src, edges)
127127 selective_eval_fromstart! (frame, isrequired)
128128 Core. eval (ModEval, ex)
129129 @test ModSelective. a3 === ModEval. a3 == 2
@@ -141,8 +141,8 @@ module ModSelective end
141141 end
142142 frame = Frame (ModSelective, ex)
143143 src = frame. framecode. src
144- edges = CodeEdges (src)
145- isrequired = lines_required (:valcf , src, edges)
144+ edges = CodeEdges (ModSelective, src)
145+ isrequired = lines_required (GlobalRef (ModSelective, :valcf ) , src, edges)
146146 selective_eval_fromstart! (frame, isrequired)
147147 @test ModSelective. valcf == 4
148148
@@ -158,8 +158,8 @@ module ModSelective end
158158 end
159159 frame = Frame (ModSelective, ex)
160160 src = frame. framecode. src
161- edges = CodeEdges (src)
162- isrequired = lines_required (:c_os , src, edges)
161+ edges = CodeEdges (ModSelective, src)
162+ isrequired = lines_required (GlobalRef (ModSelective, :c_os ) , src, edges)
163163 @test sum (isrequired) >= length (isrequired) - 3
164164 selective_eval_fromstart! (frame, isrequired)
165165 Core. eval (ModEval, ex)
@@ -179,7 +179,7 @@ module ModSelective end
179179 @test ModEval. bar () == 1
180180 frame = Frame (ModSelective, ex)
181181 src = frame. framecode. src
182- edges = CodeEdges (src)
182+ edges = CodeEdges (ModSelective, src)
183183 # Mark just the load of Core.eval
184184 haseval (stmt) = (isa (stmt, Expr) && JuliaInterpreter. hasarg (isequal (:eval ), stmt. args)) ||
185185 (isa (stmt, Expr) && stmt. head === :call && is_quotenode (stmt. args[1 ], Core. eval))
@@ -210,8 +210,8 @@ module ModSelective end
210210 @test ModSelective. k11 == 11
211211 @test 3 <= ModSelective. s11 <= 15
212212 Core. eval (ModSelective, :(k11 = 0 ; s11 = - 1 ))
213- edges = CodeEdges (frame. framecode. src)
214- isrequired = lines_required (:s11 , frame. framecode. src, edges)
213+ edges = CodeEdges (ModSelective, frame. framecode. src)
214+ isrequired = lines_required (GlobalRef (ModSelective, :s11 ) , frame. framecode. src, edges)
215215 selective_eval_fromstart! (frame, isrequired, true )
216216 @test ModSelective. k11 == 0
217217 @test 3 <= ModSelective. s11 <= 15
@@ -220,7 +220,7 @@ module ModSelective end
220220 ex = :(abstract type StructParent{T, N} <: AbstractArray{T, N} end )
221221 frame = Frame (ModSelective, ex)
222222 src = frame. framecode. src
223- edges = CodeEdges (src)
223+ edges = CodeEdges (ModSelective, src)
224224 # Check that the StructParent name is discovered everywhere it is used
225225 var = edges. byname[:StructParent ]
226226 isrequired = minimal_evaluation (hastrackedexpr, src, edges)
@@ -230,7 +230,7 @@ module ModSelective end
230230 Core. eval (ModEval, ex)
231231 frame = Frame (ModEval, ex)
232232 src = frame. framecode. src
233- edges = CodeEdges (src)
233+ edges = CodeEdges (ModEval, src)
234234 isrequired = minimal_evaluation (hastrackedexpr, src, edges)
235235 selective_eval_fromstart! (frame, isrequired, true )
236236 @test supertype (ModEval. StructParent) === AbstractArray
@@ -240,7 +240,7 @@ module ModSelective end
240240 ex = :(struct NoParam end )
241241 frame = Frame (ModSelective, ex)
242242 src = frame. framecode. src
243- edges = CodeEdges (src)
243+ edges = CodeEdges (ModSelective, src)
244244 isrequired = minimal_evaluation (stmt-> (LoweredCodeUtils. ismethod_with_name (src, stmt, " NoParam" ),false ), src, edges) # initially mark only the constructor
245245 selective_eval_fromstart! (frame, isrequired, true )
246246 @test isa (ModSelective. NoParam (), ModSelective. NoParam)
@@ -252,7 +252,7 @@ module ModSelective end
252252 end
253253 frame = Frame (ModSelective, ex)
254254 src = frame. framecode. src
255- edges = CodeEdges (src)
255+ edges = CodeEdges (ModSelective, src)
256256 isrequired = minimal_evaluation (stmt-> (LoweredCodeUtils. ismethod_with_name (src, stmt, " Struct" ),false ), src, edges) # initially mark only the constructor
257257 selective_eval_fromstart! (frame, isrequired, true )
258258 @test isa (ModSelective. Struct ([1 ,2 ,3 ]), ModSelective. Struct{Int})
@@ -269,7 +269,7 @@ module ModSelective end
269269 end
270270 frame = Frame (ModSelective, ex)
271271 src = frame. framecode. src
272- edges = CodeEdges (src)
272+ edges = CodeEdges (ModSelective, src)
273273 isrequired = minimal_evaluation (stmt-> (LoweredCodeUtils. ismethod3 (stmt),false ), src, edges) # initially mark only the constructor
274274 selective_eval_fromstart! (frame, isrequired, true )
275275 kws = ModSelective. KWStruct (y= 5.0f0 )
@@ -279,7 +279,7 @@ module ModSelective end
279279 ex = :(max_values (T:: Union{map(X -> Type{X}, Base.BitIntegerSmall_types)...} ) = 1 << (8 * sizeof (T)))
280280 frame = Frame (ModSelective, ex)
281281 src = frame. framecode. src
282- edges = CodeEdges (src)
282+ edges = CodeEdges (ModSelective, src)
283283 isrequired = fill (false , length (src. code))
284284 @assert Meta. isexpr (src. code[end - 1 ], :method , 3 )
285285 isrequired[end - 1 ] = true
@@ -297,7 +297,7 @@ module ModSelective end
297297 Core. eval (ModEval, ex)
298298 frame = Frame (ModEval, ex)
299299 src = frame. framecode. src
300- edges = CodeEdges (src)
300+ edges = CodeEdges (ModEval, src)
301301 isrequired = minimal_evaluation (stmt-> (LoweredCodeUtils. ismethod3 (stmt),false ), src, edges; norequire= exclude_named_typedefs (src, edges)) # initially mark only the constructor
302302 bbs = Core. Compiler. compute_basic_blocks (src. code)
303303 for (iblock, block) in enumerate (bbs. blocks)
@@ -320,8 +320,8 @@ module ModSelective end
320320 end
321321 end )
322322 src = thk. args[1 ]
323- edges = CodeEdges (src)
324- lr = lines_required (:revise538 , src, edges)
323+ edges = CodeEdges (ModEval, src)
324+ lr = lines_required (GlobalRef (ModEval, :revise538 ) , src, edges)
325325 selective_eval_fromstart! (Frame (ModEval, src), lr, #= istoplevel=# true )
326326 @test isdefined (ModEval, :revise538 ) && length (methods (ModEval. revise538, (Float32,))) == 1
327327
@@ -334,7 +334,7 @@ module ModSelective end
334334 end
335335 end )
336336 src = thk. args[1 ]
337- edges = CodeEdges (src)
337+ edges = CodeEdges (Main, src)
338338 idx = findfirst (stmt-> Meta. isexpr (stmt, :method ), src. code)
339339 lr = lines_required (idx, src, edges; norequire= exclude_named_typedefs (src, edges))
340340 idx = findfirst (stmt-> Meta. isexpr (stmt, :(= )) && Meta. isexpr (stmt. args[2 ], :call ) && is_global_ref (stmt. args[2 ]. args[1 ], Core, :Box ), src. code)
@@ -345,7 +345,7 @@ module ModSelective end
345345 primitive type WindowsRawSocket sizeof (Ptr) * 8 end
346346 end )
347347 src = thk. args[1 ]
348- edges = CodeEdges (src)
348+ edges = CodeEdges (Main, src)
349349 idx = findfirst (istypedef, src. code)
350350 r = LoweredCodeUtils. typedef_range (src, idx)
351351 @test last (r) == length (src. code) - 1
@@ -397,7 +397,7 @@ module ModSelective end
397397 @test occursin (" No IR statement printer" , str)
398398 end
399399 # CodeEdges
400- edges = CodeEdges (src)
400+ edges = CodeEdges (Main, src)
401401 show (io, edges)
402402 str = String (take! (io))
403403 if Base. VERSION < v " 1.10"
@@ -424,7 +424,7 @@ module ModSelective end
424424 end
425425 # Works with Frames too
426426 frame = Frame (ModSelective, ex)
427- edges = CodeEdges (frame. framecode. src)
427+ edges = CodeEdges (ModSelective, frame. framecode. src)
428428 LoweredCodeUtils. print_with_code (io, frame, edges)
429429 str = String (take! (io))
430430 if isdefined (Base. IRShow, :show_ir_stmt )
464464 lwr = Meta. lower (m, ex)
465465 src = first (lwr. args)
466466 stmts = src. code
467- edges = CodeEdges (src)
467+ edges = CodeEdges (m, src)
468468
469469 isrq = lines_required! (istypedef .(stmts), src, edges)
470470 frame = Frame (m, src)
0 commit comments