Commit graph

18436 commits

Author SHA1 Message Date
Johnni Winther a671328de3 Merge instance and static member usage maps.
Change-Id: I2c4802b946af162be2257a10502b2c8f823786d1
Reviewed-on: https://dart-review.googlesource.com/30448
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-20 14:52:59 +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
Johnni Winther f2c2c99714 Adjust inlining heuristics for in-loop calls
Change-Id: Ifaa1e3ac5405cb9159fd2e6c462e076d9f48b120
Reviewed-on: https://dart-review.googlesource.com/30444
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-20 08:20:03 +00:00
Johnni Winther 12ee4edbb8 Implement inlining heuristics on conditional expression.
Change-Id: I183b6345e29d6c00f140dcbd1ffff05faf0e781f
Reviewed-on: https://dart-review.googlesource.com/30442
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-20 08:02:14 +00:00
Stephen Adams 72736aff0d Avoid introducing js.Parameters in constructor body
Use the Parameter name in the template so that it is converted into a
VariableUse.

This change fixes some double-counting in the function parameter /
local variable minifier which made the --fast-startup constructors
'miss' using some minified names.

I believe the 'missed' names is a regression.

Saves 50k (0.4%) on one large app.

Change-Id: Ib7597f5c474ef285b082697e368667dbac23931b
Reviewed-on: https://dart-review.googlesource.com/30720
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2017-12-20 06:09:25 +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 b280922064 Fix patch location for isolate library
Change-Id: Ie1f0913eb61dfd77e73d483fd48f235c58ded523
Reviewed-on: https://dart-review.googlesource.com/30626
Reviewed-by: Emily Fortuna <efortuna@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2017-12-20 00:15:43 +00:00
Leaf Petersen 1ed4096b4e Remove generic comment syntax from pkg/dev_compiler.
Bug:
Change-Id: Ifc823c2b703ec70cd97981f08b29396de516f678
Reviewed-on: https://dart-review.googlesource.com/30382
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Leaf Petersen <leafp@google.com>
2017-12-19 22:03:43 +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
Sigmund Cherem 414bad86df Directly create dart2js platform files using its patch files
Change-Id: I1c7d59968bfafeeb5a8b5252fa2d47e3c05b893e
Reviewed-on: https://dart-review.googlesource.com/27404
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
2017-12-19 20:31:57 +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 f52274630e Disable a flaky test until it can be investigated
Change-Id: Icabacb7c41fe7727757989e3508dc707a8ddb792
Reviewed-on: https://dart-review.googlesource.com/30466
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 19:40:43 +00:00
Brian Wilkerson d086c7fb30 Add more partial code recovery tests
Change-Id: I876458a500bd83132e945a4d14d46d5f842acd86
Reviewed-on: https://dart-review.googlesource.com/30464
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-19 19:38:43 +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
Kevin Moore 11a1cd5ccc Remove version from unpublished packages
Helps with tooling – and helps avoid accidental publishing

Change-Id: I0aaa029ba737adf9a7eda565a9e620d423427fb0
Reviewed-on: https://dart-review.googlesource.com/30465
Reviewed-by: Jake Macdonald <jakemac@google.com>
2017-12-19 18:26:05 +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
Dan Rubel c2ae2137c9 Improve code completion suggestions in argument lists
This updates keyword code completion to suggest 'async', 'async*',
and 'sync' in new situations. This is necessary given that the fasta
parser recovers in a slightly different way than the analyzer parser.

Change-Id: I44cb42bc02874811df94a6586c7b9c9b5d7574c9
Reviewed-on: https://dart-review.googlesource.com/30460
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-19 16:06:52 +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
Johnni Winther d3f6ce4c42 Use _MemberUsage for tracking static use in resolution
- in preparation for tracking unused optional arguments of static methods

Change-Id: Iba4d8aff488f6c366b587d543b063ae742494b15
Reviewed-on: https://dart-review.googlesource.com/29981
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-19 11:12:02 +00:00
Johnni Winther 66398a511a Store CallStructure in StaticUse
- in preparation for tracking unused optional arguments of static methods

Change-Id: I8a9b1d0d9acd57256d383f880b9c602d91804486
Reviewed-on: https://dart-review.googlesource.com/29801
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-12-19 10:21:08 +00:00
Peter von der Ahé 8e127b4e53 Average incremental_perf benchmark over 8 loops
Closes https://github.com/dart-lang/sdk/issues/31675

Change-Id: Ida8d1b626cc4e3375f8f9f1d5b4626756ff16edc
Reviewed-on: https://dart-review.googlesource.com/30181
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-12-19 08:52:52 +00:00
Vyacheslav Egorov 0dc324a68d Revert "[VM] Enable --limit-ints-to-64-bits in Dart 2.0 precompiler, v2."
This reverts commit 2a3f00a179.

Reason for revert: SIMARM bots are timing out.

Original change's description:
> [VM] Enable --limit-ints-to-64-bits in Dart 2.0 precompiler, v2.
> 
> * Enable --limit-ints-to-64-bits for CFE when it is used to generate
>   kernel for VM as CFE relies on int.parse being able to parse correct
>   literals and reject incorrect.
> 
> * Pass --limit-ints-to-64-bits to gen_kernel via environment
>   variable to support batch mode compilation.
> 
> * Use current Dart SDK instead of checked-in Dart SDK to run CFE
>   in gen_kernel as checked-in Dart SDK is old and it doesn't have
>   int.parse fix yet.
> 
> Issue: https://github.com/dart-lang/sdk/issues/31339
> Change-Id: Iaba2a7945a3faa9427f9aab1e9f2b907fa2246a3
> Reviewed-on: https://dart-review.googlesource.com/29941
> Commit-Queue: Alexander Markov <alexmarkov@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>

