@@ -344,17 +344,15 @@ module ModSelective end
344344 idx = findfirst(@nospecialize(stmt)-> Meta. isexpr(stmt, :(= )) && Meta. isexpr(stmt. args[2 ], :call) && is_global_ref(stmt. args[2 ]. args[1 ], Core, :Box), src. code)
345345 @test lr[idx]
346346 # but make sure we don't break primitivetype & abstracttype (https://github.com/timholy/Revise.jl/pull/611)
347- if isdefined(Core, :_primitivetype)
348- thk = Meta. lower(Main, quote
349- primitive type WindowsRawSocket sizeof(Ptr) * 8 end
350- end )
351- src = thk. args[1 ]
352- edges = CodeEdges(Main, src)
353- idx = findfirst(istypedef, src. code)
354- r = LoweredCodeUtils. typedef_range(src, idx)
355- # 1 before :latestworld, 2 after
356- @test (length(src. code) - last(r)) in (1 , 2 )
357- end
347+ thk = Meta. lower(Main, quote
348+ primitive type WindowsRawSocket sizeof(Ptr) * 8 end
349+ end )
350+ src = thk. args[1 ]
351+ edges = CodeEdges(Main, src)
352+ idx = findfirst(istypedef, src. code)
353+ r = LoweredCodeUtils. typedef_range(src, idx)
354+ # 1 before :latestworld, 2 after
355+ @test (length(src. code) - last(r)) in (1 , 2 )
358356
359357 @testset " Display" begin
360358 # worth testing because this has proven quite crucial for debugging and
@@ -381,69 +379,22 @@ module ModSelective end
381379 str = String(take!(io))
382380 @test occursin(r" slot 1:\n preds: ssas: \[\d +, \d +\] , slots: ∅, names: ∅;\n succs: ssas: \[\d +, \d +, \d +\] , slots: ∅, names: ∅;\n assign @: \[\d +, \d +\] " , str)
383381 @test occursin(r" succs: ssas: ∅, slots: \[\d +\] , names: ∅;" , str)
384- # Some of these differ due to changes by Julia version in global var inference
385- if Base. VERSION < v" 1.10"
386- @test occursin(r" s:\n preds: ssas: \[\d +\] , slots: ∅, names: ∅;\n succs: ssas: \[\d +, \d +, \d +\] , slots: ∅, names: ∅;\n assign @: \[\d , \d +\] " , str) ||
387- occursin(r" s:\n preds: ssas: \[\d +, \d +\] , slots: ∅, names: ∅;\n succs: ssas: \[\d +, \d +, \d +\] , slots: ∅, names: ∅;\n assign @: \[\d , \d +\] " , str) # with global var inference
388- end
389- if Base. VERSION < v" 1.8"
390- @test occursin(r" \d + preds: ssas: \[\d +\] , slots: ∅, names: \[\:\( Main\. s\)\] ;\n\d + succs: ssas: ∅, slots: ∅, names: \[\:\( Main\. s\)\] ;" , str)
391- end
392382 LoweredCodeUtils. print_with_code(io, src, cl)
393383 str = String(take!(io))
394- if isdefined(Base. IRShow, :show_ir_stmt)
395- @test occursin(r" slot 1:\n preds: ssas: \[\d +, \d +\] , slots: ∅, names: ∅;\n succs: ssas: \[\d +, \d +, \d +\] , slots: ∅, names: ∅;\n assign @: \[\d +, \d +\] " , str)
396- @test occursin(" # see name Main.s" , str)
397- @test occursin(" # see slot 1" , str)
398- if Base. VERSION < v" 1.8" # changed by global var inference
399- @test occursin(r" # preds: ssas: \[\d +\] , slots: ∅, names: \[\:\( Main\. s\)\] ; succs: ssas: ∅, slots: ∅, names: \[\:\( Main\. s\)\] ;" , str)
400- end
401- else
402- @test occursin(" No IR statement printer" , str)
403- end
384+ @test occursin(r" slot 1:\n preds: ssas: \[\d +, \d +\] , slots: ∅, names: ∅;\n succs: ssas: \[\d +, \d +, \d +\] , slots: ∅, names: ∅;\n assign @: \[\d +, \d +\] " , str)
385+ @test occursin(" # see name Main.s" , str)
386+ @test occursin(" # see slot 1" , str)
404387 # CodeEdges
405388 edges = CodeEdges(Main, src)
406389 show(io, edges)
407390 str = String(take!(io))
408- if Base. VERSION < v" 1.10"
409- @test occursin(r" s: assigned on \[\d , \d +\] , depends on \[\d +\] , and used by \[\d +, \d +, \d +\] " , str) ||
410- occursin(r" s: assigned on \[\d , \d +\] , depends on \[\d +, \d +\] , and used by \[\d +, \d +, \d +\] " , str) # global var inference
411- end
412- if Base. VERSION < v" 1.9"
413- @test (count(occursin(" statement $i depends on [1, $(i- 1 ) , $(i+ 1 ) ] and is used by [1, $(i+ 1 ) ]" , str) for i = 1 : length(src. code)) == 1 ) ||
414- (count(occursin(" statement $i depends on [4, $(i- 1 ) , $(i+ 4 ) ] and is used by [$(i+ 2 ) ]" , str) for i = 1 : length(src. code)) == 1 )
415- end
416391 LoweredCodeUtils. print_with_code(io, src, edges)
417392 str = String(take!(io))
418- if isdefined(Base. IRShow, :show_ir_stmt)
419- if Base. VERSION < v" 1.10"
420- @test occursin(r" s: assigned on \[\d , \d +\] , depends on \[\d +\] , and used by \[\d +, \d +, \d +\] " , str) ||
421- occursin(r" s: assigned on \[\d , \d +\] , depends on \[\d +, \d +\] , and used by \[\d +, \d +, \d +\] " , str)
422- end
423- if Base. VERSION < v" 1.9"
424- @test (count(occursin(" preds: [1, $(i- 1 ) , $(i+ 1 ) ], succs: [1, $(i+ 1 ) ]" , str) for i = 1 : length(src. code)) == 1 ) ||
425- (count(occursin(" preds: [4, $(i- 1 ) , $(i+ 4 ) ], succs: [$(i+ 2 ) ]" , str) for i = 1 : length(src. code)) == 1 ) # global var inference
426- end
427- else
428- @test occursin(" No IR statement printer" , str)
429- end
430393 # Works with Frames too
431394 frame = Frame(ModSelective, ex)
432395 edges = CodeEdges(ModSelective, frame. framecode. src)
433396 LoweredCodeUtils. print_with_code(io, frame, edges)
434397 str = String(take!(io))
435- if isdefined(Base. IRShow, :show_ir_stmt)
436- if Base. VERSION < v" 1.10"
437- @test occursin(r" s: assigned on \[\d , \d +\] , depends on \[\d +\] , and used by \[\d +, \d +, \d +\] " , str) ||
438- occursin(r" s: assigned on \[\d , \d +\] , depends on \[\d , \d +\] , and used by \[\d +, \d +, \d +\] " , str) # global var inference
439- end
440- if Base. VERSION < v" 1.9"
441- @test (count(occursin(" preds: [1, $(i- 1 ) , $(i+ 1 ) ], succs: [1, $(i+ 1 ) ]" , str) for i = 1 : length(src. code)) == 1 ) ||
442- (count(occursin(" preds: [4, $(i- 1 ) , $(i+ 4 ) ], succs: [$(i+ 2 ) ]" , str) for i = 1 : length(src. code)) == 1 ) # global var inference
443- end
444- else
445- @test occursin(" No IR statement printer" , str)
446- end
447398
448399 # display slot names
449400 ex = :(let
0 commit comments