@@ -112,29 +112,32 @@ const known_ops = Dict{DataType,Tuple{Symbol,Int,Union{Nothing,Tuple{Symbol,Data
112112 Tys = (Float32, Float64)
113113
114114 if length (sparam_vals) == arity
115- T = first (sparam_vals):: Type
116- legal = T ∈ Tys
117-
118- if legal
119- if name == :ldexp
120- if ! (sparam_vals[2 ] <: Integer )
121- legal = false
122- end
123- elseif name == :pow
124- if sparam_vals[2 ] <: Integer
125- name = :powi
126- elseif sparam_vals[2 ] != T
127- legal = false
128- end
129- elseif name == :jl_rem2pi
130- else
131- if ! all (== (T), sparam_vals)
132- legal = false
115+ T = first (sparam_vals)
116+ if (T isa Type)
117+ T = T:: Type
118+ legal = T ∈ Tys
119+
120+ if legal
121+ if name == :ldexp
122+ if ! (sparam_vals[2 ] <: Integer )
123+ legal = false
124+ end
125+ elseif name == :pow
126+ if sparam_vals[2 ] <: Integer
127+ name = :powi
128+ elseif sparam_vals[2 ] != T
129+ legal = false
130+ end
131+ elseif name == :jl_rem2pi
132+ else
133+ if ! all (== (T), sparam_vals)
134+ legal = false
135+ end
133136 end
134137 end
135- end
136- if legal
137- return name, toinject, T
138+ if legal
139+ return name, toinject, T
140+ end
138141 end
139142 end
140143 end
@@ -144,15 +147,18 @@ const known_ops = Dict{DataType,Tuple{Symbol,Int,Union{Nothing,Tuple{Symbol,Data
144147 Tys = (Complex{Float32}, Complex{Float64})
145148 if length (sparam_vals) == arity
146149 T = first (sparam_vals)
147- legal = T ∈ Tys
148-
149- if legal
150- if ! all (== (T), sparam_vals)
151- legal = false
150+ if (T isa Type)
151+ T = T:: Type
152+ legal = T ∈ Tys
153+
154+ if legal
155+ if ! all (== (T), sparam_vals)
156+ legal = false
157+ end
158+ end
159+ if legal
160+ return name, toinject, T
152161 end
153- end
154- if legal
155- return name, toinject, T
156162 end
157163 end
158164 end
0 commit comments