Commit graph

53132 commits

Author SHA1 Message Date
Dmitry Stefantsov 1f3b493dcc Add simple instantiate-to-bounds algorithm to the common front-end
Bug:
Change-Id: I65097b037f4b02f0a161c9c183844a3dc3339c77
Reviewed-on: https://dart-review.googlesource.com/29880
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-04 11:31:08 +00:00
Kevin Millikin 6fa813d818 Change handling of Kernel static errors
Before: Kernel static errors were represented by throwing a distinguished
error or else by calling a distinguished library const constructor.

Now: Kernel static errors are represented by InvalidExpression.  To support
error reporting, InvalidExpression has an optional message and a file
offset.  A back end can choose to signal these errors at any time; for
example, when deserializing the binary, or when compiling the procedure
containing the static error, or when the erroneous expression is evaluated
at run time.

InvalidStatement is removed because it can be encoded as ExpressionStatement
of InvalidExpression.

Future work:

* supporting static errors where an expression cannot appear in the AST
* allowing InvalidExpression to contain an Expression for error recovery
* adding a top-level list of static errors and warnings to the binary

Bug: https://github.com/dart-lang/sdk/issues/29840
Change-Id: Ifdfe9a76cee6cefed28061bf245be70531d2f413
Reviewed-on: https://dart-review.googlesource.com/31320
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-04 11:00:25 +00:00
Jens Johansen dab5ac348b [kernel] Remove unused file
Bug:
Change-Id: I6a14d9f70d90bb59c26370b3aa62c8b30722cb58
Reviewed-on: https://dart-review.googlesource.com/32041
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-01-04 10:20:56 +00:00
Kevin Millikin f2dc0fa4d2 Respect --suppress-fe-warnings in the front-end isolate
Closes issue #31552.

Bug: https://github.com/dart-lang/sdk/issues/31552
Change-Id: I6e6c8b1aadadf096966bff6def81127e4186f82a
Reviewed-on: https://dart-review.googlesource.com/32240
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2018-01-04 09:15:05 +00:00
Johnni Winther 985eba5139 Refactor RuntimeTypesNeed(Builder) and make them testable
Change-Id: I67234dd2b076327c138e5b1d7de47ee3edc987d1
Reviewed-on: https://dart-review.googlesource.com/31901
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-04 08:35:31 +00:00
Stephen Adams 6ceb6ce00e Emit type representation for generic function types
Change-Id: I0a10f5316b3e3c633c34f2a9e184de01ed9cf7de
Reviewed-on: https://dart-review.googlesource.com/32004
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-04 02:45:15 +00:00
Sigmund Cherem 747772b02d Add regression test for #31306
I ended up fixing this bug during my refactoring to support
deferred-constant-values in kernel (1ddb7db237).
The issue was that ssa/builder.dart was using the output unit of the deferred
import instead of the output unit of the deferred constant field.

