@@ -56,6 +56,11 @@ function extracttype(T)
5656 isa (p1, TypeVar) && return p1. ub
5757 error (" unrecognized type " , T)
5858end
59+ if isdefined (Core, :TypeofVararg )
60+ istva (T) = isa (T, Core. TypeofVararg)
61+ else
62+ istva (T) = false
63+ end
5964function in_module_or_core (T, mod:: Module )
6065 if isa (T, TypeVar)
6166 return in_module_or_core (T. ub, mod)
@@ -68,6 +73,10 @@ function in_module_or_core(T, mod::Module)
6873 in_module_or_core (T. a, mod) || return false
6974 return in_module_or_core (T. b, mod)
7075 end
76+ if istva (T)
77+ isdefined (T, :T ) || return true
78+ return in_module_or_core (T. T, mod)
79+ end
7180 Tname = T. name
7281 if Tname. name === :Type
7382 return in_module_or_core (extracttype (T), mod)
@@ -111,4 +120,14 @@ for sig in failed
111120 all (T-> in_module_or_core (T, Base), Base. unwrap_unionall (sig). parameters[2 : end ]) || continue
112121 push! (realfailed, sig)
113122end
114- @test length (realfailed) < 40 # big enough for some cushion in case new "difficult" methods get added
123+ if false # change to true to see the failures
124+ world = Base. get_world_counter ()
125+ for tt in realfailed
126+ println (tt)
127+ mms = Base. _methods_by_ftype (tt, - 1 , world)
128+ for mm in mms
129+ println (mm. method)
130+ end
131+ end
132+ end
133+ @test length (realfailed) < 60 # big enough for some cushion in case new "difficult" methods get added
0 commit comments