Commit Graph

4770 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
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 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
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
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
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
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
Sigmund Cherem 80a74e6bff Revert "Support module names in DDK" and "Do not assume file-uris in other parts of DDK"
This reverts commits e122f48257 and b2b902f55a.

Reason for revert: broke ddk in windows, need to investigate proper fix

Change-Id: I5c03bae406f57570cc465aad32610c19ac385944
Reviewed-on: https://dart-review.googlesource.com/31541
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-27 23:35:14 +00:00
Sigmund Cherem e122f48257 Support module names in DDK
This adds the basic support for using the path to the .dill file as a module
name. The main difference between this and Jake's original CL is that we now
hide the multi-root as an implementation detail.

Change-Id: If24af1aaefa5c1445c7c84bd9ff4a7a4d738a320
Reviewed-on: https://dart-review.googlesource.com/31283
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2017-12-27 17:52:22 +00:00
Aske Simon Christensen de2ce48e17 Finish type variables earlier so their bounds are available when building the program.
Check bounds in verifier.
Fixed an inconsistency in the printing of parent nodes in the verifier.

Closes https://github.com/dart-lang/sdk/issues/30838
Closes https://github.com/dart-lang/sdk/issues/31213
Closes https://github.com/dart-lang/sdk/issues/31700

Change-Id: I328ca2c5bfa01a6753a806abd2510c98fa2b7cfe
Reviewed-on: https://dart-review.googlesource.com/22500
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-22 11:06:52 +00:00
Sigmund Cherem 4dfa6a4b9c Add flag to truncate summaries.
Also remove "trimDependencies".

For context: see issue #31704 (https://github.com/dart-lang/sdk/issues/31704)

Change-Id: Iedce40fac9ed974850b41145e531d08aeccee87b
Reviewed-on: https://dart-review.googlesource.com/30963
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-21 20:00:21 +00:00
Sigmund Cherem 22298629e8 Add unstable API for bazel summary worker and move the actual worker out of package:front-end
Bug:
Change-Id: I0a64d3de46ef55e8185e723d6111fa315ad286ca
Reviewed-on: https://dart-review.googlesource.com/30621
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2017-12-21 19:09:11 +00:00
Brian Wilkerson c2f029ccf9 Remove another unused parameter and cleanup TODOs
Change-Id: I5f8e62abf2cd476ce026c4fdde45755de0c79cc6
Reviewed-on: https://dart-review.googlesource.com/31180
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-21 18:10:21 +00:00
Aske Simon Christensen 43b1c68803 Error on super as expression
Report error when super is used as an expression outside
an initializer. Consolidated some error messages.

Change-Id: Iafaeeeff8a4b72f941925cefcbc832ba47f02a79
Reviewed-on: https://dart-review.googlesource.com/23360
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-21 17:25:51 +00:00
Dan Rubel 63fa6f24a5 Add fasta parser for statement var recovery
Change-Id: I58b54e757e9deede69ecba5a5d4fa200efdb09fa
Reviewed-on: https://dart-review.googlesource.com/30920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-21 16:55:01 +00:00
Brian Wilkerson fe031dea8e Remove support for generic comment syntax from fasta parser
Change-Id: Ic9d61a19d03ff537d58fa378d992e02de903bad8
Reviewed-on: https://dart-review.googlesource.com/30921
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-21 15:18:11 +00:00
Brian Wilkerson 705904befd Replace parseLiteralStringOrRecoverExpression with ensureLiteralString and remove unused methods
Change-Id: I8ffeff26114132c31a9f677be5654f25455db197
Reviewed-on: https://dart-review.googlesource.com/30882
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-20 18:29:23 +00:00
Alexander Markov 07829bb52a [CFE] Correct error message for large integer literals
Error message is corrected to reflect move of BigInt class
from dart:typed_data to dart:core.

