> On 18 Aug 2016, at 16:32, John McCall <[email protected]> wrote:
> 
> Unapplied method references still dispatch down.  It's a pretty simple 
> experiment to run for yourself.

When I tried calling a specific superclass implementation, there was a stack 
overflow due to the infinite recursion.

        class Once {
            func value() -> Int {
                return 1
            }
        }

        class Twice: Once {
            override func value() -> Int {
                return 2
            }
        }

        class Thrice: Twice {
            override func value() -> Int {
                return 3

                // EXC_BAD_ACCESS:
                // return Once.value(self)()
            }
        }

        let once = Once()
        once.value()            //-> 1
        Once.value(once)()      //-> 1

        let twice = Twice()
        twice.value()           //-> 2
        Once.value(twice)()     //-> 2
        Twice.value(twice)()    //-> 2

        let thrice = Thrice()
        thrice.value()          //-> 3
        Once.value(thrice)()    //-> 3
        Twice.value(thrice)()   //-> 3
        Thrice.value(thrice)()  //-> 3

-- Ben

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to