diff --git a/base/complex.jl b/base/complex.jl index 9bbfe8d98f76e..50b6253e25540 100644 --- a/base/complex.jl +++ b/base/complex.jl @@ -27,7 +27,6 @@ convert{T<:Real}(::Type{Complex{T}}, z::Complex) = convert{T<:Real}(::Type{T}, z::Complex) = (imag(z)==0 ? convert(T,real(z)) : throw(InexactError())) -promote_rule{T<:Real}(::Type{Complex{T}}, ::Type{T}) = Complex{T} promote_rule{T<:Real,S<:Real}(::Type{Complex{T}}, ::Type{S}) = Complex{promote_type(T,S)} promote_rule{T<:Real,S<:Real}(::Type{Complex{T}}, ::Type{Complex{S}}) = diff --git a/base/rational.jl b/base/rational.jl index 5e17dcb898076..b27b4910fea19 100644 --- a/base/rational.jl +++ b/base/rational.jl @@ -53,7 +53,6 @@ end convert(::Type{Rational}, x::Float64) = convert(Rational{Int64}, x) convert(::Type{Rational}, x::Float32) = convert(Rational{Int}, x) -promote_rule{T<:Integer}(::Type{Rational{T}}, ::Type{T}) = Rational{T} promote_rule{T<:Integer,S<:Integer}(::Type{Rational{T}}, ::Type{S}) = Rational{promote_type(T,S)} promote_rule{T<:Integer,S<:Integer}(::Type{Rational{T}}, ::Type{Rational{S}}) = Rational{promote_type(T,S)} promote_rule{T<:Integer,S<:FloatingPoint}(::Type{Rational{T}}, ::Type{S}) = promote_type(T,S) diff --git a/base/string.jl b/base/string.jl index b6512c467edc2..ca46faaf0a354 100644 --- a/base/string.jl +++ b/base/string.jl @@ -814,13 +814,7 @@ end ## string promotion rules ## -promote_rule(::Type{UTF8String} , ::Type{ASCIIString}) = UTF8String -promote_rule(::Type{UTF8String} , ::Type{UTF16String}) = UTF8String -promote_rule(::Type{ASCIIString}, ::Type{UTF16String}) = UTF8String -promote_rule(::Type{UTF32String}, ::Type{UTF16String}) = UTF8String -promote_rule(::Type{UTF8String} , ::Type{UTF32String}) = UTF8String -promote_rule(::Type{ASCIIString}, ::Type{UTF32String}) = UTF8String -promote_rule{T<:String}(::Type{RepString}, ::Type{T}) = RepString +promote_rule{S<:String,T<:String}(::Type{S}, ::Type{T}) = UTF8String ## printing literal quoted string data ##