Possibly wrong pattern for `union-type-case-data` in spec
- Langage dominant
- TeX
- Étoiles
- 311
- Forks
- 291
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
On a page 139 (8. Type definition) possible union cases listed as follow:
```
union-type-case-data :=
ident --null union case
ident of union-type-field * ... * union-type-field --n-ary union case
ident : uncurried-sig --n-ary union case
uncurried-sig :=
args-spec -> type
args-spec :=
arg-spec * ... * arg-spec
```
But this one doesn't compile:
```
type Test =
| A
| B of int*int
| C : int->int
```
with error:
> Return types of union cases must be identical to the type being defined, up to abbreviations
> This construct is deprecated: it is only for use in the F# library
But this one is correct:
```
type Test =
| A
| B of int*int
| C of (int->int) //parentheses are required
```
So probably `union-type-case-data` should look like:
```
union-type-case-data :=
ident --null union case
ident of union-type-field * ... * union-type-field --n-ary union case
ident of (uncurried-sig) --n-ary union case
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par localiser la source de la page 139 de la section consacrée à la définition des types, puis comparez la grammaire documentée de union-type-case-data avec les exemples qui compilent et ceux qui échouent dans l’issue. Mettez à jour la grammaire afin que le cas du type fonction corresponde à la syntaxe requise, puis vérifiez que la spécification rendue reflète la correction.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- fsharp
- Domaine
- documentation
- Type d'issue
- Documentation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 55/100