Commit Graph

25510 Commits

Author SHA1 Message Date
Jens Johansen ac99b68c00 Don't catch call to buildOutlines
This was meant to be a bandage until a real fix landed
(which it did a few days after the 'fix' landed).
While it might still 'fix' something, it also does so silently meaning
that we won't ever catch it if we keep this try block.

Change-Id: I12b69ca06accd0b3fd3c51e2c292e61157c40f71
Reviewed-on: https://dart-review.googlesource.com/c/88571
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-08 13:19:15 +00:00
Jens Johansen 199fdb4d9e Dill loader.builders shouldn't have dart: uris removed
Change-Id: I96b2d995058a014af8d23addd66a893b9b740fe6
Reviewed-on: https://dart-review.googlesource.com/c/88569
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-08 13:15:14 +00:00
Kevin Millikin 8e486164a4 [Fasta] Enable running the constant evaluation pass
The experimental flag `constant-update-2018` selects front-end
constant evaluation.  The transformation is run before performing any
backend-specific transformations.

Compiling dart2js in strong mode goes from 12 seconds to between 12.3
and 12.5 (with more variability, apparently).

Change-Id: I279f0e60a3197b4fb077a1e9641ea92cf1409612
Reviewed-on: https://dart-review.googlesource.com/c/88701
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2019-01-08 12:19:53 +00:00
Peter von der Ahé 938665a290 Update comment to match parameter
Change-Id: I7d63ae36110d9baf2b00c713490e07962bd069b0
Reviewed-on: https://dart-review.googlesource.com/c/88706
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-08 11:32:13 +00:00
Dmitry Stefantsov 113ca50ba3 [kernel] Add a step to fasta unit tests to check text serialization
Change-Id: I8d945fc9d75aad1c4275b6d3dd3f9e2ea884ea9f
Reviewed-on: https://dart-review.googlesource.com/c/88451
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-08 10:31:42 +00:00
Dmitry Stefantsov 6b8826f336 [kernel] Rename failure classes for TextSerializationVerifier
Change-Id: I51240e069a1a518fe35d25d2a44e8d7a84343946
Reviewed-on: https://dart-review.googlesource.com/c/88562
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-08 10:31:42 +00:00
Dmitry Stefantsov c76c5a023d [kernel] Rename 'errors' to 'failures' in TextSerializationVerifier
Change-Id: I9886e1c7ba4fbacff18f79a627f8e75b50c960c7
Reviewed-on: https://dart-review.googlesource.com/c/88561
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-08 10:31:42 +00:00
Dmitry Stefantsov cebd469ecd [kernel] Move RoundTripVerifier to pkg/kernel/lib/text and rename it
Change-Id: Icb61feab76be161e99b8c2fd316e41271470182a
Reviewed-on: https://dart-review.googlesource.com/c/88560
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-08 10:31:42 +00:00
Kevin Millikin a2844bdfd4 [Kernel] Add serializers for public names
This will enable serialization of expressions blocked on names.
Supporting private names requires a map from from serialized library
ID to library.  More generally, we need to support something like the
dill file's canonical names.

Change-Id: I7d470e6a49b167f7755d130ea6c3e543e188da65
Reviewed-on: https://dart-review.googlesource.com/c/88703
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Daniel Hillerström <hillerstrom@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2019-01-08 10:28:42 +00:00
Johnni Winther fef600a998 Remove effectively empty type holders
+ correctly join with path with less information.

Change-Id: I44921f5b1d1613934d5321d87840db689b3b4b0b
Reviewed-on: https://dart-review.googlesource.com/c/88573
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-01-08 09:19:29 +00:00
Samir Jindel b58e8d7307 [vm] Use TFA to remove explicit type-checks (including keyword-covariant parameters).
- Also allow using the unchecked entry-point for invocations of generic functions where
  there are no bounds or the bounds don't require dynamic checks.

