@@ -18,31 +18,42 @@ let infos = Any[]
18
18
@test isempty (parents)
19
19
end
20
20
21
+ make_cfunction () = @cfunction (+ , Float64, (Int64,Int64))
22
+
21
23
# 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)
24
25
errors, parents = get_verify_typeinf_trim (infos)
25
26
@test_broken isempty (errors) # missing cfunction
26
- # resize!(infos, 4)
27
- # errors, = get_verify_typeinf_trim(infos)
28
27
29
28
desc = only (errors)
30
29
@test desc. first
31
30
desc = desc. second
32
31
@test desc isa CallMissing
33
- @test occursin (" finalizer " , desc. desc)
32
+ @test occursin (" cfunction " , desc. desc)
34
33
repr = sprint (verify_print_error, desc, parents)
35
34
@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}
37
36
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
44
52
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)
46
57
47
58
resize! (infos, 1 )
48
59
@test infos[1 ] isa Core. SimpleVector && infos[1 ][1 ] isa Type && infos[1 ][2 ] isa Type
0 commit comments