swiftlang/swift

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

Open

#53.798 aperta il 30 ago 2019

Vedi su GitHub
 (5 commenti) (0 reazioni) (1 assegnatario)Swift (10.719 fork)batch import
buggood first issuestandard library

Metriche repository

Star
 (69.989 star)
Metriche merge PR
 (Merge medio 8g 17h) (510 PR mergiate in 30 g)

Descrizione

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.)

Guida contributor