@@ -18,31 +18,42 @@ let infos = Any[]
1818 @test isempty (parents)
1919end
2020
21+ make_cfunction () = @cfunction (+ , Float64, (Int64,Int64))
22+
2123# use TRIM_UNSAFE to bypass verifier inside typeinf_ext_toplevel
22- let infos = typeinf_ext_toplevel (Any[Core. svec (Base. SecretBuffer, Tuple{Type{Base. SecretBuffer}})], [Base. get_world_counter ()], TRIM_UNSAFE)
23- @test_broken length (infos) > 4
24+ let infos = typeinf_ext_toplevel (Any[Core. svec (Ptr{Cvoid}, Tuple{typeof (make_cfunction)})], [Base. get_world_counter ()], TRIM_UNSAFE)
2425 errors, parents = get_verify_typeinf_trim (infos)
2526 @test_broken isempty (errors) # missing cfunction
26- # resize!(infos, 4)
27- # errors, = get_verify_typeinf_trim(infos)
2827
2928 desc = only (errors)
3029 @test desc. first
3130 desc = desc. second
3231 @test desc isa CallMissing
33- @test occursin (" finalizer " , desc. desc)
32+ @test occursin (" cfunction " , desc. desc)
3433 repr = sprint (verify_print_error, desc, parents)
3534 @test occursin (
36- r""" ^unresolved finalizer registered from statement \( Core.finalizer \)\( Base.final_shred!, %new \(\ ) ::Base.SecretBuffer \) :: Nothing
35+ r""" ^unresolved cfunction from statement \$\( Expr \( :cfunction, Ptr{Nothing}, : \(\$\( QuoteNode \(\+\)\)\) , Float64, : \( svec \( Int64, Int64 \ ) ::Core.SimpleVector \) , : \( :ccall \)\)\) ::Ptr{ Nothing}
3736 Stacktrace:
38- \[ 1\] finalizer\( f::typeof\( Base.final_shred!\) , o::Base.SecretBuffer\)
39- @ Base gcutils.jl:(\d +) \[ inlined\]
40- \[ 2\] Base.SecretBuffer\( ; sizehint::Int\d\d\)
41- @ Base secretbuffer.jl:(\d +) \[ inlined\]
42- \[ 3\] Base.SecretBuffer\(\)
43- @ Base secretbuffer.jl:(\d +)
37+ \[ 1\] make_cfunction\(\) """ , repr)
38+
39+ resize! (infos, 1 )
40+ @test infos[1 ] isa Core. SimpleVector && infos[1 ][1 ] isa Type && infos[1 ][2 ] isa Type
41+ errors, parents = get_verify_typeinf_trim (infos)
42+ desc = only (errors)
43+ @test ! desc. first
44+ desc = desc. second
45+ @test desc isa CCallableMissing
46+ @test desc. rt == Ptr{Cvoid}
47+ @test desc. sig == Tuple{typeof (make_cfunction)}
48+ @test occursin (" unresolved ccallable" , desc. desc)
49+ repr = sprint (verify_print_error, desc, parents)
50+ @test repr == " unresolved ccallable for Tuple{typeof(make_cfunction)} => Ptr{Nothing}\n\n "
51+ end
4452
45- $""" , repr)
53+ let infos = typeinf_ext_toplevel (Any[Core. svec (Base. SecretBuffer, Tuple{Type{Base. SecretBuffer}})], [Base. get_world_counter ()], TRIM_UNSAFE)
54+ @test length (infos) > 4
55+ errors, parents = get_verify_typeinf_trim (infos)
56+ @test isempty (errors)
4657
4758 resize! (infos, 1 )
4859 @test infos[1 ] isa Core. SimpleVector && infos[1 ][1 ] isa Type && infos[1 ][2 ] isa Type
0 commit comments