Skip to content

Commit ad2ca52

Browse files
authored
Replace Composition with Resolved Value sections for default functions (#927)
1 parent 5f6657b commit ad2ca52

File tree

1 file changed

+36
-38
lines changed

1 file changed

+36
-38
lines changed

spec/registry.md

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ The function `:string` has no options.
4848
> Proposals for string transformation options or implementation
4949
> experience with user requirements is desired during the Tech Preview.
5050
51+
#### Resolved Value
52+
53+
The _resolved value_ of an _expression_ with a `:string` _function_
54+
contains the string value of the _operand_ of the annotated _expression_,
55+
together with its resolved locale and directionality.
56+
None of the _options_ set on the _expression_ are part of the _resolved value_.
57+
5158
#### Selection
5259

5360
When implementing [`MatchSelectorKeys(resolvedSelector, keys)`](/spec/formatting.md#resolve-preferences)
@@ -86,14 +93,6 @@ The `:string` function returns the string value of the _resolved value_ of the _
8693
> Users SHOULD encode _messages_ and their parts in Unicode Normalization Form C (NFC)
8794
> unless there is a very good reason not to.
8895
89-
#### Composition
90-
91-
When an _operand_ or an _option_ value uses a _variable_ annotated,
92-
directly or indirectly, by a `:string` _function_,
93-
its _resolved value_ contains the string value of the _operand_ of the annotated _expression_,
94-
together with its resolved locale and directionality.
95-
None of the _options_ set on the _expression_ are part of the _resolved value_.
96-
9796
## Numeric Value Selection and Formatting
9897
9998
### The `:number` function
@@ -235,18 +234,17 @@ MUST be multiplied by 100 for the purposes of formatting.
235234
> should format in a manner similar to:
236235
> > The total was 50%.
237236
238-
#### Selection
239-
240-
The _function_ `:number` performs selection as described in [Number Selection](#number-selection) below.
241-
242-
#### Composition
237+
#### Resolved Value
243238
244-
When an _operand_ or an _option_ value uses a _variable_ annotated,
245-
directly or indirectly, by a `:number` _annotation_,
246-
its _resolved value_ contains an implementation-defined numerical value
239+
The _resolved value_ of an _expression_ with a `:number` _function_
240+
contains an implementation-defined numerical value
247241
of the _operand_ of the annotated _expression_,
248242
together with the resolved options' values.
249243
244+
#### Selection
245+
246+
The _function_ `:number` performs selection as described in [Number Selection](#number-selection) below.
247+
250248
### The `:integer` function
251249
252250
The function `:integer` is a selector and formatter for matching or formatting numeric
@@ -372,18 +370,17 @@ MUST be multiplied by 100 for the purposes of formatting.
372370
> should format in a manner similar to:
373371
> > The total was 50%.
374372
375-
#### Selection
376-
377-
The _function_ `:integer` performs selection as described in [Number Selection](#number-selection) below.
378-
379-
#### Composition
373+
#### Resolved Value
380374
381-
When an _operand_ or an _option_ value uses a _variable_ annotated,
382-
directly or indirectly, by a `:integer` _annotation_,
383-
its _resolved value_ contains the implementation-defined integer value
375+
The _resolved value_ of an _expression_ with an `:integer` _function_
376+
contains the implementation-defined integer value
384377
of the _operand_ of the annotated _expression_,
385378
together with the resolved options' values.
386379
380+
#### Selection
381+
382+
The _function_ `:integer` performs selection as described in [Number Selection](#number-selection) below.
383+
387384
### Number Operands
388385
389386
The _operand_ of a number function is either an implementation-defined type or
@@ -707,11 +704,10 @@ are encouraged to track development of these options during Tech Preview:
707704
- `timeZone` (default is system default time zone or UTC)
708705
- valid identifier per [BCP175](https://www.rfc-editor.org/rfc/rfc6557)
709706
710-
#### Composition
707+
#### Resolved Value
711708
712-
When an _operand_ or an _option_ value uses a _variable_ annotated,
713-
directly or indirectly, by a `:datetime` _annotation_,
714-
its _resolved value_ contains an implementation-defined date/time value
709+
The _resolved value_ of an _expression_ with a `:datetime` _function_
710+
contains an implementation-defined date/time value
715711
of the _operand_ of the annotated _expression_,
716712
together with the resolved options values.
717713
@@ -743,13 +739,14 @@ it can include other option values.
743739
Any _operand_ option values matching the `:datetime` _style options_ or _field options_ are ignored,
744740
as is any `style` option.
745741
746-
#### Composition
742+
#### Resolved Value
743+
744+
The _resolved value_ of an _expression_ with a `:date` _function_
745+
is implementation-defined.
747746
748-
When an _operand_ or an _option_ value uses a _variable_ annotated,
749-
directly or indirectly, by a `:date` _annotation_,
750-
its _resolved value_ is implementation-defined.
751747
An implementation MAY emit a _Bad Operand_ or _Bad Option_ error (as appropriate)
752-
when this happens.
748+
when a _variable_ annotated directly or indirectly by a `:date` _annotation_
749+
is used as an _operand_ or an _option_ value.
753750
754751
### The `:time` function
755752
@@ -779,13 +776,14 @@ it can include other option values.
779776
Any _operand_ option values matching the `:datetime` _style options_ or _field options_ are ignored,
780777
as is any `style` option.
781778
782-
#### Composition
779+
#### Resolved Value
780+
781+
The _resolved value_ of an _expression_ with a `:time` _function_
782+
is implementation-defined.
783783
784-
When an _operand_ or an _option_ value uses a _variable_ annotated,
785-
directly or indirectly, by a `:time` _annotation_,
786-
its _resolved value_ is implementation-defined.
787784
An implementation MAY emit a _Bad Operand_ or _Bad Option_ error (as appropriate)
788-
when this happens.
785+
when a _variable_ annotated directly or indirectly by a `:time` _annotation_
786+
is used as an _operand_ or an _option_ value.
789787
790788
### Date and Time Operands
791789

0 commit comments

Comments
 (0)