[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