> From the example you gave it appears that we can have a concrete problem when:
> 1. There is a parameter with a default value,
> 2. That parameter is type-hinted,
> 3. The hinted type is declared as a union type,
> 4. An earlier version of the library initialized the default with a value 
> having one of the union types,
> 5. End-user developers used the library and then use `default` as an 
> expression of that type, and finally
> 6. The library developer changed the initialization of the `default` to a 
> different type from the union.
>
> Did I correctly identify the problematic use-case?

Not really. #2 and #3 are irrelevant mixed is actually much more problematic, I 
wanted to provide an example that was strongly typed intentionally to show the 
problem even when types were explicit. The relevant portion is #1, #5 and #6.
> Ok, so for argument sake, what if they revise the RFC to only allow `default` 
> to be used in an expression when the parameter is not type-hinted with a 
> union? Would that address your concern? Or are there other use-cases that are 
> problematic that do not hinge on the parameter being type-hinted as a union 
> type?
It wouldn't be enough, offhand it'd also have to be forbidden for mixed (at 
which point I think the utility isn't there anymore).

Reply via email to