rfc:union_types
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
rfc:union_types [2016/06/14 14:42] levim |
rfc:union_types [2016/06/25 15:13] bwoebi sigh. |
||
---|---|---|---|
Line 3: | Line 3: | ||
* Date: 2015-02-14 | * Date: 2015-02-14 | ||
* Author: Levi Morrison < | * Author: Levi Morrison < | ||
- | * Status: | + | * Status: |
* First Published at: http:// | * First Published at: http:// | ||
Line 25: | Line 25: | ||
This RFC seeks to address these limitations. | This RFC seeks to address these limitations. | ||
- | ==== Proposal ==== | + | ===== Proposal |
This RFC proposes the ability to define multiple possible types for parameter and return types. To define a 'union type' a single vertical bar (OR) is placed between types e.g. '' | This RFC proposes the ability to define multiple possible types for parameter and return types. To define a 'union type' a single vertical bar (OR) is placed between types e.g. '' | ||
Line 32: | Line 32: | ||
There can be more than two types in the union. | There can be more than two types in the union. | ||
- | === Parameter type examples === | + | ==== Parameter type examples |
A function that requires either a string or an array is passed to it as the parameter: | A function that requires either a string or an array is passed to it as the parameter: | ||
<PHP> | <PHP> | ||
Line 59: | Line 59: | ||
For this example, it is clear to both static analysis tools and humans that passing anything other than a ParameterGenerator object or a string to this function, would be an error. | For this example, it is clear to both static analysis tools and humans that passing anything other than a ParameterGenerator object or a string to this function, would be an error. | ||
- | === Return type example === | + | ==== Return type example |
A userland definition of '' | A userland definition of '' | ||
Line 173: | Line 173: | ||
Additionally, | Additionally, | ||
- | <doodle title=" | + | <doodle title=" |
* Yes | * Yes | ||
* No | * No | ||
</ | </ | ||
| | ||
- | <doodle title=" | + | <doodle title=" |
* Yes | * Yes | ||
* No | * No |
rfc/union_types.txt · Last modified: 2017/09/22 13:28 (external edit)