On Jun 7, 2016, at 2:49 PM, L Mihalkovic <laurent.mihalko...@gmail.com> wrote:
>> This is my favorite approach (assuming it's technically feasible) as it 
>> preserves the limitation that the enumerations are scoped strictly to the 
>> function but can be referenced outside of it.
>> 
>> It allows type inference for dropped prefixes because the compiler can 
>> unambiguously match the ad hoc enumeration type to the parameter.
>> It introduces the possibility (for Matthew) of assigning a value to a 
>> variable.
>> It preserves the notion that an ad-hoc enum makes syntactic and semantic 
>> sense only with respect to its use in a function/method parameter list.
>> 
>> If an enumeration needs wider semantics, it should be a standalone type, 
>> whether as a nested or not.
>> 
>> Reiterating the reasons for this pitch:
>> It streamlines coding, eliminating standalone enumeration types that are 
>> used only once
>> It enables you to see all enumeration options at a glance, and can be 
>> reflected in the QuickHelp documentation
>> It encourages `switch` coding over `if-then-else` coding so each case is 
>> labeled and self documenting
>> It pushes semantics to the call-site in a way that simple Boolean flags 
>> cannot: `operation: .Fit` means more than `shouldFill: false`.
>> I'd like to know at this point whether Hooman's approach is even technically 
>> feasible, although it's horrible timing the Tuesday before WWDC to get core 
>> team feedback on anything.
>> 
> 
> There is currently a draft circulating for the removal of @noreturn. If 
> memory serves, I think there was another annotation recently removed. There 
> was also the recent change of dynamicType into something like type(of:).. all 
> these changes have one thing in common: they are streamlining the language, 
> chasing the magic out and replacing it with the careful application of a few 
> simple principles. @_exposed would IMVHO be a setback: 
> 
> it would introduce a new special annotation
> the annotation would have very little chance of being anything but a one of, 
> used for a single scenario
> 
> Scala went that way years ago, going left right and center, with all sort of 
> great ideas. In the end, for the past few Scala Days Oderski has been going 
> on stage explaining why a language with too many clever tricks is in nobody’s 
> interest.
> 
> if and when they decide to focus on small syntactic sugaring enhancements 
> (akin to javac's Project Coin), then they have an easy way to make it happen 
> without any magic or special rules.

What appeals to me is scoping the enumeration to the function: Semantic sugar 
that creates a global

function.parameterName.enum {case ... }

You had suggested using semantic sugar in a different way, did you not? 

-- E

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

Reply via email to