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 <felix...@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@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
> ja...@supmenow.com
> +44 7523 279 698
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
>
>


-- 
 Wizard
ja...@supmenow.com
+44 7523 279 698
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to