dart-lang / dart-lang/language

Specification: Superinterface restrictions are presented in an inhomogeneous manner

Open
#3,755 0 comments 0 reactions 0 assignees View on GitHub
specification
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.