Change-Id: I6ca1ebec777ecf2989c4fb77425d65d542d5adf2
Cq-Include-Trybots: luci.dart.try:vm-kernel-optcounter-threshold-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-kernel-precomp-linux-release-simarm-try, vm-kernel-precomp-linux-release-simarm64-try, vm-kernel-precomp-linux-release-x64-try, vm-kernel-precomp-mac-release-simarm64-try, vm-kernel-precomp-win-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/87181
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-01-08 08:36:58 +00:00
Max Bittker 2c09a4cf33 update error message
fixes a small typo in the `INVOCATION_OF_NON_FUNCTION_EXPRESSION` message

Closes #35589
https://github.com/dart-lang/sdk/pull/35589

GitOrigin-RevId: b30d58449c7d2d7a786d71f64ce1a4251de72296
Change-Id: I623ebd0f5113e4bc8b1e07bfd963c27a28c7fef0
Reviewed-on: https://dart-review.googlesource.com/c/88603
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-07 23:38:43 +00:00
Konstantin Shcheglov 3cec3dd5bf Issue 35548. Don't report CONST_CONSTRUCTOR_WITH_MIXIN_WITH_FIELD when mixin has a static field.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/35548
Change-Id: I46a2006574e31505a860a9e54640b643bb514ae7
Reviewed-on: https://dart-review.googlesource.com/c/88600
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-07 22:32:53 +00:00
Konstantin Shcheglov f715a2e79e Include experiments into AnalysisOptions.unlinkedSignature.
Enabled experiments might affect how we parse Dart code, e.g. `?` for
nullable types. So, we need to include at least some experiments into
unlinkedSignature. So, we pessimistically include all of them.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ib6e95fe7f4efaa6e6ada1c3a81d010c89f9676d5
Reviewed-on: https://dart-review.googlesource.com/c/88602
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-01-07 22:16:03 +00:00
Jenny Messerly e541849a9f [dartdevc] fix mixin super constructor calls in kernel backend
Kernel and Analyzer have slightly different rules for creating implicit
constructors, which DDC's kernel backend did not account for. This
resulted in a mismatch between which super constructor calls it thought
were necessary, vs which constructors were generated.

Both DDC backends are now less sensitive to the representations, and
the kernel backend checks for field initializers in mixin declarations,
rather than relying on the (nonexistent) implicit constructor node.

Change-Id: I01a6ae11ecf78193d7db227ba0b7adeb27d514d5
Reviewed-on: https://dart-review.googlesource.com/c/88432
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2019-01-07 21:14:22 +00:00
Konstantin Shcheglov eebafbc4a8 Issue 35090. Add noSuchMethod forwarders to implemented members.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/35090
Change-Id: I1a72d70effe49111921a0db2a2e5396197d3a51b
Reviewed-on: https://dart-review.googlesource.com/c/88542
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-01-07 19:40:19 +00:00
Konstantin Shcheglov b2ace8fa61 Add hasPragmaAnalyzerNonNullable to AstBuilder and CompilationUnitImpl.
Start integration testing for non-nullable types.

Just interface type, and just parsing for now. Obviously we cannot
start working on resolver until the CL with `nullability` is landed.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I8fe70c29b25fad56739a549b09a235a83f9960e7
Reviewed-on: https://dart-review.googlesource.com/c/88434
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-01-07 19:39:28 +00:00
lambdabaa 5f25d1546c Guard analysis server against missing .instrumentation directory location on disk
Currently if analysis server fails to resolve this directory, it will
crash the entire process with

NoSuchMethodError: The method 'getChild' was called on null.

_readUuid() was already failing over to generating a new random
identifier if it was either unable to find a uuid.txt file or
create one, so this change just triggers that behavior additionally
in the case that the parent directory is missing.

R=brianwilkerson@google.com

Change-Id: Ieafde2df5afd7e30a3830f241af02bf305c911ec
Reviewed-on: https://dart-review.googlesource.com/c/88428
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Ari Aye <ariaye@google.com>
2019-01-07 17:31:06 +00:00
Johnni Winther e14472c46b Use getters/setters found through the static types.
This uses the information from the static types now used in inference which
can improve the precision in particular for generic classes. Since type
masks lose the type argument information, we cannot expect locating members
based on the type mask to be more precise than what has been found through
the static types.

This CL also expands the unit test framework to support unit test of
optimizations and the emission model, including tests of the improved
field access handling.

Closes #35433

