dart-lang / dart-lang/language
Specification: Superinterface restrictions are presented in an inhomogeneous manner
- Dominant language
- TeX
- Stars
- 2.9k
- Forks
- 239
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 14
Description
The language specification states that it is an error if an enumerated type or a type variable and several other things occur in the `implements` type list, or as the `extends` class, or in a `with` type list, but `Null`, `String`, `int`, and others get the same restrictions by local specifications ("no class can implement ...").
The presentation would be more consistent if we reorganize this to use the same approach everywhere. Maybe: Every type for which there is a special superinterface restriction must specify this in the associated section (so there is a section for `Null` and `void`, a slightly broader one for 'Strings', and maybe we'd add some sections). We would then change the specifications in `\ref{superInterfaces}` etc. to have commentary referring to those other sections, rather than normative language.
Contributor guide
Research direction
Start by reading the specification sections referenced by \ref{superInterfaces} and the local specifications for Null, void, and Strings. Identify every special superinterface restriction and compare how each is presented. Done means the restrictions use a consistent organization, with cross-references replacing duplicated normative wording.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart, tex
- Domain
- compilers, documentation
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100