@@ -6,7 +6,7 @@ using Test
66
77@testset " @syms" begin
88 let
9- @syms a b:: Float64 f (:: Real ) g (p, h (q:: Real )):: Int
9+ @syms a b:: Float64 f (:: Real ) g (p, h (q:: Real )):: Int
1010
1111 @test issym (a) && symtype (a) == Number
1212 @test a. name === :a
@@ -16,9 +16,11 @@ using Test
1616
1717 @test issym (f)
1818 @test f. name === :f
19+ @test symtype (f) == FnType{Tuple{Real}, Number, Nothing}
1920
2021 @test issym (g)
2122 @test g. name === :g
23+ @test symtype (g) == FnType{Tuple{Number, FnType{Tuple{Real}, Number, Nothing}}, Int, Nothing}
2224
2325 @test isterm (f (b))
2426 @test symtype (f (b)) === Number
@@ -32,6 +34,21 @@ using Test
3234 # issue #91
3335 @syms h (a,b,c)
3436 @test isequal (h (1 ,2 ,3 ), h (1 ,2 ,3 ))
37+
38+ @syms (f:: typeof (max))(:: Real , :: AbstractFloat ):: Number a:: Real
39+ @test issym (f)
40+ @test f. name == :f
41+ @test symtype (f) == FnType{Tuple{Real, AbstractFloat}, Number, typeof (max)}
42+ @test isterm (f (a, b))
43+ @test symtype (f (a, b)) == Number
44+
45+ @syms g (p, (h:: typeof (identity))(q:: Real ):: Number ):: Number
46+ @test issym (g)
47+ @test g. name == :g
48+ @test symtype (g) == FnType{Tuple{Number, FnType{Tuple{Real}, Number, typeof (identity)}}, Number, Nothing}
49+ @test_throws " not a subtype of" g (a, f)
50+ @syms (f:: typeof (identity))(:: Real ):: Number
51+ @test symtype (g (a, f)) == Number
3552 end
3653end
3754
0 commit comments