Hi Robert, As a prerequisite to some other hacking I’m doing, I have an experimental implementation of value semantics; where (among other details), all functions have a bit in ExtInfo that denotes whether the function has enforced value semantics or not. As a matter of polish, I’d like the following code to work:
// reference semantic context someValueTypeArray.sort({ // hasValueSemantics ExtInfo bit propagates from the // parameter type of sort() to the ClosureExpr type }) Hence the desire to have the closure’s type be a disjunction between two FunctionTypes, one where the “hasValueSemantics” bit is set, and one where it is not. If there is a better way to do this, I’m open. :-) Thanks, Dave > On Sep 23, 2017, at 20:11, Robert Widmann via swift-dev <swift-dev@swift.org> > wrote: > > >> On Sep 23, 2017, at 3:39 PM, David Zarzycki via swift-dev >> <swift-dev@swift.org> wrote: >> >> Hello, >> >> I’m trying to replace the explicit FunctionType returned by >> visitClosureExpr() in CSGen.cpp with a type variable; and ultimately a >> disjunction of two FunctionTypes with different ExtInfo flags set (one >> favored, one not). > > I really don’t recommend doing this. Even the current late-binding of a > proper function type in closure inference is an artifact of the old function > type representation that needs to go away (you’re probably running into > parameter inference doing weird things which is a symptom of the larger > problem). What does it matter that the two function types have different > ExtInfo? What are you trying to do here? > > ~Robert Widmann > >> >> Thanks, >> Dave >> _______________________________________________ >> swift-dev mailing list >> swift-dev@swift.org >> https://lists.swift.org/mailman/listinfo/swift-dev > > _______________________________________________ > swift-dev mailing list > swift-dev@swift.org > https://lists.swift.org/mailman/listinfo/swift-dev
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev