diff --git a/docs/language/informal/README.md b/docs/language/informal/README.md index ed534fb986f..cd6c9f0b0f8 100644 --- a/docs/language/informal/README.md +++ b/docs/language/informal/README.md @@ -1,21 +1,29 @@ -This directory contains "informal specifications". +### This directory contains feature specifications. -**Note**: This directory is no longer where new language proposals are -discussed. Instead, new language proposals should be submitted to -[dart-lang/language](https://github.com/dart-lang/language). +**Note**: This directory contains older feature specifications, new ones +should be submitted to the language repository +[here](https://github.com/dart-lang/language). + +The existing feature specifications in this directory will have their status +updated as we proceed, and in particular each of them will become 'background' +material as it is integrated into the language specification. When all feature +specifications in this directory (that is, all other files than this one) have +become background material, this directory will serve only as documentation for +the process whereby each feature was designed and the associated motivation. + +That said, the following section contains a few words about what a feature +specification is, and how it can be used. + +### What is a Feature Specification? In order to move faster and get better feedback, we implement and iterate on language changes before the full official specification has been written. Still, the implementers need *something* to go on. -For that, the language team writes "informal specifications". These are +For that, the language team writes _feature specifications_. These are intended to be precise enough for a good faith implementer to correctly -understand the syntax and semantics of the language, but without all of the -laborious detail of the complete specification. - -Once the feature has been implemented, tested, and we are confident in it, the -language team will write the real text in the language specification and the -document here becomes deprecated and no longer canonical. - -Until then, while the feature is in progress, a live pull request for the -informal spec is the source of truth for the feature. +understand the syntax and semantics of the language, but when the contents +of a feature specification is integrated into the language specification we +expect the extra processing to give rise to additional clarifications and +corrections, which means that a feature specification is expected to be +_nearly_ as complete and correct as the language specification. diff --git a/docs/language/informal/dynamic-members.md b/docs/language/informal/dynamic-members.md index bf531909580..07a8371dcba 100644 --- a/docs/language/informal/dynamic-members.md +++ b/docs/language/informal/dynamic-members.md @@ -4,7 +4,7 @@ **Version**: 0.2 (2018-09-04) -**Status**: Under discussion. +**Status**: Under implementation. **This document** is a Dart 2 feature specification of the static typing of instance members of a receiver whose static type is `dynamic`. diff --git a/docs/language/informal/extreme-upper-lower-bounds.md b/docs/language/informal/extreme-upper-lower-bounds.md index 93babb81490..982dc4d4abe 100644 --- a/docs/language/informal/extreme-upper-lower-bounds.md +++ b/docs/language/informal/extreme-upper-lower-bounds.md @@ -2,7 +2,7 @@ **Owner**: eernst@ -**Status**: Under discussion. +**Status**: Implemented. **Version**: 0.2 (2018-05-22) diff --git a/docs/language/informal/generalized-void.md b/docs/language/informal/generalized-void.md index ee591859706..e3ae9560d95 100644 --- a/docs/language/informal/generalized-void.md +++ b/docs/language/informal/generalized-void.md @@ -4,7 +4,7 @@ **Version**: 0.10 (2018-07-10) -**Status**: Under implementation. +**Status**: Implemented. **This document** is a feature specification of the generalized support in Dart 2 for the type `void`. diff --git a/docs/language/informal/generic-function-instantiation.md b/docs/language/informal/generic-function-instantiation.md index d9ee68b9f2b..50098c23fbd 100644 --- a/docs/language/informal/generic-function-instantiation.md +++ b/docs/language/informal/generic-function-instantiation.md @@ -4,7 +4,7 @@ Author: eernst@. Version: 0.3 (2018-04-05) -Status: Under discussion. +Status: Under implementation. **This document** is a Dart 2 feature specification of _generic function instantiation_, which is the feature that implicitly coerces a reference to diff --git a/docs/language/informal/implicit-creation.md b/docs/language/informal/implicit-creation.md index d5fe36e1ed1..dfa46e1e168 100644 --- a/docs/language/informal/implicit-creation.md +++ b/docs/language/informal/implicit-creation.md @@ -4,7 +4,7 @@ Author: eernst@. Version: 0.7 (2018-04-10) -Status: Under implementation. +Status: Implemented. **This document** is an informal specification of the *implicit creation* feature. **The feature** adds support for omitting some occurrences of the diff --git a/docs/language/informal/instantiate-to-bound.md b/docs/language/informal/instantiate-to-bound.md index 091c50769b9..a847a39ec71 100644 --- a/docs/language/informal/instantiate-to-bound.md +++ b/docs/language/informal/instantiate-to-bound.md @@ -4,7 +4,7 @@ **Version**: 0.7 (2018-02-26) -**Status**: Under implementation. +**Status**: Implemented. Based on [this description](https://github.com/dart-lang/sdk/issues/27526#issuecomment-260021397) by leafp@. diff --git a/docs/language/informal/int64.md b/docs/language/informal/int64.md index 4bf67d5ddaa..20d89ab21a3 100644 --- a/docs/language/informal/int64.md +++ b/docs/language/informal/int64.md @@ -5,7 +5,7 @@ Dart - Fixed-Size Integers **Version**: 2017-09-26. -**Status**: Under implementation. +**Status**: Implemented. This document discusses Dart's plan to switch the `int` type so that it represents 64-bit integers instead of bigints. It is part of our continued effort of changing the integer type to fixed size ([issue]). diff --git a/docs/language/informal/invalid_returns.md b/docs/language/informal/invalid_returns.md index e79d18662df..89215f63b01 100644 --- a/docs/language/informal/invalid_returns.md +++ b/docs/language/informal/invalid_returns.md @@ -1,6 +1,8 @@ # Dart 2 function return checking -leafp@google.com +**Owner**: leafp@google.com + +**Status**: Implemented. Status: Ready for implementation @@ -8,6 +10,7 @@ Status: Ready for implementation of these rules in terms of which things are errors, rather than which things are valid*.* + ## Errors for sync and async function return values in Dart 2 ### Expression bodied functions diff --git a/docs/language/informal/mixin-declaration.md b/docs/language/informal/mixin-declaration.md index bc21ce1eeea..0521fc9bb73 100644 --- a/docs/language/informal/mixin-declaration.md +++ b/docs/language/informal/mixin-declaration.md @@ -1,3 +1,5 @@ # Dart 2 Mixin Declarations +**Status**: This is now background material. + ## The canonical version of this document now resides [here](https://github.com/dart-lang/language/blob/master/working/0006.%20Super-invocations%20in%20mixins/0007.%20Mixin%20declarations/lrhn-strawman.md). diff --git a/docs/language/informal/mixin-inference.md b/docs/language/informal/mixin-inference.md index 5972c27c526..fa424af06f4 100644 --- a/docs/language/informal/mixin-inference.md +++ b/docs/language/informal/mixin-inference.md @@ -1,8 +1,11 @@ # Dart 2.X super mixin inference proposal -leafp@google.com +**Owner**: leafp@google.com -Status: Draft +**Status**: This is now background material. + +The current version of this document now resides +[here](https://github.com/dart-lang/language/blob/master/working/0006.%20Super-invocations%20in%20mixins/0007.%20Mixin%20declarations/mixin-inference.md). This is intended to define a prototype approach to supporting inference of type arguments in super-mixin applications. This is not an official part of Dart diff --git a/docs/language/informal/nosuchmethod-forwarding.md b/docs/language/informal/nosuchmethod-forwarding.md index e6d0fc84971..68d1153a3ac 100644 --- a/docs/language/informal/nosuchmethod-forwarding.md +++ b/docs/language/informal/nosuchmethod-forwarding.md @@ -2,7 +2,7 @@ Author: eernst@ -**Status**: Under implementation. +**Status**: Implemented. **Version**: 0.7 (2018-07-10) diff --git a/docs/language/informal/subtyping.md b/docs/language/informal/subtyping.md index 20aa5aae879..64c0f29d53f 100644 --- a/docs/language/informal/subtyping.md +++ b/docs/language/informal/subtyping.md @@ -2,7 +2,7 @@ leafp@google.com -Status: Draft +**Status**: Implemented. This is intended to define the core of the Dart 2.0 static and runtime subtyping relation.