Commits
Doug Gregor committed 737a1fff99e
Implement support in the constraint system for unresolved member
expressions like ".none", which refer to a oneof member of unknown
type. Such expressions are strange, because the expression ".foo" can
either have the type T0 or the type T1 -> T0, where T0 is the oneof
type (which is unknown) and T1 is a fresh type variable. The choice
depends on whether the named member ends up having unit type or not,
because the usage of the two varies:
.none
requires no applications to be useful but
.value('a')
does require the application to be useful.
Model this as a new kind of overload set in the constraint system,
because it can't be expressed without the disjunction provided by
overload sets.
Swift SVN r2804