rfc:closures_in_const_expr
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
rfc:closures_in_const_expr [2024/10/25 10:47] – timwolla | rfc:closures_in_const_expr [2024/11/13 13:35] (current) – Voting timwolla | ||
---|---|---|---|
Line 2: | Line 2: | ||
* Version: 1.0 | * Version: 1.0 | ||
* Date: 2024-10-24 | * Date: 2024-10-24 | ||
- | * Author: Tim Düsterhus, tim@tideways-gmbh.com | + | * Author: Tim Düsterhus |
- | * Status: | + | * Status: |
* First Published at: https:// | * First Published at: https:// | ||
Line 45: | Line 45: | ||
* Attribute parameters. | * Attribute parameters. | ||
- | * Default values of properties, parameters, | + | * Default values of properties and parameters. |
* Constants and Class Constants. | * Constants and Class Constants. | ||
Line 52: | Line 52: | ||
If Closures are placed in constant expressions they are subject to the following constraints: | If Closures are placed in constant expressions they are subject to the following constraints: | ||
- | * They must not include variables from the surrounding scope using < | + | * They may not include variables from the surrounding scope using < |
- | * They must be < | + | * They must be < |
+ | |||
+ | Both of these constraints will be verified at compile time. | ||
==== Scoping ==== | ==== Scoping ==== | ||
Line 90: | Line 92: | ||
</ | </ | ||
- | Passing a Closure to a new expression: | + | Passing a Closure to a <php>new</ |
<PHP> | <PHP> | ||
Line 131: | Line 133: | ||
} | } | ||
})] | })] | ||
- | public function testSubtraction(int $minuend, | + | public function testSubtraction(int $minuend, |
{ | { | ||
\assert(Calculator:: | \assert(Calculator:: | ||
Line 138: | Line 140: | ||
</ | </ | ||
- | Custom formatting for an attribute-based | + | Custom formatting for an attribute-based |
<PHP> | <PHP> | ||
Line 196: | Line 198: | ||
* Support non-static Closures. | * Support non-static Closures. | ||
* Support first-class callables. | * Support first-class callables. | ||
+ | * Support variable capturing if/when variables may appear in constant expressions. | ||
===== Proposed Voting Choices ===== | ===== Proposed Voting Choices ===== | ||
- | <doodle title=" | + | <doodle title=" |
* Yes | * Yes | ||
* No | * No |
rfc/closures_in_const_expr.1729853247.txt.gz · Last modified: 2024/10/25 10:47 by timwolla