Issue: https://github.com/dart-lang/sdk/issues/31339
Change-Id: Ia959b940dd6443b071642d26d33055c836f16ad7
Reviewed-on: https://dart-review.googlesource.com/30622
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-20 18:13:02 +00:00
Brian Wilkerson 294e8a1ac1 Create a recovery method in ClassMethodModifierContext
Change-Id: I3e721995efd71f9905fd9dc001b05148fd48973b
Reviewed-on: https://dart-review.googlesource.com/30883
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-20 17:57:13 +00:00
Leaf Petersen 36057d82fa Add stubs for new Dart 2.0 Iterable methods to Link.
See https://github.com/dart-lang/sdk/issues/31664 for more detail on
the core library changes.

Bug:
Change-Id: Id67b60b12a1a47f121ca40f7ee146516a4ac51ee
Reviewed-on: https://dart-review.googlesource.com/29940
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Leaf Petersen <leafp@google.com>
2017-12-20 17:08:02 +00:00
Brian Wilkerson 55d13097e0 Unify skipFormals and skipFormalParameters
Change-Id: I495b33b283aec848b6089619ad5632632e1df60d
Reviewed-on: https://dart-review.googlesource.com/30881
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-20 16:56:13 +00:00
Brian Wilkerson 0eea09056d Remove an unused parameter from parseClass
Change-Id: I0bef7350e76dcdcf336d0602622e781b485fe722
Reviewed-on: https://dart-review.googlesource.com/30880
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-12-20 16:28:02 +00:00
Peter von der Ahé d1543b3986 Don't include .dill artifacts in delta program
Change-Id: Ibbcb490cdaca57c600bcf4b9783d889644e8af00
Reviewed-on: https://dart-review.googlesource.com/30822
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2017-12-20 15:58:02 +00:00
Peter von der Ahé ac068b3cb4 Use options.input if entryPoint is null
Change-Id: Ia7ce42d2caa025b0e1a31872f23bd0364d6cf5f7
Reviewed-on: https://dart-review.googlesource.com/30820
Reviewed-by: Jens Johansen <jensj@google.com>
2017-12-20 12:49:28 +00:00
Peter von der Ahé 2eab494036 Don't add dynamic to a reused dart:core library.
Change-Id: I6e4b5bef9e6cd244b7dd59d1be676e47358ec9b8
Reviewed-on: https://dart-review.googlesource.com/30453
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2017-12-20 11:05:55 +00:00
Peter von der Ahé 3b6e403f1b Support compiling the SDK from source
Change-Id: Ib5df97ef143c2cf98fc3d92a81d0f6b2f4cb1224
Reviewed-on: https://dart-review.googlesource.com/30452
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2017-12-20 09:37:55 +00:00
Dan Rubel 4e8c6e7862 Add more fasta parser field recovery
Change-Id: I8a63e04c80931d2b2e8b24a547cc845837dee5d8
Reviewed-on: https://dart-review.googlesource.com/30625
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-20 00:38:38 +00:00
Sigmund Cherem a6b28dfee6 Move the use of 'multi-root' out of the FE
Change-Id: If26e4da18d4379041927e100e471a381f5979126
Reviewed-on: https://dart-review.googlesource.com/30600
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2017-12-19 22:00:43 +00:00
Dan Rubel 166cc11a64 Add fasta parser function expression recovery
Change-Id: Id5e27b8f186da23fd141fda12621f1ae3bcd1f8c
Reviewed-on: https://dart-review.googlesource.com/30580
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-19 20:57:43 +00:00
Brian Wilkerson cf0b75bc1d Rename parseStatementOpt to parseStatement
Change-Id: I0016bfb44843b6cd6dd36bef724fe25e93630224
Reviewed-on: https://dart-review.googlesource.com/30560
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 20:23:54 +00:00
Brian Wilkerson 032cc33fd5 Rename parseAsyncModifier to parseAsyncModifierOpt
Change-Id: I1cc4ad97566bcaeebf16be65ba1e8972a526daef
Reviewed-on: https://dart-review.googlesource.com/30468
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 20:22:54 +00:00
Brian Wilkerson 4288625d53 Rename parseClassHeader to parseClassHeaderOpt
Change-Id: If488545e2a13ba1f452bdd17321c6065345475e5
Reviewed-on: https://dart-review.googlesource.com/30540
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 18:54:46 +00:00
Brian Wilkerson 710b866cce Rename parseStuff to parseStuffOpt
Change-Id: I7f663bf8d7f0b08093bc173638f9f3e036cb277f
Reviewed-on: https://dart-review.googlesource.com/30541
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 18:43:34 +00:00
Brian Wilkerson 3438b33745 Rename parseConditionalUris to parseConditionalUriStar
Change-Id: Iae15de8658f40b355b545b148d0e74358a9d32e1
Reviewed-on: https://dart-review.googlesource.com/30500
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-12-19 18:17:23 +00:00
Brian Wilkerson d973fb3bca Rename parseCombinators to parseCombinatorStar
Change-Id: I5caac387a90c9a103182901ac8a1d2a3283e6440
Reviewed-on: https://dart-review.googlesource.com/30501
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 17:37:16 +00:00
Sigmund Cherem 3c74884ebb Use the enclosing builder fileUri when creating classes.
This fixes a subttle bug with patching: we were incorrectly storing the origin
uri on a private class that was only defined in a patch file (it was not a
patched class).

