Skip to content

Commit 9902729

Browse files
committed
Fix ambiguities and enable tests for ambiguities
1 parent 25affc6 commit 9902729

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/fixed.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ struct Fixed{T <: Signed,f} <: FixedPoint{T, f}
77
Fixed{T, f}(i::Integer, _) where {T,f} = new{T, f}(i % T)
88
Fixed{T, f}(x) where {T,f} = convert(Fixed{T,f}, x)
99
Fixed{T, f}(x::Fixed{T,f}) where {T,f} = x
10+
Fixed{T, f}(x::Char) where {T,f} = throw(ArgumentError("Fixed cannot be constructed from a Char"))
11+
Fixed{T, f}(x::Complex) where {T,f} = Fixed{T, f}(real(x))
12+
Fixed{T, f}(x::Base.TwicePrecision) where {T,f,S} = Fixed{T, f}(convert(Float64, x))
1013
end
1114

1215
reinterpret(::Type{Fixed{T,f}}, x::T) where {T <: Signed,f} = Fixed{T,f}(x, 0)

src/normed.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ struct Normed{T<:Unsigned,f} <: FixedPoint{T,f}
77
Normed{T, f}(i::Integer,_) where {T,f} = new{T, f}(i%T) # for setting by raw representation
88
Normed{T, f}(x) where {T,f} = convert(Normed{T,f}, x)
99
Normed{T, f}(x::Normed{T,f}) where {T,f} = x
10+
Normed{T, f}(x::Char) where {T,f} = throw(ArgumentError("Normed cannot be constructed from a Char"))
11+
Normed{T, f}(x::Complex) where {T,f} = Normed{T, f}(real(x))
12+
Normed{T, f}(x::Base.TwicePrecision) where {T,f,S} = Normed{T, f}(convert(Float64, x))
1013
end
1114

1215
typechar(::Type{X}) where {X <: Normed} = 'N'

test/runtests.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
using FixedPointNumbers, Base.Test
22

3-
if VERSION < v"0.7.0-"
4-
@test isempty(detect_ambiguities(FixedPointNumbers, Base, Core))
5-
end
3+
@test isempty(detect_ambiguities(FixedPointNumbers, Base, Core))
64

75
for f in ["normed.jl", "fixed.jl"]
86
println("Testing $f")

0 commit comments

Comments
 (0)