Commit Graph

160 Commits

Author SHA1 Message Date
Erik Ernst c49cbae7f0 Rietveld 2688903004 (spec_parser) migrated to Gerrit.
Change-Id: Iddd1e8a795bfaed0092a30bb9d83070fe62d4a60
Reviewed-on: https://dart-review.googlesource.com/7261
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-09-21 09:36:10 +00:00
Erik Ernst 8562c8ff1b Adjusted spec of initializing formal type annotation
During migration of lib/mirrors/initializing_formals_test.dart to lib_2
it became apparent that strong mode makes it an error to have different
type annotations on an initializing formal and the corresponding field.
The language team discussed this and decided that we will take a middle
way: These type annotations can differ, but the initializing formal
must have a subtype.

This CL adjusts the spec to say that. In line with the rest of the
spec it is still a static warning (we will migrate all the static
warnings to errors as a separate step).

Change-Id: I66656c2933b7f86b78f0b06eadbf5edc0f58a3c6
Reviewed-on: https://dart-review.googlesource.com/7264
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-09-20 11:38:26 +00:00
Lasse R.H. Nielsen 1d9ed20e06 Add >>> operator to specification.
Change-Id: Icade60331f708f895906dad9445878c6f32f9131
Reviewed-on: https://dart-review.googlesource.com/6621
Reviewed-by: Florian Loitsch <floitsch@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2017-09-20 07:51:46 +00:00
Erik Ernst c15eed1269 Added metadata to new function type syntax parameter specifications
In https://github.com/dart-lang/sdk/issues/30732 the concern was raised
that the new Function type syntax does not support metadata on
parameter specifications (i.e., on normalParameterTypes and on
namedParameterTypes).

The implication of adding support for metadata in these locations is
that `@required` can be used on function types, which is the motivation
for submitting 30732.

We have always had support on parameter declarations in function typed
parameter declarations (`void foo(@A() int f(@A() String s))`), so in
this sense there is no new semantics to worry about (Lasse: "it doesn't
mean anything anyway!").

This CL modifies the generic-function-type-alias.md informal spec to
include this kind of metadata support.

Change-Id: I4520d330458242b31c991f62c03ca2f34f9c5e54
Reviewed-on: https://dart-review.googlesource.com/5762
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-09-18 09:31:08 +00:00
Lasse R.H. Nielsen c620e827b7 Don't say that the Invocation object of setters/getters returns const map/list.
Currently the spec says that namedArguments of, say, a setter Invocation must
return the `const{}` map. That's badly typed for Dart 2(it should at least
be `const <Symbol,Object>{}`) and unnecessarily specific.
This change just requires the object to be empty and unmodifiable.

Also remove the spec handling invalidly overridden noSuchMethod.
That's not longer possible in Dart 2.

Change-Id: I3a983a44dd5939e42c85a53e9769f5961e03b986
Reviewed-on: https://dart-review.googlesource.com/6462
Reviewed-by: Erik Ernst <eernst@google.com>
2017-09-18 08:06:28 +00:00
Lasse Reichstein Holst Nielsen 06f2a2eead Remove @proxy from the specification. Deprecate the annotation.
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/3007853003 .
2017-09-04 07:56:53 +02:00
Erik Ernst 839c321608 Generalized void informal spec clarified in several locations.
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2994363003 .
2017-08-31 12:10:06 +02:00
Erik Ernst 00e98af7ef Adjusted the optional-const/new specs.
The informal specifications of optional-const and optional-new used to
be incomplete, and this CL adds missing parts (transformation rules for
lists and maps, and for `assignableExpression`).

This version of the documents preserves the property that no `const` is
added without immediate syntactic justification.

The alternative (where `const` is used also in other contexts where
either `const` or `new` must be added, just because we can do that)
is not specified here, that'll be another CL. The corrections done in
this CL will be needed, anyway, so I separated the two.

R=lrn@google.com

Review-Url: https://codereview.chromium.org/3005833002 .
2017-08-30 18:53:43 +02:00
Lasse Reichstein Holst Nielsen 3744197e3c Specify what "is equivalent to" means.
R=eernst@google.com

Review-Url: https://codereview.chromium.org/2998173002 .
2017-08-22 07:35:23 +02:00
Erik Ernst 6ef388db9d Added static warning on assignment to final locals; adjusted for-in.
Addresses spec omission which was brought up in SDK issue #30483.

The following issue was created specifically on this topic: #30489.

R=lrn@google.com

Review-Url: https://codereview.chromium.org/2998073002 .
2017-08-21 09:29:17 +02:00
Lasse R.H. Nielsen 2170830a9e Specify that async functions start executing synchronously.
R=eernst@google.com

Review-Url: https://codereview.chromium.org/3000063002 .
2017-08-18 13:00:40 +02:00
Erik Ernst 6fc097670c Added informal spec of optional const/new to docs/language/informal.
R=lrn@google.com

Review-Url: https://codereview.chromium.org/3000133002 .
2017-08-17 11:33:04 +02:00
Erik Ernst 8514557c5a Removed permission to do voidExpression is T and .. is! T.
The informal spec of generalized void used to allow a `typeTest` on
an expression of type void. This CL removes that permission, thus
leaving only `as` as a narrow escape hatch from void, as decided at the
language team meeting on 2017-08-15.

R=lrn@google.com

Review-Url: https://codereview.chromium.org/3001063002 .
2017-08-17 11:31:31 +02:00
Lasse Reichstein Holst Nielsen e329e1ce29 Don't allow function values in assert tests.
Currently you can write
  assert(() { ... });
and the function will be called and the return value used as the assert test.
This feature isn't really worth its own complexity - if you want to get the same effect, you can just write all the function:
  assert(() { ... }());
With asserts in const initializer lists, where the function call is not possible anyway, the feature went from being not very useful to being actual an complication and exception for users to remember.

R=eernst@google.com, rnystrom@google.com

Review-Url: https://codereview.chromium.org/2974763002 .
2017-08-10 15:29:55 +02:00
Erik Ernst db092ff2fc Transferred the generalized void informal spec to docs/language/informal
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2994003002 .
2017-08-09 16:30:59 +02:00
Erik Ernst 5904409d50 Added informal generic method syntax and generic function type specs.
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2841483003 .
2017-07-14 13:17:30 +02:00
Erik Ernst 52e1372454 Fixes several typos as reported by Alexander Aprelev in
https://codereview.chromium.org/2844003002/, plus other typos.

R=lrn@google.com

Review-Url: https://codereview.chromium.org/2975283002 .
2017-07-14 12:51:28 +02:00
Lasse R.H. Nielsen a72f46def8 The actual change to the wording of assert that I intended in the previous CL.
R=eernst@google.com

Review-Url: https://codereview.chromium.org/2979523002 .
2017-07-11 11:52:21 +02:00
Lasse R.H. Nielsen 609d26a227 Add assert-in-initializer-list to formal specification.
Add tests for new syntax.
Not dart-formatted yet since the formatter doesn't accept the new syntax.

R=eernst@google.com, floitsch@google.com