Change-Id: Ia5de15efaf8b60c8723943bb34de6eec7d380798
Reviewed-on: https://dart-review.googlesource.com/c/88440
Reviewed-by: Stephen Adams <sra@google.com>
2019-01-07 15:01:10 +00:00
Brian Wilkerson 555485c891 Start splitting out the tests for hint codes
Change-Id: I2d221aa024b6db9426d7adf6b38c17da0be599d9
Reviewed-on: https://dart-review.googlesource.com/c/88541
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-07 14:25:20 +00:00
Peter von der Ahé dd47792f16 Replace isMergingInterfaces with an enum
Change-Id: I4af320373b38d301943e12e2e9916b5eccdd2f31
Reviewed-on: https://dart-review.googlesource.com/c/87964
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-07 13:50:16 +00:00
Peter von der Ahé f3677bb2e7 Merge interfaces when building hierarchy
Change-Id: I2d3db2fa653a4caa9f90bdc8557d80f5a2836a52
Reviewed-on: https://dart-review.googlesource.com/c/87641
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-01-07 13:50:16 +00:00
Peter von der Ahé 0008641bfd Remove InterfaceResolver.legacyMode
Change-Id: Icc4d51dd4d2ff35d2048f8190ca134919c56f6a0
Reviewed-on: https://dart-review.googlesource.com/c/87588
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2019-01-07 12:41:12 +00:00
Jonas Termansen 7d6a3e0058 Fix http links to pub which has https.
Change-Id: I3b712014fb0744b890df426e941907760bd92780
Reviewed-on: https://dart-review.googlesource.com/c/88452
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
2019-01-07 11:37:19 +00:00
Alexander Markov 3b29f5ad81 [VM/AOT/TFA] Do not attribute calls via fields/getters with inference results
MethodInvocation nodes which have field or getter as interface target
actually correspond to 2 calls: 1) getter; 2) implicit call() on the result
of the getter.

While this was correctly modeled in summaries in TFA, it is not correct
to attribute such MethodInvocation nodes with results of the inference,
as results correspond to an each distinct call. To fix this, Call
statements in summaries are created without attaching them to a
corresponding kernel AST node.

Change-Id: I3ea28ed85550192f8b592a926cac0eae23810811
Reviewed-on: https://dart-review.googlesource.com/c/88424
Commit-Queue: Martin Kustermann <kustermann@google.com>
Auto-Submit: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-01-07 10:22:40 +00:00
Brian Wilkerson a10f6aac38 Finish cleaning up the copyright notices in the analyzer_cli package
Change-Id: I4de3c9e17b4e569c32470ffd1c2061749d3184ed
Reviewed-on: https://dart-review.googlesource.com/c/88439
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-06 19:16:31 +00:00
Konstantin Shcheglov f259cc674f Don't split const/final variable declarations. Add explicit type.
R=brianwilkerson@google.com, keertip@google.com

Change-Id: I418a5e541194f2c94927f23b3468a6a876e05a1b
Reviewed-on: https://dart-review.googlesource.com/c/88438
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-01-06 18:53:29 +00:00
Brian Wilkerson 4e0762c636 Fix constant evaluation for the new bool operators
Change-Id: I4a30544b2d0e5cff8287dbe5fc83387b4e92a875
Reviewed-on: https://dart-review.googlesource.com/c/88437
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-01-05 22:57:19 +00:00
Brian Wilkerson cb61275708 Remove remaining uses of Null as a type argument from analyzer
Change-Id: I6022fbc18c002447278ec8dc0e2b24d3eb369a49
Reviewed-on: https://dart-review.googlesource.com/c/88436
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-05 19:26:07 +00:00
Brian Wilkerson 18844b85ec Remove occurrences of Future<Null> from analyzer_cli
Change-Id: I008589455681dd5da80df4e466803f8cf48cd910
Reviewed-on: https://dart-review.googlesource.com/c/88435
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-05 19:25:47 +00:00
Brian Wilkerson 2f913e7c15 Add documentation about how to debug plugins
Change-Id: Ie0e90e1412b88c357d5774cd07f6f08bfad9c579
Reviewed-on: https://dart-review.googlesource.com/c/88421
Reviewed-by: Mike Fairhurst <mfairhurst@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-05 16:01:03 +00:00
Brian Wilkerson c39a58a9fe Generate an error if a constant set contains two elements with the same value
Change-Id: Ie359a1ea639e9c928df32c727bcd2f075f92033f
Reviewed-on: https://dart-review.googlesource.com/c/88425
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-01-05 15:13:12 +00:00
Mike Fairhurst 88b1a9d241 Remove hack; test fix for #35441
Change-Id: I9505598e904e4ee39b00cbae87082f5f332f3505
Reviewed-on: https://dart-review.googlesource.com/c/87612
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-05 03:52:34 +00:00
Konstantin Shcheglov 614f6241bb Initial version of DefiniteAssignmentTracker.
I think it supports all expressions and statements.

