> If your code has many manual type erasing wrappers corresponding to
> protocols with associated types and/or Self requirements that also never
> have to trap type mismatches, that would certainly be instructive
> empirical data.  Would you care to share the protocols and wrappers you
> are talking about?
This code is a bit embarrassing (I wrote most of it as I was still learning 
Swift), but if it is helpful I will share:
https://gist.github.com/jonhull/639e756ad5228348f93f40f06169588c

It doesn’t trap anywhere (that I know about). Some of the code which calls it 
does throw an error in the case of mismatched types (but it doesn’t/shouldn't 
crash).  Most functions which use it are generic on the associatedType.

It does work fairly well though (even on the AppleWatch).  The main issue is 
that I have no way to persist the values which have been drawn into the 
type-erased world (or even the value-type world, really).

Also, if anyone has a better way to write the type erasing wrapper, I would 
love to hear it. These are very memory intensive…

Thanks,
Jon
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to