Review-Url: https://codereview.chromium.org/2962153002 .
2017-07-10 13:59:38 +02:00
Florian Loitsch 4207a070f1 Fix indented ```. 2017-06-30 20:39:56 +02:00
Lasse R.H. Nielsen aeacff4f2b Add proposal for new mixin declaration syntax.
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2954653002 .
2017-06-30 14:16:57 +02:00
Lasse Reichstein Holst Nielsen 380461e61a Improve wording of break/continue.
R=eernst@google.com, kmillikin@google.com

Review-Url: https://codereview.chromium.org/2963533002 .
2017-06-28 07:37:14 +02:00
Lasse Reichstein Holst Nielsen 82a97d8b46 Fix wording for break and continue.
Fixes #30011
BUG= http://dartbug.com/30011
R=eernst@google.com, paulberry@google.com

Review-Url: https://codereview.chromium.org/2961603002 .
2017-06-27 10:33:24 +02:00
Lasse R.H. Nielsen c68e5cc67d Allow trailing comma in assert statements.
Fixes #28786
BUG= http://dartbug.com/28786
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2953223002 .
2017-06-23 14:45:25 +02:00
Lasse R.H. Nielsen 52691c6937 Add informal specification for optional-new/const, constructor tearoffs.
R=floitsch@google.com

Status: under discussion
Review-Url: https://codereview.chromium.org/2929753003 .
2017-06-20 13:21:36 +02:00
Lasse R.H. Nielsen c4da9198c1 Add informal specification of asserts in initializer lists.
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2927933002 .
2017-06-08 13:45:46 +02:00
Erik Ernst 0603b1872c Fixed typo in spec.
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2916263003 .
2017-06-02 11:14:53 +02:00
Lasse R.H. Nielsen 13f3df7e0c Change specification of main.
R=eernst@google.com, rnystrom@google.com

Review-Url: https://codereview.chromium.org/2852533003 .
2017-06-01 13:51:30 +02:00
Erik Ernst 539e463fe8 Removes spurious brace in dartLangSpec.tex
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2895263002 .
2017-05-22 16:50:24 +02:00
Lasse Reichstein Holst Nielsen 26d6e3596d Make void-arrow-functions statically accept any expression type.
R=eernst@google.com

Review-Url: https://codereview.chromium.org/2873313003 .
2017-05-22 16:19:53 +02:00
Erik Ernst 3b5874a332 Adjusted initializer rules, changing a run-time error to compile-time.
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2843733002 .
2017-05-19 14:22:35 +02:00
Peter von der Ahé 5e040f1abf Add comment about metadata syntax problem in static methods.
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2882173002 .
2017-05-15 13:55:06 +02:00
Lasse R.H. Nielsen 122345e356 Specify that a void return type doesn't cause errors in checked mode.
R=eernst@google.com

Review-Url: https://codereview.chromium.org/2875643002 .
2017-05-11 14:17:57 +02:00
Peter von der Ahé 4880a2876e Rewrite mixin application handling in Fasta.
R=johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2862223002 .
2017-05-09 09:22:57 +02:00
Erik Ernst ae1091805d Fixed typo: "keyword parameter" changed to "named parameter".
Resolves https://github.com/dart-lang/sdk/issues/29464.

R=lrn@google.com

Review-Url: https://codereview.chromium.org/2838853003 .
2017-04-26 16:11:59 +02:00
Erik Corry 2fb5d08102 Spelling a
R=ahe@google.com
BUG=

Review-Url: https://codereview.chromium.org/2841543002 .
2017-04-24 14:53:51 +02:00
Erik Corry 4b9bba55b4 Stoppp using trippple consonants
R=ahe@google.com
BUG=

Review-Url: https://codereview.chromium.org/2833073002 .
2017-04-21 17:50:13 +02:00
Lasse R.H. Nielsen 94b23d3b12 Fix text around least upper bound.
R=eernst@google.com

Review-Url: https://codereview.chromium.org/2802633002 .
2017-04-05 14:09:07 +02:00
Kevin Millikin 74c576911b Ignore LaTeX output files in docs/language.
BUG=
R=eernst@google.com, zhivkag@google.com

Review-Url: https://codereview.chromium.org/2763393006 .
2017-03-24 15:45:15 +01:00
Erik Ernst 1e483f0bcc Specification adjustments for covariant overrides in Dart 1.
Addresses the 1.50 bullet in sdk issue #28164.

R=lrn@google.com

Review-Url: https://codereview.chromium.org/2678003002 .
2017-03-02 13:41:37 +01:00
Lasse R.H. Nielsen 6a77f268bb Revert "Add bnf.sty to github, since it is referenced by the latex language spec file."
R=eernst@google.com

Review-Url: https://codereview.chromium.org/2723623003 .
2017-02-28 11:35:35 +01:00
Regis Crelier 3d4fce91e2 Add bnf.sty to github, since it is referenced by the latex language spec file.
R=gbracha@google.com

Review-Url: https://codereview.chromium.org/2705323003 .
2017-02-22 10:40:23 -08:00
Erik Ernst 5de9108c16 Adjusted spec to outlaw built-in identifiers in type annotations.
Addresses issue https://github.com/dart-lang/sdk/issues/28817.

R=lrn@google.com

Review-Url: https://codereview.chromium.org/2704573004 .
2017-02-20 09:27:37 +01:00
Erik Ernst 170ba4aa32 Added covariant-from-class informal spec file for broader access.
Review-Url: https://codereview.chromium.org/2700533004 .
2017-02-16 13:11:15 +01:00
Lasse Reichstein Holst Nielsen c41ae15713 Specify FutureOr.
R=eernst@google.com, floitsch@google.com

Review-Url: https://codereview.chromium.org/2664263002 .
2017-02-03 08:02:09 +01:00
Lasse R.H. Nielsen ef31637857 Fix specification of multiline strings.
Now say that NEWLINE is one of CR, LF or CR+LF, and that all of these
contribute a single LF to the string value.

Fixes issue #14073
BUG= http://dartbug.com/14073
R=eernst@google.com, johnniwinther@google.com

Review-Url: https://codereview.chromium.org/2665613003 .
2017-01-31 10:26:01 +01:00
Lasse R.H. Nielsen c77a4a92b2 Add changelog to dart spec file.
R=eernst@google.com, floitsch@google.com

Review-Url: https://codereview.chromium.org/2650693002 .
2017-01-23 14:00:28 +01:00
Lasse R.H. Nielsen 2f2508470b Spec tweak. Fix semicolon escape-grammar where it doesn't match the rest.
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2638403006 .
2017-01-20 14:32:11 +01:00
Lasse R.H. Nielsen fcff3fe4e7 Make it more explicit that Null doesn't extend anything but Object.
Fix dart.sty
Address new comments on https://codereview.chromium.org/2555343004/

R=eernst@google.com

Review-Url: https://codereview.chromium.org/2641873003 .
2017-01-20 09:03:43 +01:00
Bob Nystrom 13f71634b0 Informal proposal for covariant overrides. (#28176)
Added informal specification of covariant overrides.

It is available as a new file, docs/language/informal/covariant-overrides.md.
2017-01-19 06:22:54 -08:00