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 <[email protected]>
> wrote:
>
>
>> On Sep 23, 2017, at 3:39 PM, David Zarzycki via swift-dev
>> <[email protected]> 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
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-dev
>
> _______________________________________________
> swift-dev mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-dev
_______________________________________________
swift-dev mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-dev