Update primary constructor proposal based on email thread #4161
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the primary constructor feature specification based on recent ideas in an email thread. In particular, it introduces support for an initializer list in a primary constructor in the header of the enclosing declaration (of a class or an enum), and allows parameters to be declared without introducing an instance variable iff they are used for another purpose (such as
this.v = x
orsuper.name(x)
).I haven't reintroduced the in-body primary constructors (but we can easily do that, if requested).
As we've done on some earlier occasions, I'll land this document now (it is 'working'). The language team can then discuss it and adjust it as needed in further PRs.