Change-Id: I753bd6ce781f54c1dfd0f15f69fca2f15c2a1877
Reviewed-on: https://dart-review.googlesource.com/c/87423
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-04 23:54:23 +00:00
Jenny Messerly 36ab8b18ea [dartdevc] implement set literal and enable-experiments support
Change-Id: Ibc45b1b1792d62a8f176e6c2f2f5c1e3134942f1
Reviewed-on: https://dart-review.googlesource.com/c/88400
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2019-01-04 22:08:54 +00:00
danrubel 26d5345fb1 Fix TypeInfo.couldBeExpression in recovery situations
Change-Id: Ia9f1735b8ad28dbfcde1f54ac70628e85b65c1d3
Reviewed-on: https://dart-review.googlesource.com/c/88480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-01-04 21:08:35 +00:00
Brian Wilkerson 80fa1a874d Replace more uses of deprecated elements
Change-Id: Ied014ca1d8cbf5917b5e3d15d0892e2e02257ccf
Reviewed-on: https://dart-review.googlesource.com/c/88423
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-01-04 18:35:53 +00:00
Jenny Messerly 3d6acab3e7 [dartdevc] remove unused dartdevk binary, fixes #35483
It's simply an alias for `dartdevc --kernel`, and now that build_runner
is switching to that, there's no reason to keep it around anymore.

Change-Id: I43d30a582314a236bcfa2e3a0b50bb48ddac79f8
Reviewed-on: https://dart-review.googlesource.com/c/88281
Auto-Submit: Jenny Messerly <jmesserly@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2019-01-04 17:19:52 +00:00
Dmitry Stefantsov 7778a8b6ca [kernel] Start setting up test suite for round-trip serialization
Change-Id: I00920c41a5eaa99a7cc3eececff1caac94b1c1c9
Reviewed-on: https://dart-review.googlesource.com/c/88184
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-04 16:05:26 +00:00
Dmitry Stefantsov 5e609d7946 [kernel] Implement serialization round-trip check for dart types
Change-Id: Ie97439e6f822eb1e94c17cc4a5f3c04f1f58a4bc
Reviewed-on: https://dart-review.googlesource.com/c/88444
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-04 16:05:26 +00:00
Dmitry Stefantsov 39539773bb [kernel] Implement serialization round-trip check for expressions
Change-Id: Ibf3766f5325a9bf0b1016232319e0b308eca188c
Reviewed-on: https://dart-review.googlesource.com/c/88442
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-04 16:05:26 +00:00
Dmitry Stefantsov 3b728c0a04 [kernel] Wire round-trip verification down to expressions and types
Change-Id: Iab7a41fced28c58ea1280b5a8960d3440bc29e23
Reviewed-on: https://dart-review.googlesource.com/c/88441
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-04 16:05:26 +00:00
Dmitry Stefantsov 1cbae9fe48 [kernel] Start implementing verifier for serialization round trips
Change-Id: I907e92cf7b7f791a4bc64cac6739489d38d2c224
Reviewed-on: https://dart-review.googlesource.com/c/88322
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2019-01-04 16:05:26 +00:00
Aske Simon Christensen d0f1edb2da Temporary desugaring of set literals.
When compiling for backends that have not yet implemented support for
the set literal kernel node, transform all such literals into either a
Set() creation with a sequence of add() calls (for non-const literals)
or a const map literal wrapped in a const _UnmodifiableSet object
(for const literals).