TBR=vegorov@google.com,kustermann@google.com,alexmarkov@google.com,zra@google.com,asiva@google.com

Change-Id: Iecf26953bc6ae95c3bf0d1142bb89fb51cb0aaee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Issue: https://github.com/dart-lang/sdk/issues/31339
Reviewed-on: https://dart-review.googlesource.com/30440
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2017-12-19 08:52:25 +00:00
Alexander Markov 2a3f00a179 [VM] Enable --limit-ints-to-64-bits in Dart 2.0 precompiler, v2.
* Enable --limit-ints-to-64-bits for CFE when it is used to generate
  kernel for VM as CFE relies on int.parse being able to parse correct
  literals and reject incorrect.

* Pass --limit-ints-to-64-bits to gen_kernel via environment
  variable to support batch mode compilation.

* Use current Dart SDK instead of checked-in Dart SDK to run CFE
  in gen_kernel as checked-in Dart SDK is old and it doesn't have
  int.parse fix yet.

Issue: https://github.com/dart-lang/sdk/issues/31339
Change-Id: Iaba2a7945a3faa9427f9aab1e9f2b907fa2246a3
Reviewed-on: https://dart-review.googlesource.com/29941
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2017-12-18 21:43:06 +00:00
Sam Rawlins b32a56235e Analyzer: fix 'ignore:' comments at the end of a line.
'//ignore:' comments that sit next to code should not invalidate errors on the
next line.

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

Bug: https://github.com/dart-lang/sdk/issues/28467
Change-Id: I15b1787e5fe4dadcdc72c18409e0b82df11060af
Reviewed-on: https://dart-review.googlesource.com/29548
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-12-18 20:07:56 +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
Sam Rawlins 3bc3ab979e Fix IMPORT_INTERNAL_LIBRARY error location
Fixes #31682

Bug: https://github.com/dart-lang/sdk/issues/31682
Change-Id: Id4f52006aa7ca3e5fb0ecce61c0393310f18764f
Reviewed-on: https://dart-review.googlesource.com/30260
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-18 18:22:46 +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
Brian Wilkerson d6fdf00f7b Rename a test file, add some tests to the renamed file, and add two missed suites to test_all
Change-Id: I3adf6809b781bd839f0dbff7110eca2f5957590b
Reviewed-on: https://dart-review.googlesource.com/30320
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-18 17:30:26 +00:00
Vyacheslav Egorov 5ed9895488 [vm/kernel] gen_kernel should not report all errors twice
Bug:
Change-Id: Ib389e053571fa4fe235448fb33f15e5f3b659cdc
Reviewed-on: https://dart-review.googlesource.com/29594
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2017-12-18 16:49:31 +00:00
Sam Rawlins b50319ca9f Fix RETURN_OF_INVALID_TYPE for anonymous closures
The displayName of an anonymous closure is a blank String, resulting in messages like:

    [error] The return type 'String' is not a 'int', as defined by the method ''.

After this change, an error might instead look like:

$ xcodebuild/ReleaseX64/dart-sdk/bin/dartanalyzer --strong 26056.dart
Analyzing 26056.dart...
  error • The return type 'String' isn't a 'int', as defined by anonymouse closure at 26056.dart:6:28 • return_of_invalid_type
  1 error found.

Bug: https://github.com/dart-lang/sdk/issues/26056
Change-Id: I4003eea22cb23e0b06479482c06d5ce8a936c756
Reviewed-on: https://dart-review.googlesource.com/28382
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-18 15:33:06 +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
Florian Loitsch c0e4c30adb Mark minimal_incremental_kernel_generator_test as slow.
Change-Id: I3f32dc82c146071ff14ba3345f4ba733b46bc56d
Reviewed-on: https://dart-review.googlesource.com/30220
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-12-18 13:54:55 +00:00
Dan Rubel fd8c3f8436 Add more fasta parser switch statement recovery
This updates the fasta parser to gracefully recover
when a 'case' or 'default' keyword is not followed
by a colon.

In addition, the analyzer error code associated
with the fasta ExpectedButGot error template
has been changed
from UNEXPECTED_TOKEN
to EXPECTED_TOKEN.

Change-Id: Ic1cc01362b2ed796c0a0817504ac6aa9294fa9b3
Reviewed-on: https://dart-review.googlesource.com/30160
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-18 12:23:38 +00:00
Brian Wilkerson 7ed0bccca8 Add a README file to the meta package
Change-Id: Id8e9587a0a0f3573dcc713c9244c11d0d142a494
Reviewed-on: https://dart-review.googlesource.com/30140
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-17 21:53:17 +00:00
Samir Jindel 075720c352 [kernel] Add flag on Procedures for forwarding semi stubs.
Change-Id: I6e39557e9ed2e636a8f43e8835ae797e3fd8b0c2
Reviewed-on: https://dart-review.googlesource.com/29721
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Samir Jindel <sjindel@google.com>
2017-12-17 04:12:15 +00:00
Konstantin Shcheglov 31a0fe292d Remember import prefix name for static references.
Bug:
Change-Id: Ib71a9cc8e6c65d597f24c20c0260f7f37ef3674f
Reviewed-on: https://dart-review.googlesource.com/28541
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-12-16 05:09:35 +00:00