[swift-evolution] Explicity Size Clipping
James Campbell
james at supmenow.com
Wed Jan 6 12:17:03 CST 2016
protocol Box: CustomStringConvertible, CustomDebugStringConvertible {
typealias FloatLiteralType = Double
typealias IntegerLiteralType = Int
typealias BoxType = Any
var value: BoxType { get set }
init()
init(_ value: BoxType)
}
extension Box where Self.BoxType == Double {
init(_ value: Double) {
self.init()
self.value = value
}
init(_ value: Int) {
self.init()
self.value = Double(value)
}
init(_ value: UInt32) {
self.init()
self.value = Double(value)
}
}
Without that last method, Swift tries to give the UInt32 to the Int version
of the method which isn't safe in my eyes and I would have expected a
compiler error.
On Wed, Jan 6, 2016 at 6:14 PM, Félix Cloutier <felixcca at yahoo.ca> wrote:
> I don't understand. Can you show a code example?
>
> Félix
>
> Le 6 janv. 2016 à 13:02:43, James Campbell via swift-evolution <
> swift-evolution at swift.org> a écrit :
>
> I have a overloaded method for a protocol that takes an Int or double.
>
> I have an issue with swift calling the Int version when passing in a
> UInt32 . Ideally I would prefer the compiler to detect I am about to do
> something which will cause an overflow and throw an error.
>
> I would then have to explicitly add a overloaded UInt32 method or
> explicitly convert it to Int like so "Int(uintVariable)".
>
> --
> Wizard
> james at supmenow.com
> +44 7523 279 698
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>
--
Wizard
james at supmenow.com
+44 7523 279 698
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160106/de8bd7c8/attachment.html>
More information about the swift-evolution
mailing list