Skip to content

Commit f72b80a

Browse files
catamorphismeemeli
andauthored
Fix contradiction in markup resolution (#1084)
* Fix contradiction in markup resolution Previously, this stated that markup resolution MUST always succeed. However, resolution of `u:` options can fail, so that wasn't true. * Revise change to mention option resolution being non-fatal * Move 'Option Resolution' section * Update spec/formatting.md Co-authored-by: Eemeli Aro <[email protected]> * Rephrase parenthetical in 'markup resolution' section * Reorder sections --------- Co-authored-by: Eemeli Aro <[email protected]>
1 parent 136d923 commit f72b80a

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

spec/formatting.md

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ and different implementations MAY choose to perform different levels of resoluti
211211
212212
_Expressions_ are used in _declarations_ and _patterns_.
213213
_Markup_ is only used in _patterns_.
214+
_Options_ are used in _expressions_ and _markup_.
214215
215216
#### Expression Resolution
216217
@@ -362,7 +363,7 @@ the following steps are taken:
362363
Specifically, if the cause of the failure was that the datatype, value, or format of the
363364
_operand_ did not match that expected by the _function_,
364365
the _function_ SHOULD cause a _Bad Operand_ error to be emitted.
365-
366+
366367
In all failure cases, return a _fallback value_ as the _resolved value_ of the _expression_.
367368
368369
###### Function Handler
@@ -397,10 +398,29 @@ and execution time SHOULD be limited.
397398
398399
Implementation-defined _functions_ SHOULD use an implementation-defined _namespace_.
399400
400-
###### Option Resolution
401+
#### Markup Resolution
402+
403+
**_<dfn>Markup resolution</dfn>_** determines the value of _markup_.
404+
Unlike _functions_, the resolution of _markup_ is not customizable.
405+
406+
The _resolved value_ of _markup_ includes the following fields:
407+
408+
- The type of the markup: open, standalone, or close
409+
- The _identifier_ of the _markup_
410+
- The resolved mapping of _options_ after _option resolution_.
411+
412+
If the resolved mapping of _options_ includes any _`u:` options_
413+
supported by the implementation, process them as specified.
414+
Such `u:` options MAY be removed from the resolved mapping of _options_.
415+
416+
The resolution of _markup_ MUST always succeed.
417+
(Any errors emitted by _option resolution_
418+
are non-fatal.)
419+
420+
#### Option Resolution
401421
402422
**_<dfn>Option resolution</dfn>_** is the process of computing the _options_
403-
for a given _expression_.
423+
for a given _expression_ or _markup_.
404424
_Option resolution_ results in a mapping of string _identifiers_ to _resolved values_.
405425
The order of _options_ MUST NOT be significant.
406426
@@ -438,23 +458,6 @@ This mapping can be empty.
438458
> These are not included in the _option resolution_ result,
439459
> and need to be processed separately by a _function handler_.
440460
441-
#### Markup Resolution
442-
443-
**_<dfn>Markup resolution</dfn>_** determines the value of _markup_.
444-
Unlike _functions_, the resolution of _markup_ is not customizable.
445-
446-
The _resolved value_ of _markup_ includes the following fields:
447-
448-
- The type of the markup: open, standalone, or close
449-
- The _identifier_ of the _markup_
450-
- The resolved mapping of _options_ after _option resolution_.
451-
452-
If the resolved mapping of _options_ includes any _`u:` options_
453-
supported by the implementation, process them as specified.
454-
Such `u:` options MAY be removed from the resolved mapping of _options_.
455-
456-
The resolution of _markup_ MUST always succeed.
457-
458461
#### Fallback Resolution
459462
460463
A **_<dfn>fallback value</dfn>_** is the _resolved value_ for

0 commit comments

Comments
 (0)