(fixes #31306)
Bug: https://github.com/dart-lang/sdk/issues/31306
Change-Id: I557983c5ec85f2aa6adb486961dd2f79852e8d5a
Reviewed-on: https://dart-review.googlesource.com/32201
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-04 00:16:25 +00:00
Zachary Anderson 8ee7a97651 [infra] Roll clang toolchain forward
Change-Id: I41afe48f2fdc056436b58dc8158c62e9207cc43f
Reviewed-on: https://dart-review.googlesource.com/32140
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-03 23:37:15 +00:00
Konstantin Shcheglov a0abc35f60 Resynthesize function types in constants.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/31554#issuecomment-354624024
Change-Id: Id5dc525f5d803c455e5336f460523d57ec832ace
Reviewed-on: https://dart-review.googlesource.com/32147
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-03 22:42:25 +00:00
Konstantin Shcheglov ad66944dfd Resolve references to parameters in named arguments.
R=brianwilkerson@google.com

Bug:
Change-Id: I1ae09971b72e1833c21bd6e725981fe99fe02fc4
Reviewed-on: https://dart-review.googlesource.com/32146
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-03 21:58:14 +00:00
keertip a8ef8dfcb4 Update async dependency
Bug:
Change-Id: Ib42f82a0ed79a2188dd3160c25b7b84190eb5c54
Reviewed-on: https://dart-review.googlesource.com/32141
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2018-01-03 21:55:05 +00:00
Brian Wilkerson aa593d0a2a Deal with a flaky test
Change-Id: I1d9e2616ce896b100ddfd9490c63db391d7debae
Reviewed-on: https://dart-review.googlesource.com/32180
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-03 21:11:44 +00:00
Sam Rawlins a8de95a55a Update changelog with analyzer features
Change-Id: Ibf8f08d43bd84faad5fad10bf73996273175428b
Reviewed-on: https://dart-review.googlesource.com/32144
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2018-01-03 20:51:04 +00:00
Dan Rubel a459bc8b7c Add fasta parser constructor reference recovery
This CL fixes/improves 2 keyword contributor situations
when analyzer is using the fasta parser:

* Recover gracefully given a constructor reference
  followed by a dot without an identifier

* Include a colon whenever suggesting the 'default' keyword

Change-Id: I393ef16130c7d1288ac4c18e6fdc17dbbe1421ea
Reviewed-on: https://dart-review.googlesource.com/32145
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-01-03 20:42:24 +00:00
Sigmund Cherem 95477b835c Add support in summary-worker to filter out files that belong to other summaries
Bug:
Change-Id: I429f8b6788feed75ee2a6b464c6d7ed870b329ce
Reviewed-on: https://dart-review.googlesource.com/32002
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2018-01-03 20:29:04 +00:00
Sam Rawlins dfc3ee9f8e Bump collection to 1.14.5
This supports the Dart 2.0 Core Libs (wave 2) changes

Change-Id: I355339b2e1ba1de2a05a004f0c7f6d1d811df868
Reviewed-on: https://dart-review.googlesource.com/32020
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2018-01-03 20:23:35 +00:00
Konstantin Shcheglov 76c5a9a6c8 Convert errors from FrontEnd into Analyzer.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I94f219e378437e0bcff3ee8e2ca0598594e59afc
Reviewed-on: https://dart-review.googlesource.com/32143
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-03 20:05:25 +00:00
Brian Wilkerson 1d0f198eea Replace function arguments to assert with invocations of those functions
Change-Id: I09a3da573c7c936d4d381405c1a68805cbc065c4
Reviewed-on: https://dart-review.googlesource.com/32120
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-03 18:48:25 +00:00
Sigmund Cherem e3b70f4af1 Add mechanism to transform outlines and ensure metadata is preserved in summaries.
Change-Id: I3796612936a13c262efa54011c66c6f5ad881e07
Reviewed-on: https://dart-review.googlesource.com/32001
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-01-03 18:45:34 +00:00
Devon Carew fe8c3d8ca2 Remove a few analyzer warnings.
Bug:
Change-Id: I874998fcd65e7e274d4efc670c04ce2064171bec
Reviewed-on: https://dart-review.googlesource.com/32142
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2018-01-03 18:16:44 +00:00
Brian Wilkerson 55a2155a59 Ignore assets that start with "packages/" until we can correctly verify them
Change-Id: I971ce87c957cc2977adf90d161379d5a4cd26afc
Reviewed-on: https://dart-review.googlesource.com/32160
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
2018-01-03 18:05:14 +00:00
Martin Kustermann 0e6bfc66fd [VM] Use ^= (which allows "null") instead of RawCast
Change-Id: Ib22e6c38bb50128c6af83e044b42658aedbbe87d
Reviewed-on: https://dart-review.googlesource.com/31985
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-01-03 17:43:05 +00:00
Alexander Markov c812f6ab33 [vm, kernel] Tool for dumping kernel files with VM-specific metadata
Change-Id: I7f7b3cd797e30283821741583983dbe939e5132e
Reviewed-on: https://dart-review.googlesource.com/30960
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-01-03 17:40:04 +00:00
keertip d4475cb445 Update hmtl dependency
Bug:
Change-Id: Ic23343128101839a8ac16900a7de53658e36bbe8
Reviewed-on: https://dart-review.googlesource.com/31745
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
2018-01-03 17:11:04 +00:00
Martin Kustermann c309dde6a9 [VM] Enable strengthening of AssertAssignableInstr's in strong mode
Currently we only enable the strengthening of AssertAssignableInstr's
when having asserts enabled (which happens in checked mode).  But in
strong mode we use these instructions as well, so we need to enable the
optimization as well.

Change-Id: If889d0e14b590e77377c9828e80a00e4852fed42
Reviewed-on: https://dart-review.googlesource.com/31944
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2018-01-03 16:55:35 +00:00
Régis Crelier 2e3a4f8723 [VM] Ignore flag --error-on-bad-override in strong mode (fixes #31646).
Change-Id: Idabd0108a69b37a9181c6bb260a25b3ebae2ba63
Reviewed-on: https://dart-review.googlesource.com/32003
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-01-03 15:40:36 +00:00
Martin Kustermann 2158398434 [VM] Implement missing AssertSubtypeInstr::Canonicalize()
Change-Id: I3372d179b201fd55a88ec296f00ecb3dabaff11e
Reviewed-on: https://dart-review.googlesource.com/32040
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-03 14:00:29 +00:00
William Hesse cac8aa0e4d Change DEPS to fetch third-party repos from dart.googlesource.com
Bug: https://github.com/dart-lang/sdk/issues/31740
Change-Id: I8a02d5d37496fc0785a66d5ba59bde4b67e1883e
Reviewed-on: https://dart-review.googlesource.com/31942
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2018-01-03 13:52:26 +00:00
Alexander Thomas c4e89ecaf4 [Infra] Correct step name in test matrix
Change-Id: I6f27037103feb4bdd037cdc0a78fa0a254c95930
Reviewed-on: https://dart-review.googlesource.com/32080
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2018-01-03 13:52:24 +00:00
Alexander Thomas 97e2994818 [Infra] Remove asan ia32 builder from test matrix
Bug: 31749
Change-Id: I3e9354a9f914788bbe2d08841e2212bddf033d12
Reviewed-on: https://dart-review.googlesource.com/31943
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2018-01-03 13:19:44 +00:00
Lasse R.H. Nielsen d1382f983c Initial steps to add cast operation.
Start by adding static castTo method to the interfaces. This provides everybody with the
desired implementation without exposing the classes.
When implementing the cast method, the recommended way is to (extend the base class,
but if you choose not to ...) use the castTo method.

If we ever get a language feature, we can implement the castTo method using that,
without being stuck with an unnecessary class.

Change-Id: I53274e60c88a4de519bead85d2ca44c1065a9c1a
Reviewed-on: https://dart-review.googlesource.com/26620
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-03 12:16:24 +00:00
Johnni Winther 47d4534700 Port inference tests, part #1 of ?
- to the equivalence framework.

Change-Id: Ieddcb60c5e5367e2554bfa715562264f1dca5a9e
Reviewed-on: https://dart-review.googlesource.com/31941
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-03 08:57:37 +00:00
Johnni Winther 940f82bb8b Port unittests, #14 of ?
Change-Id: I6a16cf3cbaeafa2f4c58d617b1d6df9aefcc4afd
Reviewed-on: https://dart-review.googlesource.com/31781
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-03 08:37:09 +00:00
Johnni Winther ca31d3e341 Handle inlining of static generic method calls.
Change-Id: I8531fd72589da0b823e59087361e4ff31b7be8cf
Reviewed-on: https://dart-review.googlesource.com/31786
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-03 08:36:35 +00:00
Johnni Winther e9243a4d16 Pass type arguments in static calls.
+ support generic type variable type literals
+ support generic type variable is test

Change-Id: I2473c39c33940c631070b919c7dcfe712fd1fe3d
Reviewed-on: https://dart-review.googlesource.com/31783
Reviewed-by: Stephen Adams <sra@google.com>
2018-01-03 07:57:58 +00:00
Paul Berry 15c684bf50 Disable implicit instantiation of call methods.
Addresses the performance concern raised in #31746

Change-Id: Iabfb4b871fb7807c0fe625036adfd22d2e6c51ee
Reviewed-on: https://dart-review.googlesource.com/31751
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-02 23:15:33 +00:00
Konstantin Shcheglov f57a0511a4 Apply import prefixes in type annotations.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I185b9860aac8650856c8c13b6784b63f3fe2f379
Reviewed-on: https://dart-review.googlesource.com/32000
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-02 22:34:04 +00:00
Sigmund Cherem 226602dc18 Reapply "Support module names in DDK"
This includes two fixes that only caused problems in windows:
  - we assumed file-uris in other parts of DDK, and this caused problems with sourcemaps
  - we generated module names containing a leading "./" (e.g. "./expect"), this didn't cause trouble in linux, but it is incorrect.

Bug:
Change-Id: Id3c363670544ed0a8373184ec5445549346fc7bf
Reviewed-on: https://dart-review.googlesource.com/31748
Reviewed-by: Jake Macdonald <jakemac@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-02 22:12:13 +00:00
Zachary Anderson cd2c49fe17 Mark run_dart.py executable
Change-Id: Icc3305bb2c4eba51364b798d7a8dc303120292b7
Reviewed-on: https://dart-review.googlesource.com/31749
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-02 21:09:53 +00:00
Konstantin Shcheglov 57d75d3358 Apply resolution to static field references with import prefixes.
Bug:
Change-Id: Ie84c69aea71cd6e5e5c373eba2c4439af524264c
Reviewed-on: https://dart-review.googlesource.com/31747
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-02 20:20:06 +00:00
Konstantin Shcheglov 6b4ae0c7b6 Apply resolution to instance creation with import prefix.
Bug:
Change-Id: Ia032f7e9870531bc7337dc4517f438dacf7779ff
Reviewed-on: https://dart-review.googlesource.com/31746
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-02 20:15:08 +00:00
Konstantin Shcheglov 6d5f2f09aa Apply resolution to function expression invocations.
Bug:
Change-Id: I895cf9765664f1e9608ec612e4b1897f42cb9d70
Reviewed-on: https://dart-review.googlesource.com/31881
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-02 19:34:23 +00:00
Brian Wilkerson 4b36e4e6c8 Handle converting expression function bodies with a throw expression
Change-Id: Ic1692b5196ea117263e008b105a8db6a97b9a40a
Reviewed-on: https://dart-review.googlesource.com/31962
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-02 19:17:53 +00:00
Zachary Anderson b19716a648 Creates a watchlist for sdk/lib/_http and adds me to it
Starting to move these files over to package:http_io and
package:web_socket.
Change-Id: I04ee0fc2950f5aca96494b990a334dac16de9deb
Reviewed-on: https://dart-review.googlesource.com/31744
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-02 18:39:53 +00:00
Zachary Anderson 0e826ed894 Remove entry from CHANGELOG.md for reverted change
Trying to reland here: https://dart-review.googlesource.com/c/sdk/+/29449

Change-Id: Ia823a0e59ac68e169ebd7302d75d3204422c6f31
Reviewed-on: https://dart-review.googlesource.com/31743
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-02 17:38:03 +00:00
Brian Wilkerson c40d9821dc Prepare for optional new/const
Change-Id: I138fffc3f03f2925d5b33cd7f340543789d4b6e6
Reviewed-on: https://dart-review.googlesource.com/31960
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-02 16:33:24 +00:00
Brian Wilkerson 8e7781ea9e Convert remaining tests to use ResourceProviderMixin
Change-Id: I7bd0941a415737bd3c9c55e9650f2a982937f777
Reviewed-on: https://dart-review.googlesource.com/31961
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-02 16:33:14 +00:00
Vyacheslav Egorov 226c715542 [vm] Optimize ARM simulator by forcing inlining of hot functions.
Also move InstructionDecode hot path into InstructionDecodeImpl.

This patch improves time to run SIMARM tests by 25-35% and improves
time spent in simulator when running gen_snapshot on Flutter by a
similar amount.

Functions to force inline were selected by looking at the VTune
profile of gen_snapshot generating script snapshot of the Flutter
Gallery on Windows.

Bug: https://github.com/dart-lang/sdk/issues/31684
Change-Id: Ifbfeaae252dfafb3b86b4f1eb7ca40f42bc3a252
Reviewed-on: https://dart-review.googlesource.com/31920
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2018-01-02 13:29:03 +00:00
Johnni Winther 220a91122a Add --strong-mode flag to dart2js
+ move generic methods tests into a subfolder.

Change-Id: I00cde6a7dc7d6ff1677a8ca60f3a243f065e3765
Reviewed-on: https://dart-review.googlesource.com/31782
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-02 08:42:21 +00:00
Konstantin Shcheglov 9b54b25f3e Fix error reporting when it makes tests behave differently in checked and unchecked modes.
R=brianwilkerson@google.com

Bug:
Change-Id: Ib5f7b3c531bfd767e5640ff45e1ad9e7ef0148a9
Reviewed-on: https://dart-review.googlesource.com/31882
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-02 05:01:34 +00:00