Change-Id: I183b8240be2f452f05bc956642363e9d125d2552
Reviewed-on: https://dart-review.googlesource.com/30387
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2017-12-19 17:09:14 +00:00
Dan Rubel 63392bdb36 Add fasta parser import uri recovery
Change-Id: If88a4273866ef80f16f2f3fb561dc929c9b16772
Reviewed-on: https://dart-review.googlesource.com/30462
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-19 17:00:24 +00:00
Brian Wilkerson 5c43484947 Unify three very similar methods into one
Change-Id: I18fbef8abcc8192f4eb287606ff004ae824dbb5c
Reviewed-on: https://dart-review.googlesource.com/30461
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 16:39:44 +00:00
Peter von der Ahé 0fb21eec2f Tweak and document compile-time constant for enabling Fasta's incremental compiler
Change-Id: Icb45e579233f567319439623d67d2a683fb13514
Reviewed-on: https://dart-review.googlesource.com/30447
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-12-19 15:23:43 +00:00
Brian Wilkerson dfc356eb0a Re-order some parameter lists
Change-Id: I1b9235653d0b8f3e2cd79cf254daecaaea27d083
Reviewed-on: https://dart-review.googlesource.com/30323
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 14:06:04 +00:00
Brian Wilkerson 45eb92988c Clean up one use of previous in commitType
Change-Id: I7ba3095e4bc846e20cf621a5f6f7f6a2a3423438
Reviewed-on: https://dart-review.googlesource.com/30322
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 14:06:02 +00:00
Peter von der Ahé 8a68b7d91d Reuse Ticker instance
Change-Id: Iced3191870e83b3962937d967e2bea6a80187aa3
Reviewed-on: https://dart-review.googlesource.com/30446
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-12-19 13:53:24 +00:00
Peter von der Ahé 51d4803855 Add onProblem to provide more flexible error handling
Change-Id: Iafd73e0a065a357170ec8836360644ecfef944b5
Reviewed-on: https://dart-review.googlesource.com/30443
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2017-12-19 12:06:44 +00:00
Dan Rubel b04e75d2bf Add fasta parser top level variable recovery
Change-Id: I211519f62c5934fca581a8981db2805362bbecd2
Reviewed-on: https://dart-review.googlesource.com/30324
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-18 20:06:06 +00:00
Dan Rubel 76f30b99f5 Add fasta parser interpolation expression recovery
Change-Id: I45942cf29a86feadcd15fe61432681903658f945
Reviewed-on: https://dart-review.googlesource.com/30360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-18 18:04:46 +00:00
Dan Rubel 51162efc45 Add fasta parser missing switch block recovery
This adds fasta parser recovery for missing switch blocks
and removes some redundant error checking code.

Change-Id: I92b875d31f0ada50586f5bd81e5e1c51e0c2ceec
Reviewed-on: https://dart-review.googlesource.com/30321
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-18 17:32:36 +00:00
Dan Rubel ad9ea873c7 Add fasta parser switch case error checks
This refactors fasta parsing of switch statements so that it can
detect `case` statements after `default` statements
and duplicate `default` statements.

Change-Id: If9d2590a3563d0fe8940e9f3ed45375f2bebfa24
Reviewed-on: https://dart-review.googlesource.com/30240
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-18 15:21:36 +00:00