Commit graph

375 commits

Author SHA1 Message Date
Erik Ernst d830c8ba3c Removed merge conflict markers.
Change-Id: I1feda4f3104ca100425233fb7f339a412a885f9f
Reviewed-on: https://dart-review.googlesource.com/34743
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2018-01-15 21:21:20 +00:00
Lasse R.H. Nielsen 3727e4d28b Update specification of system/non-system import conflict to not cause warning.
Change-Id: I089561ce2770a12549476687bb0ef3d78f9cc1e1
Reviewed-on: https://dart-review.googlesource.com/33840
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-15 15:21:51 +00:00
Erik Ernst 673d5f0a66 Adding generic methods to the language specification.
Change-Id: I49404e81258fc688caef5c044ff70e52508a4423
Reviewed-on: https://dart-review.googlesource.com/14525
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2018-01-11 16:15:58 +00:00
Erik Ernst 38dcb10543 Clarified that non-abstract noSuchMethod counts more than abstract.
Change-Id: Ic8e6fc0c43267239d385b451c571c8a4ce9340b3
Reviewed-on: https://dart-review.googlesource.com/32763
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-11 13:13:38 +00:00
Erik Ernst af430f37a8 Added informal specification of super-bounded types.
Change-Id: I4764faa8250af61bf8cda9cf6a854e2bd7d726f2
Reviewed-on: https://dart-review.googlesource.com/14042
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-01-11 09:16:11 +00:00
Erik Ernst dd3f935cf5 Now specifying void return type for setters and operator []=
Change-Id: Id2e8b3314eb5bba4ebf82286c0f8228db2235af0
Reviewed-on: https://dart-review.googlesource.com/32603
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2018-01-08 12:38:22 +00:00
Lasse Reichstein Holst Nielsen d7e50427b3 Change wording on main functions.
Change-Id: Ib61178a8b3c4f2adfa994d00e24b3320fd7f9cfc
Reviewed-on: https://dart-review.googlesource.com/25400
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-12-19 11:54:22 +00:00
Lasse Reichstein Holst Nielsen 90dc2101a6 Update FutureOr for Dart 2.
Change-Id: Ic12f3dfa558ff34f90a64724658c572942e77c9f
Reviewed-on: https://dart-review.googlesource.com/25301
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2017-12-07 19:36:42 +00:00
Erik Ernst a6d422957d Adjusted nosuchmethod-forwarding.md
This CL changes said document to drop support for requested generation
of forwarder in case of a conflict. Developers must then write a
disambiguating method implementation themselves.

Note that this is what we already agreed during discussions about
this feature, but I noted that it hadn't yet been written into the
document.

Also changes the status to 'under implementation'.

Change-Id: I31b3dd8d65438484824225ad7067d36462d26aa7
Reviewed-on: https://dart-review.googlesource.com/22421
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-12-01 12:39:19 +00:00
Erik Ernst db383f64ad Fixed many whitespace issues in dartLangSpec.tex
In dartLangSpec.tex there used to be many white space anomalies, e.g.,
double  spaces  between words with no apparent justification


or multiple empty lines
  or lines starting with indentation that wasn't justified by any
consistent rule that I could spot.

This CL fixes that.

