> On Nov 28, 2017, at 12:34 AM, Slava Pestov <spes...@apple.com> wrote: > > > >> On Nov 27, 2017, at 3:38 PM, Matthew Johnson via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> You are effectively proposing that in this very narrow case we perform >> overload resolution on a symbol in a generic type context *after* the >> generic type has been replaced with a concrete type. > > Keep in mind that in general, this would require runtime support — we don’t > always know the concrete substitution for a generic parameter at compile > time, especially in the presence of separate compilation (but even without, > for instance when optimizations are not enabled or unable to recover concrete > type information).
Thanks for mentioning that. IMO, it rules out this approach as it means we wouldn’t always know statically whether a default argument is available. C++ gets away with it because templates are always substituted during compilation and that isn’t true for Swift generics. > > Slava
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution