@@ -68,6 +68,7 @@ let T = TypeVar(:T,true)
68
68
69
69
@test typeintersect (Type{Array{T}}, Type{AbstractArray{T}}) === Bottom
70
70
71
+ @test typeintersect (Tuple{Vararg{T}},Tuple{Float64,Int}) === Bottom
71
72
@test typeintersect (Type{Tuple{Bool,Vararg{Int}}}, Type{Tuple{Vararg{T}}}) === Bottom
72
73
@test typeintersect (Type{Tuple{Bool,Vararg{Int}}}, Type{Tuple{T,Vararg{T}}}) === Bottom
73
74
@@ -115,6 +116,26 @@ let T = TypeVar(:T,Union(Float32,Float64),true)
115
116
@test typeintersect (AbstractArray, Matrix{T}) == Matrix{T}
116
117
end
117
118
119
+ # Vararg{T,N}
120
+ let N = TypeVar (:N ,true )
121
+ @test is (Bottom,typeintersect (Tuple{Array{Int,N},Vararg{Int,N}}, Tuple{Vector{Int},Real,Real,Real}))
122
+ @test is (Bottom,typeintersect (Tuple{Vector{Int},Real,Real,Real}, Tuple{Array{Int,N},Vararg{Int,N}}))
123
+ @test Tuple{Int,Vararg{Int,2 }} == Tuple{Int,Int,Int}
124
+ @test Tuple{Int,Vararg{Int,2 }} == Tuple{Int,Int,Vararg{Int,1 }}
125
+ @test Tuple{Int,Vararg{Int,2 }} == Tuple{Int,Int,Int,Vararg{Int,0 }}
126
+ @test ! (Tuple{Int,Vararg{Int,2 }} <: Tuple{Int,Int,Int,Vararg{Int,1}} )
127
+ # @test !(Tuple{Int,Vararg{Int,2}} <: Tuple{Int,Vararg{Int,N}})
128
+ @test Tuple{Int,Vararg{Int,N}} == Tuple{Int,Vararg{Int,N}}
129
+ # @test !(Tuple{Int,Vararg{Int,2}} <: Tuple{Int,Int,Vararg{Int}})
130
+ @test typeintersect (Tuple{Array{Int,N},Vararg{Int,N}},Tuple{Array{Int,0 }}) == Tuple{Array{Int,0 }}
131
+ @test typeintersect (Tuple{Array{Int,N},Vararg{Int,N}},Tuple{Array{Int,2 }}) == Bottom
132
+
133
+ @test typeintersect (Tuple{Int,Vararg{Int,N}}, Tuple{Int,Int,Int,Vararg{Float64}}) == Tuple{Int,Int,Int}
134
+ @test typeintersect (Tuple{Int,Vararg{Int,N}}, Tuple{Int,Vararg{Float64}}) == Tuple{Int}
135
+ @test typeintersect (Tuple{Array{Int,N},Vararg{Int,N}}, Tuple{Matrix{Int},Int,Int,Vararg{Float64}}) == Tuple{Matrix{Int},Int,Int}
136
+ @test typeintersect (Tuple{Array{Int,N},Vararg{Int,N}}, Tuple{Matrix{Int},Int,Vararg{Float64}}) == Bottom
137
+ end
138
+
118
139
@test isa (Int,Type{TypeVar (:T ,Number)})
119
140
@test ! isa (DataType,Type{TypeVar (:T ,Number)})
120
141
@test DataType <: Type{TypeVar(:T,Type)}
0 commit comments