It also adjusts the grammar rules to be formatted in a systematic way
which will be helpful for an update to use something else than
bnf.sty (that we can't distribute due to license problems).
In particular, when a right hand side is too long for one line it used
to flow into the next line just like text (so non-terminals would have
`-` inserted at locations where a natural language algorithm thought
the "word" could be split in two, and the indentation on the next line
was nonsensical). So now it uses `\gnewline{}` ("grammar newline") to
switch to a new line and indent somewhat. It also uses `\gcomma{}` to
produce a quoted comma (which otherwise looks funny, because the `,'
becomes more like `,  ' because the comma has a sort of built-in space
after it).

The command `\cd{...}` is gone and `\code{...}` is used everywhere.

Every sentence is now terminated by a newline. This doesn't mean that
every line is <80 chars, but it is at least much more readable (in
an editor whose window is really big), and it's consistent with the
more radical changes that we have made whenever we have made bigger
changes to a paragraph.

Finally, all comments on interface injection and all comments on
spread and rest arguments have been deleted. These comments contained
considerations about said features, but they did not contribute to
the discussions that we have had about the same or similar topics
(in particular because the comments relied on assumptions that do
not hold any more).

So it's a big diff, but a huge portion of it is white space fixes,
and the rest is very systematic. So it should be bearable, and we
would surely need to do the same things over time, otherwise.

Change-Id: Ia5922c22cb496792d394e76ce8c7bca7df1b4cc8
Reviewed-on: https://dart-review.googlesource.com/25000
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-12-01 09:44:18 +00:00
Lasse Reichstein Holst Nielsen 7f89be22aa Make the *flatten* function not be recursive.
Update `return e;` in `async` function to do an implicit await if the value is async.
(We can make it an explicit await that also waits if it's not a future).

Make it explicit that we don't allow two different instantiations of the same interfaces.

Change-Id: I66de9ec55c1d55523d91e6d2bbebcb7d02ef301f
Reviewed-on: https://dart-review.googlesource.com/23663
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2017-11-30 22:10:26 +00:00
Florian Loitsch 1d9438ed0d Newsletter 2017-11-24.
Change-Id: Iea1fe57c076d978b6e9308b07d2479a856729ee9
Reviewed-on: https://dart-review.googlesource.com/23620
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-11-24 16:27:00 +00:00
Erik Ernst 062e5d6db3 Now explicitly defines variant occurrences of type parameters.
The discussion about SDK issue 31305 showed that the definition of
covariant/contravariant/invariant occurrences need to be given
somewhere, and also that covariant-from-class.md is a reasonable place
to put it.

This CL adds those definitions there, based on Leaf's proposal in the
above-mentioned issue, and adjusts the definition of what it means to
be a covariant parameter such that the case where the relevant type
parameter occurs in the bound of a formal type parameter in a function
type is taken into account.

(It also reformats the document to stay within 80 columns and follow
the style of newer informal specs more closely, but that should be
easy to skip over because Gerrit colors white space changes
differently from "real" changes).

Change-Id: I0b0a688c616d0bb56755ceea08e1792abfa7936d
Reviewed-on: https://dart-review.googlesource.com/23422
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-11-24 09:21:47 +00:00
Kevin Millikin 9f19d1e30a Be consistent about use of null in the spec
The spec would sometimes use the reserved word (boldface) null, which
is an expression, when it really meant the value of that expression.
Since that value has a defined name, "the null object", use it
correctly and consistently.

The spec would also use the phrase "the null value", which presumably
just meant the null object.  Replace occurrences of this phrase with
"the null object".

Bug:
Change-Id: Ibadeb97fe3bec67cd77d6a8d6c57e922cea265d3
Reviewed-on: https://dart-review.googlesource.com/22461
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2017-11-21 15:42:48 +00:00
Kathy Walrath 80a5f92caf Add a bit more info about the newsletters.
Change-Id: I1037d4313b7da9773dd818eb4618fc09d44f12cc
Reviewed-on: https://dart-review.googlesource.com/21784
Reviewed-by: William Hesse <whesse@google.com>
2017-11-17 23:41:15 +00:00
Erik Ernst 9bd60376ef Clarified examples in covariant-from-class.
Change-Id: I6bbf51b7f3c5fd46d8ce59e860cf615e26308560
Reviewed-on: https://dart-review.googlesource.com/21346
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-11-16 13:25:52 +00:00
Erik Ernst ba77483022 Adjusted def. of "a superclass" in the language specification.
Cf. SDK issue 25839.

Change-Id: I41aaecdb206c599f0deca6facb074c8d4f960529
Reviewed-on: https://dart-review.googlesource.com/21347
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-11-16 13:01:42 +00:00
Erik Ernst f68e5231b4 Renewed tests from built_in_identifier_prefix
The test language_2/built_in_identifier_prefix_test stated 'it is not
illegal to use a built-in identifier as a library prefix', which has
been untrue for quite a while, and then proceeded to check a number of
cases where said situation was used in practice. All of that is now
obsolete, so that test was split into several tests, each of which was
adjusted to test something which is relevant today.

The new tests include checks for the use of "known" identifiers (such
as `of`, `show`, `on` and a few more) which are mentioned explicitly
in the grammar, but which are neither built-in identifiers nor
reserved words.

The new tests gave rise to a number of status entries, including 25
crashes (so it is not just "expect `MissingCompileTimeError` here
because it's not strong mode").

Note that `Function` is considered to be a built-in identifier.
This makes no difference for the grammar, but it means that there
are no cases where `Function` is used as a library prefix.

If we insist that `Function` cannot be a built-in identifier then
we just need to add a few more grammar rules to all such things as
`import .. as Function;`, but I considered it less confusing to
include `Function` among the built-in identifiers and avoid adding
support for this.

Note that we haven't said anywhere that `Function` is a built-in
identifier, so we would need to adjust an informal/*.md file to say
that, to finish this off.

Change-Id: Ifa5bbd95022498480b7ee2e94605f81cd11d9696
Reviewed-on: https://dart-review.googlesource.com/21080
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-11-16 12:34:14 +00:00
Kevin Millikin d66ee882d3 Be consistent about run time and compile time
The spec was not self-consistent with respect to the usage of various forms
of 'run time' and 'compile time', even when using them as formally defined
terms (e.g., compile-time error).

Consistently follow the conventions: that 'run-time' and 'compile-time' are
adjectives and not nouns; that 'run time' and 'compile time' are noun
phrases containing an adjective and not adjectives themselves; and that
'runtime' and 'compiletime' are nonsense or at least jargon and are avoided.

Fixes https://github.com/dart-lang/sdk/issues/25883

Bug:
Change-Id: I0a9eb524bb43ed6c3a74e6ef038184bcbe979966
Reviewed-on: https://dart-review.googlesource.com/21345
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2017-11-16 12:01:42 +00:00
Kathy Walrath 28e0c35ef8 Create newsletter index (#31340)
* Create newsletter index

* Simplify links, add a few line breaks

* Add 20171110.md

* Tweak library doc entry
2017-11-13 16:26:44 -08:00
Florian Loitsch 145c9a5d56 Newsletter 2017-11-10.
Change-Id: Ibecaf1e42105093193897e2ee57ed24d34c5e7b8
Reviewed-on: https://dart-review.googlesource.com/20200
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-11-10 18:09:30 +00:00
Erik Ernst 1c4358d459 Adjusted spec to not warn if instance method "overrides" static method
Addresses SDK issue #31201.

Change-Id: I545004b5e6e20b82ae4db879bb8f07adae1ecd23
Reviewed-on: https://dart-review.googlesource.com/18801
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-11-10 14:52:09 +00:00
Erik Ernst 57d00dfcb2 Made namedParameterTypes in the spec grammar more strict
In the specification grammar docs/language/Dart.g, named parameters in
a new style `Function` type must now have a type. They used to support
a plain `identifier` form, which means that the type was omitted and
only the name given, but the informal spec did not allow this (and this
was a decision taken because we wanted to take a step towards the kind
of function types where it is always the name which is omitted if
anything is omitted, and this means that nothing can be omitted for a
named parameter).

Change-Id: Ib2538f5bafd1e044f0b4f22ea0a6b9a339f81501
Reviewed-on: https://dart-review.googlesource.com/19567
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-11-10 11:08:17 +00:00
Erik Ernst 40b6741778 Adds support for syntax error in tests to test.py.
This CL modifies the Dart source used from test.py such that it takes
`syntax error` into account as an expected outcome in test files (so
that we can have `//# 01: syntax error` with a similar meaning as
`//# 01: compile-time error`).

For all tools except the spec_parser, `syntax error` is the same
outcome as `compile-time error`; that is, nobody else will see the
difference.

For the spec_parser, `syntax error` is the outcome where parsing has
failed; `compile-time error` is taken to mean some other compile-time
error, i.e., the spec_parser is expected to _succeed_ when the
expected outcome is `compile-time error`.

Test files in language and language_2 have been adjusted to use the
outcome `syntax error` where appropriate.

The status files in language and language_2 for the spec_parser have
been adjusted such that they fit all the new `syntax error` outcomes
in test files.

Other status files have been adjusted in a few cases where tests were
corrected (because a compile-time error which was clearly not intended
to be a syntax error turned out to be caused by a typo, which means
that the actual compile-time error has never been tested).

The spec grammar Dart.g was adjusted in a few cases, when some bugs
were discovered. In particular, the treatment of Function has been
changed: It is now known by the parser that Function does not take
any type arguments. This makes no difference for developers, because
they cannot declare a type named Function anyway, but it means that
a number of tricky parsing issues were resolved.

Dart.g was also adjusted to allow `qualified` to contain three
identifiers, which is an old bug (preventing things like metadata on
the form `@p.C.myConst`).

Change-Id: Ie420887d45c882ef97c84143365219f8aa0d2933
Reviewed-on: https://dart-review.googlesource.com/18262
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-11-06 08:56:09 +00:00
Florian Loitsch 4528eb32a0 Newsletter 2017-11-03.
Change-Id: I5adca1c6706d00ff074656b39d561a0497fb8717
Reviewed-on: https://dart-review.googlesource.com/18660
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-11-03 21:05:36 +00:00
Florian Loitsch 0407c94349 Fix obsolete comment change in libs document.
"DateTime.parse taking optional arg".

Change-Id: I67779495a946789ba71ff1dffcdb8089a14f8073
Reviewed-on: https://dart-review.googlesource.com/18182
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-11-02 09:37:37 +00:00
Florian Loitsch 7517d24f44 Fix typo in lib document.
Change-Id: Ia6c3b545c53a9604a3fe670ef232a6033d74c1ef
Reviewed-on: https://dart-review.googlesource.com/17223
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-30 15:22:38 +00:00
Florian Loitsch cfab55800c Add replay named argument.
Change-Id: I7678bb372b2e6fcc6db995aa663b4217ab00cf8b
Reviewed-on: https://dart-review.googlesource.com/17200
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-30 13:59:51 +00:00
Florian Loitsch e6f5588b6c Fix missing "is".
Change-Id: I22b687c4d33d8411c269bb3612708ba378cf24f7
Reviewed-on: https://dart-review.googlesource.com/17100
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-28 13:48:30 +00:00
Florian Loitsch 457a7b0799 Small typos in lib document.
Change-Id: Ia334ed596a82c288cb0d207fc4c7408e80b96caf
Reviewed-on: https://dart-review.googlesource.com/17082
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-28 02:14:09 +00:00
Florian Loitsch 504d9d5783 Resize svgs.
Change-Id: I1602b83372b7e81106aa5dd57362e8486d74b747
Reviewed-on: https://dart-review.googlesource.com/17081
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-28 02:05:03 +00:00
Florian Loitsch d9d5d6fe75 Newsletter 2017-10-27.
Change-Id: Ic705490d2389c0210baac61dd61d928db21d2b22
Reviewed-on: https://dart-review.googlesource.com/17080
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-28 01:54:12 +00:00
Lasse R.H. Nielsen f11f2ed2bd Fix spec to allow x == null in const expression where x is not num/string/bool/null.
See issue #31140

Bug: http://dartbug.com/31140
Change-Id: I141cc3856a1758313de102084f74f4fa41412586
Reviewed-on: https://dart-review.googlesource.com/15100
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2017-10-26 09:47:50 +00:00
Florian Loitsch f8d6248017 Newsletter 2017-10-20.
Change-Id: Ia5e8edab0b5cf4d740e0959a4d88204e20844c01
Reviewed-on: https://dart-review.googlesource.com/15800
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-20 22:59:55 +00:00
Erik Ernst 1e25e4814b Clarified semantics of transformation in optional-new.md.
Change-Id: Ieb8e323a37f66713067f8a33a5d3a8596e840458
Reviewed-on: https://dart-review.googlesource.com/14401
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-10-20 13:46:22 +00:00
Florian Loitsch bca7b35cd6 Fix typo in exponent representation example
Change-Id: I7e082bc7a6e193fe783263b2a074ad5d348c85c8
Reviewed-on: https://dart-review.googlesource.com/13980
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-14 14:31:32 +00:00
Ben Konyi df85386946 Publishing Dart Language Newsletter for 2017/10/13.
Bug:
Change-Id: Iedd649c2b38b0b7044c631d970336d1cd764ac82
Reviewed-on: https://dart-review.googlesource.com/13924
Reviewed-by: Ben Konyi <bkonyi@google.com>
2017-10-13 21:17:07 +00:00
Erik Ernst 338b070178 Added informal specification of instantiate to bound.
Change-Id: Ie4b05f16006743207be76e26195ff345bf2efc6b
Reviewed-on: https://dart-review.googlesource.com/5765
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-10-13 10:03:43 +00:00
Erik Ernst 63de49ccde test.py will now run the spec parser.
This CL modifies tools/test.py such that it can run the spec parser
(after doing `make parser` in tools/spec_parser, and assuming that the
ANTLR 3 library is available at /usr/share/java/antlr3-runtime.jar)
with a command line like

  `tools/test.py -c spec_parser -r none language/callable_test`

It also changes status files to have a name which follows the expected
patterns (e.g., `language/language_spec_parser.status`). Finally, it
adds/changes many entries in status files, such that parsing of the
directories `language` and `language_2` run successfully.

Change-Id: I82a22e32ac4fecd23ac0d4434bcac08f75dd8ffe
Reviewed-on: https://dart-review.googlesource.com/12680
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2017-10-12 09:22:28 +00:00
Erik Ernst 4cf0e65814 Adjusted optional-{new,const}.md according to feedback by mail.
Eliminated the imprecise notion of an immediate subexpression.
Included missing rule for transformation of composite literals
(lists and maps). Some smaller fixes according to feedback by
mail.

Change-Id: I03e58dd24b370b797cda084bd064c6f0db22f8fb
Reviewed-on: https://dart-review.googlesource.com/4383
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2017-10-11 15:49:06 +00:00
Erik Ernst 5f713bdd19 It is now a static warning if we call an Object.
This CL updates section 'Function Expression Invocation' in
dartLangSpec.tex to specify that it is a static warning to use the
value of an expression of type `Object` as a function.

We still _allow_ using a `Function` and a `dynamic` value as a function
by means of `assignable`, because these two things together are rather
concise, and they say the right thing.

It is a bit convoluted, though, because `Object` seems to be OK
according to the first sentence, and then it's ambushed by the second
sentence. Proposals for a more elegant wording welcome! ;-)

Change-Id: I997399b9e10da339df359e9c6a339249ab97acf9
Reviewed-on: https://dart-review.googlesource.com/11480
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-10-11 14:39:40 +00:00
Erik Ernst b61f1047d5 Add a tools/spec_parse.py script.
This makes it possible to run the spec parser in a way which is a bit
more like the other tools that we have (e.g., tools/test.py):

  > tools/spec_parse.py tests/language/callable_test.dart

It still requires the developer to run `make parser` in
tools/spec_parser and hence does not run on a buildbot, but it's one
step forward.

Change-Id: I68ad6cea55bc02dddac21558acec33fc4bfc1981
Reviewed-on: https://dart-review.googlesource.com/9620
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-10-10 16:03:36 +00:00
Erik Ernst 1ba7ba01ff Added informal spec of "no such method forwarding".
Change-Id: Ifa3bb120566daf0963dbb88db380fbb0e0db26c1
Reviewed-on: https://dart-review.googlesource.com/6500
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2017-10-10 15:38:42 +00:00
Erik Ernst 83e8cf3d0b Added language on covariant fields to covariant-overrides.md.
Change-Id: I2c2857f5e32328bfe4693038e7ef376f8633758e
Reviewed-on: https://dart-review.googlesource.com/12296
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2017-10-10 15:01:11 +00:00
Florian Loitsch c5e10d5b78 Fix typos in last newsletter.
Address comments from https://dart-review.googlesource.com/c/sdk/+/12161

Change-Id: I05294112753891732784a38fc5ef14fb7fed291b
Reviewed-on: https://dart-review.googlesource.com/12298
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-09 17:46:44 +00:00
Florian Loitsch 9c540093a0 Newsletter 2017-10-06.
Change-Id: Ia9834bd0824206e69f15cee00574d9b834f88762
Reviewed-on: https://dart-review.googlesource.com/12161
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-06 19:40:19 +00:00
Florian Loitsch 2d003a263c Newsletter 2017-09-29.
Change-Id: I5d621a2f90c885b80f95037d7389e29612f67ef2
Reviewed-on: https://dart-review.googlesource.com/9800
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-09-29 19:47:49 +00:00
Florian Loitsch 76031341af Fix whitespace in int64 proposal.
Change-Id: I241552b790ce6672dc5456e78a70165ef08a9394
Reviewed-on: https://dart-review.googlesource.com/9661
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-09-29 19:46:18 +00:00
Florian Loitsch 71bd158704 Add public Vipunen results link.
Change-Id: Ib39bb812204b08b8de8f4b9c2aa0e3de43d85ece
Reviewed-on: https://dart-review.googlesource.com/9680
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2017-09-29 16:37:22 +00:00
Erik Ernst df42be789b Fixed several grammar bugs, updated status file for language_2.
The spec parser now parses all of language_2; many files are skipped,
but that is because they are multi-tests or because they contain
intentional syntax errors (negative tests).

Change-Id: I7061f0512702f3cb9631b32c79c3c1c1e2b7b0a6
Reviewed-on: https://dart-review.googlesource.com/8641
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-09-29 11:34:52 +00:00
Florian Loitsch 7c1af28ddb Add Int 64 proposal.
Change-Id: I4e9b4dc72efe9159dbe5f922893776fc282cf7ef
Reviewed-on: https://dart-review.googlesource.com/8560
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-09-28 09:14:04 +00:00
Roel Spilker ebbb0be021 Fix typos
substle => subtle, added missing backtick after </footnote>

Change-Id: Icc43cf01701074ecc692bc4827a4320fb580fca5
Reviewed-on: https://dart-review.googlesource.com/8180
Reviewed-by: William Hesse <whesse@google.com>
2017-09-25 16:43:15 +00:00
Florian Loitsch 415a6e2a75 Fix typo in newsletter.
Change-Id: Ieaa7c8fd6c9018d831e26db594aa5707c014625c
Reviewed-on: https://dart-review.googlesource.com/8021
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-09-25 08:19:43 +00:00
Florian Loitsch 57cc185366 Newsletter 2017-09-22.
Change-Id: I4586a9ebbee94bfa1dba48d0a826247f57d4fd9f
Reviewed-on: https://dart-review.googlesource.com/7702
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2017-09-22 13:07:38 +00:00
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
Florian Loitsch 5f11c123d4 Incorporate Lasse's comments.
Change-Id: I4906660337dc440fd1bbc2e39b656bd2c1e1ba91
Reviewed-on: https://dart-review.googlesource.com/6320
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-09-15 21:19:01 +00:00
Florian Loitsch dfbd0570b4 Newsletter 2017-09-15.
Change-Id: I6a76a96975a1bfb36fa62fa887e1f7d922aadd1f
Reviewed-on: https://dart-review.googlesource.com/6300
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-09-15 20:41:41 +00:00
Florian Loitsch 10783d28f2 Newsletter 2017-09-08.
Change-Id: I22a5d094d1af4c78a78f48694c6b110956633368
Reviewed-on: https://dart-review.googlesource.com/4560
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-09-08 19:34:22 +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
Florian Loitsch b74f7cdd86 Remove spurious "function that takes"
Fix the section on Fruit function vs apple function.
2017-09-02 20:58:08 +02:00
Florian Loitsch b8a36a4887 Newsletter 2017-09-01.
Review-Url: https://codereview.chromium.org/3012723002 .
2017-09-01 22:47:20 +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
Florian Loitsch 8482c00ec3 Newsletter 2017-08-25.
Review-Url: https://codereview.chromium.org/3003893002 .
2017-08-25 17:24:27 +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
Florian Loitsch e6e8d35323 Newsletter 2017-08-18.
Review-Url: https://codereview.chromium.org/3001943002 .
2017-08-18 18:25:48 +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
Kevin Moore 88706d8813 Tiny nit to 20170811 newsletter (#30460) 2017-08-16 11:37:01 -07:00
Florian Loitsch 1daab67666 Newsletter 2017-08-11
Review-Url: https://codereview.chromium.org/3000793002 .
2017-08-11 17:33:00 +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
Florian Loitsch d94cecba3c Newsletter 2017-08-04.
Review-Url: https://codereview.chromium.org/2995543002 .
2017-08-04 19:06:10 +02:00
Florian Loitsch 941c07db5c Add first newsletter.
Review-Url: https://codereview.chromium.org/2989963002 .
2017-07-28 21:31:00 +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
Lasse R.H. Nielsen 6904227a56 Fix bug in dart.sty.
R=floitsch@google.com

Review-Url: https://codereview.chromium.org/2644513003 .
2017-01-19 12:09:17 +01:00
Erik Ernst 473f2c9a60 Eliminated usages of "field" in the spec.
It turned out to be "instance variable" or "static or instance
variable" in all cases. I considered writing "member variable" for the
latter, but we would then need to introduce that phrase somewhere, and
maybe refer to it at each usage, which would be more verbose.

Fixes #24333.

BUG=
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2613293002 .
2017-01-09 11:29:01 +01:00
Erik Ernst c63f8010df Performed some keyword related clean-ups.
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2609413006 .
2017-01-06 13:53:28 +01:00
Bob Nystrom 376b9a31c5 Add README for informal specs directory.
R=eernst@google.com, leafp@google.com

Review-Url: https://codereview.chromium.org/2596933002 .
2016-12-21 15:52:54 -08:00
Erik Ernst 88037f0a64 Added compile-time errors for supertypes: Type alias missing, and more.
R=lrn@google.com

Review-Url: https://codereview.chromium.org/2585723002 .
2016-12-16 14:02:56 +01:00
Lasse R.H. Nielsen 10abaf89fd Make Null act like the bottom type for all the (default nullable) types.
BUG= http://dartbug.com/28024
R=eernst@google.com

Review URL: https://codereview.chromium.org/2555343004 .
2016-12-09 12:59:46 +01:00
Lasse R.H. Nielsen 81f8ea0a0a Fix unintended spec change: Final fields not being initialized is only a warning.
A recent spec change made it an error, but the existing spec didn't actually
say that - it's one of the few warnings that do not correspond to e runtime
error.

R=eernst@google.com

Review URL: https://codereview.chromium.org/2542253003 .
2016-12-05 10:48:39 +01:00
Lasse R.H. Nielsen c05eb97461 Add message to assert in specification.
R=eernst@google.com

Review URL: https://codereview.chromium.org/2530083002 .
2016-11-28 09:19:28 +01:00
Lasse Reichstein Holst Nielsen 843bb96813 Change how the language specification describes control flow.
Changed to compositionally describing how an expression or statement can
complete (normally, throw, return, break, continue), and propagating the
completion to the surrounding statements handling those behaviors.

This should not change the current behavior except in a few cases where
the existing specification was vague, misleading or just wrong.

Actual changes:
- The super call in an initializer list is now always called at the end,
  even if it is allowed to be written earlier. This matches existing
  VM behavior.
  Initialization of initializer expressions are specified
  as part of constructor execution, not something happening
  at the `new` operator.
- The cancel call to a stream subscription when exiting an async for-in
  loop is now made explicit, and its returned future is explicitly
  awaited for.
  Previously it was unclear what happened with that future.
- Pausing a surrounding async-for loop has been added everywhere
  the body of the loop can suspend, just before the suspension.
  The loop subscription is not resumed until reaching the end of the body,
  which is equivalent to resuming it after each suspend
  and then pausing it again when the synchronous execution reaches
  the next suspend.
  So, easier and doesn't change the behavior of the loop itself,
  but it's a visible change if you check the onPause/onResume
  of the loop stream.
  Spec now recognizes that the pause call may throw on an invalid
  implementation of StreamSubscription.

Addresses issues #25859, #25856, #25850, #25848, #25847, #25749, #25634, #25539, #25421, #25412, #25381, #25234, #25005, #24859, #24748, #23779, #23700, #23628, #22908, #21858 (and likely more).

BUG= http://dartbug.com/25859 http://dartbug.com/25856 http://dartbug.com/25850 http://dartbug.com/25848 http://dartbug.com/25847 http://dartbug.com/25749 http://dartbug.com/25634 http://dartbug.com/25539 http://dartbug.com/25421 http://dartbug.com/25412 http://dartbug.com/25381 http://dartbug.com/25234 http://dartbug.com/25005 http://dartbug.com/24859 http://dartbug.com/24748 http://dartbug.com/23779 http://dartbug.com/23700 http://dartbug.com/23628 http://dartbug.com/22908 http://dartbug.com/21858
R=eernst@google.com

Review URL: https://codereview.chromium.org/2399343002 .
2016-11-25 09:30:17 +01:00
Lasse R.H. Nielsen de8e04d76a Make C(), where C is a class name, a compile-time error.
Fixers issue #27651
BUG= http://dartbug.com/27651
R=eernst@google.com, floitsch@google.com, fschneider@google.com

Review URL: https://codereview.chromium.org/2444843002 .
2016-11-17 09:56:54 +01:00
Lasse R.H. Nielsen 2e56c7b8fa Spec: Make fontenc understand that greater than is not an inverse question mark.
No longer using a 7-bit font. Welcome to the 21th century.

R=eernst@google.com

Review URL: https://codereview.chromium.org/2487193002 .
2016-11-09 14:31:28 +01:00
Lasse R.H. Nielsen f3288982de Spec: Rewrite lambdas to simpler semantics instead.
This is instead of introducing a let-construct.

R=eernst@google.com

Review URL: https://codereview.chromium.org/2433943002 .
2016-11-09 13:21:39 +01:00
Erik Ernst 5bf3c1fa4d Fixed erroneously commented-out \end{itemize}
Commit 4cb61407a8, CL
https://codereview.chromium.org/2476613002 introduced a spurious `%`
which causes `latex dartLangSpec.tex` to fail. This CL fixes it.

Review URL: https://codereview.chromium.org/2487113003 .
2016-11-09 12:30:34 +01:00
Lasse Reichstein Holst Nielsen 4cb61407a8 Remove generalized tear-offs from the specification.
Fixes issue #27519
BUG= http://dartbug.com/27519
R=eernst@google.com

Review URL: https://codereview.chromium.org/2476613002 .
2016-11-07 14:53:27 +01:00
Erik Ernst 06416e404b Fixed typo in spec: REHTROW --> RETHROW
Review URL: https://codereview.chromium.org/2462993002 .
2016-10-31 10:15:03 +01:00
Lasse R.H. Nielsen 6e6ff496ed Allow rethrow to end a switch case. Allow braces around switch cases.
Add `rethrow` as one of the statements that are allowed to end a switch case
without a warning.
Change wording to not claim that `throw` is a statement.
Also allow wrapping case statements in a block statement without causing
more warnings. Currently, a `case 4: { break; }` is required to warn because
the last statement is a block statement, not a break statement.

Fixes issue #27650
BUG= http://dartbug.com/27650
R=eernst@google.com, floitsch@google.com, rnystrom@google.com

Review URL: https://codereview.chromium.org/2447613003 .
2016-10-25 13:04:36 +02:00
Lasse R.H. Nielsen efb9a12811 Add = as default-value separator for named parameters.
Fixes issue #27559.

BUG= http://dartbug.com/27559
R=asiva@google.com, eernst@google.com, floitsch@google.com, sigmund@google.com

Review URL: https://codereview.chromium.org/2411633002 .
2016-10-14 11:25:25 +02:00
Lasse R.H. Nielsen cc6d93b57c Make it a compile-time error if a library has part "uri"; twice for the same uri.
If the part declaration is non-empty, it will always cause a compile-time error anyway due to duplicate declarations in the library scope. This just makes it explicit that it's an error in all cases, and avoids the special case of the empty part file being silently accepted until you put something in it.

R=eernst@google.com

Review URL: https://codereview.chromium.org/2371743002 .
2016-10-05 11:12:22 +02:00
Lasse R.H. Nielsen 16d806b0aa Make the spec specific about the return type of sync*/async/async* function.
Now requires the type to be a supertype of `Iterable<T>`/`Future<T>`/`Stream<T>`
for some `T`. This allows, say, all `Future<T>` return types for `async` but
disallows using a different class implementing `Future`:
```
MyFuture foo() async {}
```
gives a static warning (error in Dart 2) because the return type is statically
known to be unsatisfied.

Fixes issue #27470
BUG= http://dartbugcom/27470
R=eernst@google.com, floitsch@google.com

Review URL: https://codereview.chromium.org/2392513002 .
2016-10-05 10:24:10 +02:00
Lasse R.H. Nielsen 9e032f493d Add documentation to the mixin superclass requirement description.
Fixes issue #25312
BUG= http://dartbug.com/25312
R=eernst@google.com

Review URL: https://codereview.chromium.org/2375913002 .
2016-09-29 10:24:35 +02:00
Lasse R.H. Nielsen b98484fbc1 Fix spec reference to non-existing mirrors method.
Fixes #25549
BUG= https://dartbug.com/25549
R=eernst@google.com

Review URL: https://codereview.chromium.org/2381483002 .
2016-09-28 13:38:14 +02:00
Lasse R.H. Nielsen debbf68223 Fix bug effectively stating that 1e8 is an integer literal, not a double.
Fix typo in spec - uses `/` when intending division by zero error.

Fixes issues #26053, #27279

BUG= http://dartbug.com/26053, http://dartbug.com/27279
R=eernst@google.com, floitsch@google.com

Review URL: https://codereview.chromium.org/2370853004 .
2016-09-28 09:51:10 +02:00
Lasse R.H. Nielsen 574ae435f3 Allow surrogates in string literals.
Fixes issue #26620
BUG: http://dartbug.com/26620

R=asiva@google.com, brianwilkerson@google.com, floitsch@google.com, hausner@google.com, sigmund@google.com

Review URL: https://codereview.chromium.org/2304923002 .
2016-09-26 13:23:41 +02:00
Erik Ernst 9a1e050a85 Adjusts the spec to include access to initializing formals.
Adresses https://github.com/dart-lang/sdk/issues/26659.

R=lrn@google.com

Review URL: https://codereview.chromium.org/2190373002 .
2016-08-23 18:28:40 +02:00
Lasse R.H. Nielsen 04a470e636 Spec: Allow any expression in assert statements.
Fixes issue #26866

BUG= http://dartbug.com/26866
R=eernst@google.com, floitsch@google.com

Review URL: https://codereview.chromium.org/2143363002 .
2016-08-15 11:57:51 +02:00
Lasse R.H. Nielsen 4f9645c406 Add trailing commas to argument and parameter lists.
R=eernst@google.com

Review URL: https://codereview.chromium.org/2060163002.
2016-07-06 15:17:46 +02:00
Lasse R.H. Nielsen 65421fb2bf Various fixes to wording and typos.
R=eernst@google.com

Review URL: https://codereview.chromium.org/2060773002.
2016-06-14 15:55:06 +02:00
Harry Terkelsen 1745ba77f5 fix all instances of "the the"
BUG=
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1980573003 .
2016-05-13 12:38:25 -07:00
Lasse R.H. Nielsen 2a0cc74db1 Expand the definition of potentially constant expression.
The current definition requires the expression to be valid and
compile-time constant if constructor parameters are considered
compile-time constants with types appropriate for their context.

This is necessary but not sufficient, so this CL adds the further
requirement that the expression must also be a valid (not necessarily
constant) expession if the parameters are considered non-constant
variables.

This rules out the case:

    const C(x) : y = const [x];

where the current specification would, technically, allow it as a
potentially constant expression and therefore be a valid const
constructor. In practice it would never work if the constructor is
used with "new" instead of "const".

This is not really a specification *change* - existing implementations has this restriction anyway.

Addressed the concern of #24970.
BUG= http://dartbug.com/24970
R=eernst@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org/1465473002 .
2016-01-20 13:21:39 +01:00
Lasse R.H. Nielsen fd59c87146 Make ?? a compile-time constant operator.
Update specification, change analyzer, VM and dart2js.

Fixes issue #25054.
BUG= http://dartbug.com/25054
R=floitsch@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org/1493693002 .
2016-01-12 12:30:07 +01:00
Gilad Bracha a0e4f28160 Unnamed libraries do not cause warnings.
BUG=
R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//1299283002 .
2015-08-19 13:21:29 -07:00
Gilad Bracha b11670f899 Ensure null aware ops on statics are unsurprising.
BUG=
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1218483004.
2015-06-29 15:33:06 -07:00
Gilad Bracha 4fb7507c3e Remove mixin DEP annotation from header
BUG=

Review URL: https://codereview.chromium.org//1202733006.
2015-06-24 12:40:08 -07:00
Gilad Bracha 2c7234bd61 Mixin DEP changes
BUG=
R=eernst@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//1190453003.
2015-06-24 12:33:18 -07:00
Gilad Bracha d8b47ad0a6 Added language spelling out static type of prefix objects
BUG=
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1195133002.
2015-06-23 11:41:35 -07:00
Kevin Millikin 2e5a132fe1 Fix a typo in the specification of switch cases.
In the grammar, labels must before the word 'case'.  However, in the
description the labels come between the word 'case' and the comparison
expression.  Closes #22127.

BUG=
R=gbracha@google.com

Review URL: https://codereview.chromium.org//1189523004.
2015-06-16 12:02:16 +02:00
Gilad Bracha f71b48a041 Revise static typecheck rules for for-in.
BUG=
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1184183010.
2015-06-15 17:50:37 -07:00
Gilad Bracha b34c19d0ce Add missing clause for LUB(Bottom, T)
BUG=
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1179113010.
2015-06-15 16:20:30 -07:00
Gilad Bracha 1ab7736b57 Added type rules for e++ and friends
BUG=
R=paulberry@google.com

Review URL: https://codereview.chromium.org//1183493005.
2015-06-15 15:00:55 -07:00
Gilad Bracha 2b95ed1ae1 Make use of call on Function exempt from warnings,
BUG=
R=lrn@google.com

Review URL: https://codereview.chromium.org//1176853003.
2015-06-15 13:24:10 -07:00
Gilad Bracha 67b99e4b33 Make sure we use lexical scope consistently when dealing with prefixes.
BUG=
R=lrn@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org//1184583002.
2015-06-12 17:38:42 -07:00
Gilad Bracha 58708e3ad1 Specify behavior of e?.v++ and e?.v--
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//1181733003.
2015-06-11 15:01:06 -07:00
Gilad Bracha c448d7fb0b Make package: URI schema implementation dependent per latest DEP.
BUG=
R=lrn@google.com

Review URL: https://codereview.chromium.org//1170393002.
2015-06-10 12:36:31 -07:00
Gilad Bracha 89607f06e9 Updates for 1.10: warnings when for-in uses an expression that has no iterator; assorted typos.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1171283002.
2015-06-09 15:44:31 -07:00
gbracha@google.com 099e37e003 Changes for TC52 3rd edition
R=eernst@google.com

Review URL: https://codereview.chromium.org//1031323002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44726 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-27 01:45:31 +00:00
gbracha@google.com ae83a06400 Assorted fixes to async: yield may suspend in async* methods; yield* skips emptysequences; definition of flatten.
R=hausner@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org//1010433002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44569 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-18 23:18:06 +00:00
gbracha@google.com e259e8f86f Correct reference to definition of flatten
Review URL: https://codereview.chromium.org//993213002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44391 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-11 00:59:51 +00:00
gbracha@google.com c82a633c65 Strengthen warnings for return types of async/async*/sync* functions.
R=paulberry@google.com

Review URL: https://codereview.chromium.org//891303004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43420 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 19:06:09 +00:00
gbracha@google.com 609e6ebb66 Clarify behavior of iterables and iterators with sync*.
R=lrn@google.com

Review URL: https://codereview.chromium.org//858063002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43415 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 18:19:11 +00:00
gbracha@google.com dff3b74a05 Remove restrictions on scope of doc comments.
R=sethladd@google.com

Review URL: https://codereview.chromium.org//843013003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42940 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-15 23:51:50 +00:00
gbracha@google.com 1bc0e8dc1d insure type vars are bound properly when executing field initializers. Also correct assoc tablefor ?:
R=lrn@google.com

Review URL: https://codereview.chromium.org//811953006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42785 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 18:52:14 +00:00
gbracha@google.com 8672603473 Fix name of spawnIsolate to spawn.
Review URL: https://codereview.chromium.org//808373003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42560 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-23 00:23:31 +00:00
gbracha@google.com 73de52110f Correct last revision
Review URL: https://codereview.chromium.org//825463002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42554 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-22 19:51:21 +00:00
gbracha@google.com 509c16c9cb Fix error in grammar for assignableExpression
Review URL: https://codereview.chromium.org//817723003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42553 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-22 19:06:55 +00:00
gbracha@google.com 0faaa550d1 Fix circular dependency between null equality and identity.
R=kmillikin@google.com

Review URL: https://codereview.chromium.org//804993005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42552 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-22 18:58:06 +00:00
gbracha@google.com 38606de2a5 Change static typing so that inherited noSuchMethod silences errors,
including undefined abstract members.

R=justinfagnani@google.com

Review URL: https://codereview.chromium.org//818463002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42521 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-19 18:44:39 +00:00
gbracha@google.com 11db20e680 Main function of a script can be function valued getter.
R=lrn@google.com

Review URL: https://codereview.chromium.org//800413003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42464 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-18 18:55:30 +00:00
eernst@google.com 93f4f00719 Working insertion of hash values; added a few labels in spec
Hash values are now computed for each "paragraph" starting with \LMHash
(which includes subsequent grammar, dartCode, itemize blocks, but stops
at \section-like commands).  Now addlatexhash.dart expects three arguments
(first the source latex file, then the destination simplified and
hash-value-annotated latex source file, and finally a file name used to
create the list of hash values emitted).  Adjusted testing accordingly.
Added a test for robustness of the hash value generation: It is checked
that lots of different "unimportant" changes make no difference for the
generated hash values (e.g., we can add/remove comments, change white
space, add \commentary{..} etc. without changing the hash values).

In order to ensure that all "structure" commands in the spec have a label,
I added an \LMLabel{..} a handful of places, following the style which is
used throughout the spec.

In dart.sty, the \renewcommand that made \LMHash{} produce a fixed
hash value has been removed such that the actual hash values are now
inserted into the generated spec PDF/DVI file.  Tests have been adjusted
to handle this difference between the spec with and without hash values
when comparing the two.

R=gbracha@google.com, lrn@google.com, ricow@google.com

Committed: https://code.google.com/p/dart/source/detail?r=41658

Reverted: https://code.google.com/p/dart/source/detail?r=41662

Review URL: https://codereview.chromium.org//652993005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41687 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-12 08:41:55 +00:00
eernst@google.com 36122ae11f Recovered \LM.. commands
Recovered the \LM.. commands inserted in order to support SHA1 hash value
markers on spec paragraphs; also recovered a couple of changes directly
required for the \LM.. commands to work.

Review URL: https://codereview.chromium.org//722573003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41686 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-12 08:27:43 +00:00
eernst@google.com 4074b50818 Revert "Working insertion of hash values; added a few labels in spec"
This reverts commit r41658.

Review URL: https://codereview.chromium.org//714883002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41662 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-11 11:39:40 +00:00
eernst@google.com 9570a582eb Working insertion of hash values; added a few labels in spec
Hash values are now computed for each "paragraph" starting with \LMHash
(which includes subsequent grammar, dartCode, itemize blocks, but stops
at \section-like commands).  Now addlatexhash.dart expects three arguments
(first the source latex file, then the destination simplified and
hash-value-annotated latex source file, and finally a file name used to
create the list of hash values emitted).  Adjusted testing accordingly.
Added a test for robustness of the hash value generation: It is checked
that lots of different "unimportant" changes make no difference for the
generated hash values (e.g., we can add/remove comments, change white
space, add \commentary{..} etc. without changing the hash values).

In order to ensure that all "structure" commands in the spec have a label,
I added an \LMLabel{..} a handful of places, following the style which is
used throughout the spec.

In dart.sty, the \renewcommand that made \LMHash{} produce a fixed
hash value has been removed such that the actual hash values are now
inserted into the generated spec PDF/DVI file.  Tests have been adjusted
to handle this difference between the spec with and without hash values
when comparing the two.

R=gbracha@google.com, lrn@google.com, ricow@google.com

Review URL: https://codereview.chromium.org//652993005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41658 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-11 10:08:12 +00:00
gbracha@google.com 27db1ea7af orrect cut/paste error that replicated an item in the list of constants and (worse) deleted another.
Review URL: https://codereview.chromium.org//715653003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41647 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-10 20:23:06 +00:00
eernst@google.com bf339367c3 Introduced hash valued location markers in the spec
Introduced support for adding SHA1 hash valued location markers
at several levels in the language specification, added long explanatory
comment at the end, added a script 'addlatexhash.dart' to normalize
spacing, remove comments, etc., in the spec, such that the hash values
are more robust than they would be with a direct usage of the spec.

The script passes the "dvi2tty test", that is, when the location markers
are empty, the resulting *.dvi files created from dartLangSpec.tex and
from the version processed by the script give rise to the same text via
dvi2tty, i.e., the script does not destroy the spec.

R=gbracha@google.com, ricow@google.com

Review URL: https://codereview.chromium.org//646003002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41191 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-20 14:02:23 +00:00
gbracha@google.com 3f7b6cf6a0 Fix typos due to TeXShop quote (mis)processing
R=eernst@google.com

Review URL: https://codereview.chromium.org//639953003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41078 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-13 17:12:08 +00:00
gbracha@google.com 8080adfa27 Added missing keywords for async etc.
R=eernst@google.com

Review URL: https://codereview.chromium.org//635913002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40992 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-08 15:55:04 +00:00
eernst@google.com 422284dc73 Await always awaits
Fetched from https://codereview.chromium.org/572283003/
and committed to resolve commit issue for Gilad Bracha

Review URL: https://codereview.chromium.org//575413002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40427 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-18 09:09:55 +00:00
gbracha@google.com 6a6b49775d async/await, async*, sync* and yield
Review URL: https://codereview.chromium.org//498873003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40052 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 20:51:31 +00:00
gbracha@google.com b55e02f083 Add enums to the main grammar entry point.
Review URL: https://codereview.chromium.org//493453003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39386 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 21:53:33 +00:00
gbracha@google.com 60f5a0c18d Enums.
R=kasperl@google.com

Review URL: https://codereview.chromium.org//483873002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39385 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-19 21:39:45 +00:00
gbracha@google.com f9ccd0d318 Clarify that prefixes may not be built-in identifers
R=kustermann@google.com

Review URL: https://codereview.chromium.org//415333003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38567 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-25 00:49:05 +00:00
gbracha@google.com b500b5333a Change rules so prefixes obey lexical scope. Do this by basing member access on objects uniformly.
R=lrn@google.com

Review URL: https://codereview.chromium.org//396733003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38518 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-23 20:29:48 +00:00
gbracha@google.com 5dfa44d0a2 Explicitly specify what happens when noSuchMethod(x) is not found
R=lrn@google.com, regis@google.com

Review URL: https://codereview.chromium.org//389403002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38212 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-14 20:15:23 +00:00
gbracha@google.com c85dae8a03 Rtrying change to make const classes finals constant
Review URL: https://codereview.chromium.org//387733003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38139 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-10 23:13:07 +00:00
gbracha@google.com 53f5ad1cd3 Integrated deferred loading into main spec.
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//373333002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38091 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-09 17:19:51 +00:00
gbracha@google.com 12422f1083 Replace subtyping with << for function type emulation.
R=jwren@google.com

Review URL: https://codereview.chromium.org//372083002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38072 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-08 21:46:38 +00:00
gbracha@google.com 339513f7e3 Eliminate redundant condition for interface inheritance.
R=brianwilkerson@google.com, paulberry@google.com

Review URL: https://codereview.chromium.org//298803014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36579 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-23 18:36:26 +00:00
gbracha@google.com 6ef09c32dd main function may take an argument.
R=lrn@google.com

Review URL: https://codereview.chromium.org//280473004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36450 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-21 20:57:25 +00:00
gbracha@google.com f9d663f190 Modify identity of NaNs so they are identical iff they are bit identical.
R=lrn@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//274963005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36187 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-14 20:06:21 +00:00
gbracha@google.com 2f93268ba1 ECMA modifications and minor fixes since.
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//272723003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35928 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-08 18:23:07 +00:00
gbracha@google.com 926d5bb14b Clarify that dart system libs have lower priority regardless how imported.
R=johnniwinther@google.com, kasperl@google.com

Review URL: https://codereview.chromium.org//208293006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34378 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-25 18:15:48 +00:00
gbracha@google.com 80f6cd58e6 Ensure warnings are given on logical boolean expressions and for loops where booleans are expected but the type is not bool.
R=brianwilkerson@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//206883003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34260 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-21 17:42:02 +00:00
gbracha@google.com 78776f9781 Changes required for ECMA standardization, plus allow void in getter return type.
R=ahe@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//206743002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34201 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 20:23:43 +00:00
gbracha@google.com 325c2d8f53 Clarify inheritance rule so that warning is given if no suitable *concrete* method is declared yet the interface requires it.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//189163009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33498 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-10 17:24:42 +00:00
gbracha@google.com 708f25bdef Correct type rules following changes to getter behavior.
R=lrn@google.com

Review URL: https://codereview.chromium.org//186883003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33466 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-07 23:39:03 +00:00
gbracha@google.com 6d58ce9bfe Revise spec to agree with implementations for meaning of getter/variable and setter references. While the actual difference were only in a few odd cases, the new text should also be clearer.
R=hausner@google.com, lrn@google.com

Review URL: https://codereview.chromium.org//177283007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33287 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-04 18:37:37 +00:00