The transformation is only performed on bodies or field initializers
that contain at least one actual set literal (i.e. not including
ambiguous set/map literals that were resolved as map literals), so as
to minimize the overhead for code not containing any set literals.

Change-Id: I80318717f0e8481a73f7034e18beea6494fd44bc
Reviewed-on: https://dart-review.googlesource.com/c/87326
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-04 14:25:49 +00:00
Jens Johansen d53f02aa8a Remove writeOptionalReference
References can be null --- it's written as the byte [0].
Thus in the null case it would before be [0] and now be [0].
In the non-null case it would before be [1, xyz] (1 for Tag.Something
and xyz for the actual, now positive, uint30). Now it would be [xyz].

Change-Id: Ibc08d3afb7275b0429a4d6c5e667fbd381121489
Reviewed-on: https://dart-review.googlesource.com/c/85394
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-01-04 13:31:03 +00:00
Peter von der Ahé 077ad9acfb Change ticker name for checking supertypes
Change-Id: Id843dad34f91409ec1b317932ae2f0fa158736c6
Reviewed-on: https://dart-review.googlesource.com/c/87967
Commit-Queue: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Auto-Submit: Peter von der Ahé <ahe@google.com>
2019-01-04 10:36:30 +00:00
Jens Johansen c3b0ebd391 dill serialization: Specialize some writeNodes
Golem says:

x64
AstToBinaryP90 (Intel Core i5)	-1.995% (0.0 noise)
AstToBinaryP90 (Intel Xeon)	-4.005% (0.1 noise)
AstToBinaryP50 (Intel Core i5)	-2.209% (0.2 noise)
AstToBinary (Intel Core i5)	-2.551% (0.3 noise)
AstToBinaryP50 (Intel Xeon)	-3.982% (0.4 noise)
AstToBinary (Intel Xeon)	-4.184% (0.4 noise)


ia32
AstToBinaryP90 (Intel Core i5)	-2.417% (0.2 noise)
AstToBinaryP50 (Intel Core i5)	-2.445% (0.2 noise)
AstToBinary (Intel Core i5)	-2.491% (0.2 noise)
AstToBinary (Intel Xeon)	-2.666% (0.2 noise)
AstToBinaryP90 (Intel Xeon)	-2.611% (0.2 noise)
AstToBinaryP50 (Intel Xeon)	-2.690% (0.2 noise)


Change-Id: I5e864fb9a8cf3aece1c4ad279cb5a1192dae4a07
Reviewed-on: https://dart-review.googlesource.com/c/85364
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2019-01-04 10:12:28 +00:00
Jens Johansen 6c909a0efa Be explicit about whether a reference is allowed to be null or not
Before this change we allowed to serialize some references as null,
and would only complain when trying to read the dill back in.
This CL changes that so it complains up front.

It is unknown if any of this would ever occur in practise.

Change-Id: Id5e1af89abfb88a2d4249bd439b53b062d7aeffa
Reviewed-on: https://dart-review.googlesource.com/c/85392
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-01-04 08:39:36 +00:00
Stephen Adams 8deb5aabba Reinstate reduction for closure call to known static method
This was accidentally removed during the migration to kernel.

Change-Id: Ib4998074269b1bf5b1dd3feedebcb50dc1164c5d
Reviewed-on: https://dart-review.googlesource.com/c/88229
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-01-03 22:44:53 +00:00
Paul Berry 01a8ff067e Remove support for "@checked" annotations.
Dart now has a "covariant" keyword that serves the same purpose.

Fixes #28797

Note that this is a breaking change, not to the analyzer API but to
the language semantics implemented by the analyzer; client code that
wants the "@checked" behavior will now have to use the "covariant"
keyword instead.  Since the front end implementation of the type
system only supports the "covariant" keyword, the impact on user code
should be low; any user code that would be broken by this change is
already broken under the front end.  Google internal code has already
been migrated to use "covariant".

Change-Id: Ida052bd5449d3ba703bacf98143bece650f53b53
Reviewed-on: https://dart-review.googlesource.com/c/88225
Commit-Queue: Paul Berry <paulberry@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-01-03 22:12:43 +00:00