You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 25, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: proposals/exception-handling/Exceptions-formal-overview.md
+9-9Lines changed: 9 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -36,14 +36,14 @@ mod ::= 'module' ... tag*
36
36
37
37
## Validation (Typing)
38
38
39
-
#### Modification to Labels
39
+
40
+
### Validation Contexts: Tagtypes and modified Labels
40
41
41
42
To verify that the `rethrow l` instruction refers to a label surrounding the instructions of a catch block (call this a catch-label), we introduce a `kind` attribute to labels in the validation context, which is set to `catch` when the label is a catch-label and empty otherwise.
42
43
43
44
```
44
45
labelkind ::= 'catch'
45
46
labeltype ::= 'catch'? resulttype
46
-
C ::= {..., 'labels' labeltype}
47
47
```
48
48
49
49
The original notation `labels [t*]` is now an abbreviation for:
@@ -52,11 +52,11 @@ The original notation `labels [t*]` is now an abbreviation for:
52
52
'labels' [t*] ::= 'labels' ε [t*]
53
53
```
54
54
55
-
### Validation Contexts
55
+
The `labels` entry of validation contexts is modified to use the above definition of labels.
56
+
Moreover, validation contexts now hold a list of tag types, one for each tag known to them.
56
57
57
-
Validation contexts now hold a list of tag types, one for each tag known to them.
0 commit comments