> On Nov 10, 2017, at 12:37 PM, Charles Srstka <cocoa...@charlessoft.com> wrote: > >> On Nov 10, 2017, at 12:04 PM, Joe Groff via swift-evolution >> <swift-evolution@swift.org> wrote: >> >> I don't like the idea of some calls having wildly different semantics from >> others; it's difficult enough to tell what exactly a call might be doing >> already. Since we also lack the more obvious static "Callable" protocol idea >> to give even well-typed call syntax to user-defined types, this also seems >> like it'd be easily abused for that purpose too. > > We already have that though, with the Objective-C bridge. How is the proposed > behavior here more wildly different than the semantics of non-@objc, @objc, > and @objc dynamic calls?
The language semantics aren't any different for non-@objc or @objc calls. The dispatch mechanism is an implementation detail. `dynamic` admits the possibility of late binding to change the method implementation dynamically, but doesn't change the type system behavior of the method, or radically change the implementation mechanism; it's still ultimately an indirect call, it doesn't turn your argument list into a dictionary that can be arbitrarily interpreted by user code. -Joe _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution