swiftlang/swift

[SR-11397] FixedWidthInteger.init?(_: radix:) fails for Self with short bitWidth

Open

#53,798 opened on Aug 30, 2019

View on GitHub
 (5 comments) (0 reactions) (1 assignee)Swift (69,989 stars) (10,719 forks)batch import
buggood first issuestandard library

Description

Previous ID SR-11397
Radar None
Original Reporter CTMacUser (JIRA User)
Type Bug
Votes 0
Component/s Standard Library
Labels Bug, StarterBug
Assignee @theblixguy
Priority Medium

md5: 71036ce9352bad83dc05a0cfcdea3df7

Issue Description:

The current implementation of FixedWidthInteger.init?(_: radix: ) converts the radix to the receiver type. If that type has less than 6 bits of width, not all radix values are supported and a run error happens at the conversion.

Theoretically, any width above zero should work if we go to a bignum implementation. I'm not suggesting we do that, but that workaround indicates we shouldn't return a nil from the initializer in such cases, because that would imply a user error and not a implementation error. I guess a fatal error is more appropriate.

(BTW, my code was testing with a zero-width type, so there may be other problems.)

Contributor guide