swiftlang/swift

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

Open

#53,798 建立於 2019年8月30日

在 GitHub 查看
 (5 留言) (0 反應) (1 負責人)Swift (69,989 star) (10,719 fork)batch import
buggood first issuestandard library

描述

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

貢獻者指南