Commit Graph

4721 Commits

Author SHA1 Message Date
Brian Wilkerson 723f8bca05 Convert parseMetadataStar and partially convert parseMetadata
Change-Id: I546206f1b7de042827a519f4ac9c721b98a3038e
Reviewed-on: https://dart-review.googlesource.com/19020
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-07 16:14:50 +00:00
Dan Rubel c18275f6c2 Fix type argument comment parsing
Change-Id: Ia8ca73131471af1c36f13d50a6b30fe63e607bb2
Reviewed-on: https://dart-review.googlesource.com/18980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-11-07 14:32:29 +00:00
Konstantin Shcheglov c055c64e0f Only accessible constructors should be copied into mixins.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I6143dd084192880ce59e8aa95566e9bd74a2a81f
Reviewed-on: https://dart-review.googlesource.com/18900
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-11-06 20:43:58 +00:00
Brian Wilkerson e4e82643b9 Add highlight ranges to a few more tests
Change-Id: I00ad76d7c16eb34d2ba9c4778478ca5faa8b9036
Reviewed-on: https://dart-review.googlesource.com/18860
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-11-06 17:40:25 +00:00
Brian Wilkerson 167b529da7 Convert most of the statement parsing methods
Change-Id: I1c7fa1abda6cd3d45ec83d32c864b4e23700b837
Reviewed-on: https://dart-review.googlesource.com/18861
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-11-06 17:33:35 +00:00
Konstantin Shcheglov cfe6812abd Native classes are fixed, update the tests.
R=brianwilkerson@google.com, danrubel@google.com

Bug:
Change-Id: I2423c938adb4d5e39e3fd3613a73108b91018e77
Reviewed-on: https://dart-review.googlesource.com/18513
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-03 20:28:40 +00:00
Konstantin Shcheglov 5ea30b4e3d Rename performace_logger.dart to performance_logger.dart
R=paulberry@google.com, sigmund@google.com

Bug:
Change-Id: Ib7b6d122dff3ddabde3db2270daa777a269e04ed
Reviewed-on: https://dart-review.googlesource.com/18512
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-03 20:24:00 +00:00
Konstantin Shcheglov 611475aaaa Separate KernelDriver.getKernel() and getKernelSequence().
The reason to have both is that IKG needs kernels for all libraries,
potentially not even deserialized from bytes, if we eventually get this
optimization.

OTOH, Analyzer always needs just one library, with enough outlines
to make sense of the dependencies. For now, getKernel() is implemented
using getKernelSequence(), this will change with switching to
outline based compilation.

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

Bug:
Change-Id: Iba02bc3a4cdb67a896c4faa2f809c7cb8069aa9e
Reviewed-on: https://dart-review.googlesource.com/18509
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-03 20:00:01 +00:00
Sigmund Cherem 24e4d3bb39 Define a location of the synthetic __loadLibrary_foo method
Change-Id: I8fd950cf7a6e6aed79240daed085f2a02e16666e
Reviewed-on: https://dart-review.googlesource.com/18430
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-11-03 18:59:40 +00:00
Dan Rubel 15a0abf956 Fix OutlineBuilder native class and AnalyzerDietListener tests
Update the OutlineBuilder and AstBuilder to fix native handling,
and in the process, fix several AnalyzerDietListener tests.

Fix https://github.com/dart-lang/sdk/issues/30836

Change-Id: I7e3b6c4c7d241f1325a5fce1e117e277c6166e49
Reviewed-on: https://dart-review.googlesource.com/18500
Reviewed-by: Paul Berry <paulberry@google.com>
2017-11-03 17:16:51 +00:00
Aske Simon Christensen e3c11c2703 Retain erroneous import, export and part (of) directives
If the URI of a directive is invalid, use a special URI with a
scheme marking it as malformed. In the loader, treat a file with
an invalid URI as empty.

Order all dependencies (imports and exports) by source position to
allow the DietListener to match them up properly with metadata.

For the same reason, add imports and exports within parts to
dependencies even though they are not permitted here.

Closes https://github.com/dart-lang/sdk/issues/30997
Closes https://github.com/dart-lang/sdk/issues/31004

Change-Id: Ic7efd0da058c246531c165508b7474475b4bdad2
Reviewed-on: https://dart-review.googlesource.com/17901
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-11-03 12:55:19 +00:00
Konstantin Shcheglov ec4ffb99f5 Use one large AST cache with task model.
I found that the issue with Dart indexer is related to flushing
partially resolved ASTs from the cache, which we don't handle correctly.
Instead of trying to fix the issue, we can just increase the cache
size and make indexer work for now. Eventually we should migrate to
AnalysisDriver, which does not have this problem.

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

Bug:
Change-Id: I7515fd132245c361e030ddf1bfa7e06f11b6f3a4
Reviewed-on: https://dart-review.googlesource.com/18422
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-02 21:22:39 +00:00
Brian Wilkerson c0f81029a3 Extract error translation and re-enable completeness test
Change-Id: Ic78139f46a56f5b37d5569af712071ee8ae5fed9
Reviewed-on: https://dart-review.googlesource.com/18148
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-02 16:34:09 +00:00
Dan Rubel e781b33c83 move Analyzer test classes out of lib
This moves several classes used only for testing purposes
out of the analyzer/lib directory tree and
into front_end/test/fasta/testing where they are used.

Change-Id: I294b20710de4b16e27fbea5d13be316a6ecda112
Reviewed-on: https://dart-review.googlesource.com/18200
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-11-02 16:02:58 +00:00
Brian Wilkerson 38a170cca9 Make parseTypeVariable accept the last committed
Change-Id: I64e29df367fca45709beb450b5aff1f9073f0b78
Reviewed-on: https://dart-review.googlesource.com/18080
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-02 13:19:20 +00:00
Paul Berry 174c132931 Change CheckedModeCompileTimeErrorCodeTest to run in strong mode.
Change-Id: Id5d11429bb9ab8b0507b7a2047ba2f82f9b420fa
Reviewed-on: https://dart-review.googlesource.com/18141
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-01 22:40:27 +00:00
Konstantin Shcheglov 229fdff530 Triage a test for generic function types as a Fasta issue.
R=paulberry@google.com, sigmund@google.com

Bug: https://github.com/dart-lang/sdk/issues/31213
Change-Id: I0e791e20ac84d0bd3ddd0b2f9e489119a4eda9de
Reviewed-on: https://dart-review.googlesource.com/18020
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-01 21:04:17 +00:00
Brian Wilkerson 1e6490dbef Return last committed from parseTopLevelMember, parseTopLevelKeywordDeclaration, and parseTopLevelDeclarationImpl
Change-Id: If9fe159f4926c250cf06937cea9f1f4a78e21269
Reviewed-on: https://dart-review.googlesource.com/18003
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-01 20:31:36 +00:00
Konstantin Shcheglov 9d0d1fb6d2 Replace #30035 with #28434 in status files.
Kernel now supports these annotations, we need to start producing them.

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

Bug:
Change-Id: I1b2732ddad2674688d562f3be3ca29140a5e9381
Reviewed-on: https://dart-review.googlesource.com/17863
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-01 20:30:04 +00:00
Konstantin Shcheglov 9def9444cd Stop storing the parent node in AnalyzerMetadata.
We don't actually need it, and using any node disables lazy Kernel
loading.

R=brianwilkerson@google.com

Bug:
Change-Id: Ie92aa6c101c4b94c3585fc1ab7879ca2b6db6053
Reviewed-on: https://dart-review.googlesource.com/17983
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-01 19:10:04 +00:00
Konstantin Shcheglov a3ea40eb3b Fix for covariant function typed parameters with void return type.
R=brianwilkerson@google.com

Bug:
Change-Id: I8e46ebd0afb7d9812016bae584a2f53066e15019
Reviewed-on: https://dart-review.googlesource.com/17982
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-01 18:58:35 +00:00
Brian Wilkerson f95e1475fc Remove the unused Listener.beginDottedName
Change-Id: I1c5752a9610f21dad62db6655972b4006ce632e9
Reviewed-on: https://dart-review.googlesource.com/17862
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-11-01 18:35:45 +00:00
Konstantin Shcheglov 9350925efe Add InvalidCodeTest with end-to-end cases of problematic invalid code.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I39d26ea0b333ddfa69f281eeba78b04212e95a96
Reviewed-on: https://dart-review.googlesource.com/17960
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-11-01 18:16:25 +00:00
Brian Wilkerson 87a096e992 Remove the unused Listener.beginIdentifierList
Change-Id: I3644aaff3fa7a8a97b9e9bcc83f549f628a1fb71
Reviewed-on: https://dart-review.googlesource.com/17861
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-01 17:21:05 +00:00
Brian Wilkerson 8d9243b4f9 Fix an assertion to be stronger
Change-Id: Ie7a3fd7206b9b2a6acb8685e887ea53e31b0e4c5
Reviewed-on: https://dart-review.googlesource.com/17860
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-01 16:47:45 +00:00
Brian Wilkerson dd18ef841b Parser conversion, part 3
Change-Id: Ibe48da9bfa89887fb04a4b958b913fe7c0087cf1
Reviewed-on: https://dart-review.googlesource.com/17600
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-11-01 16:32:45 +00:00
danrubel 9319716c4f Ensure progress in parseUnit
This adds a check in the top level parseUnit loop to ensure
that parsing has not stalled causing an infinite loop.

Fix https://github.com/dart-lang/sdk/issues/31151

Change-Id: Ief7c12d60bd7e09111f9b1bbefa4a29b9fcf9175
Reviewed-on: https://dart-review.googlesource.com/17460
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-11-01 14:22:40 +00:00
Konstantin Shcheglov 593d4b3087 Catch exceptions during parsing and store exception context.
It seems that we need, at least temporary, catch scanning / parsing
exceptions and store the exception and the corresponding content
in crash contexts.

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

Bug: https://github.com/dart-lang/sdk/issues/31098
Change-Id: Id3390b0f39acf13f44777ec9156fb237d14c57e8
Reviewed-on: https://dart-review.googlesource.com/17561
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-10-31 21:13:36 +00:00
Brian Wilkerson c223a6d9d6 Add highlight region information to more tests
Change-Id: I5f2ffe440f9358b551e73eef205c465bfea7bdac
Reviewed-on: https://dart-review.googlesource.com/17580
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-31 19:34:25 +00:00
P.Y. Laligand a28d599ab6 [gn] The Fuchsia build dir path may be relative.
Change-Id: I21f29233406ce6bb12c9fb2a95d5d988e85b5bf2
Bug:
Reviewed-on: https://dart-review.googlesource.com/17641
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-31 19:23:17 +00:00
Dan Rubel 2b681b2149 Disable scanning of &&= and ||= assignment operators
Fix https://github.com/dart-lang/sdk/issues/30340

Change-Id: Id27f37af9805ca09deaa3c6252817e3d9a926216
Reviewed-on: https://dart-review.googlesource.com/17361
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-31 18:51:24 +00:00
Paul Berry c084df4747 Remove deprecated DirectoryBasedDartSdk.
This class has been deprecated for over a year, and I believe all uses
of it have been removed.

Change-Id: I42c39339b08bb98271000c2a459d3045388ec9ce
Reviewed-on: https://dart-review.googlesource.com/17520
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-31 17:13:40 +00:00
Brian Wilkerson b6ef64ffbd Parser conversion, part 2
Change-Id: I7fb782d5f9ac9a3ac024da953f1e72faa6e557b3
Reviewed-on: https://dart-review.googlesource.com/17280
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-31 17:05:35 +00:00
P.Y. Laligand abe4ef0cb2 [gn] Use a config file to locate the Fuchsia build directory.
Change-Id: Ia849f95455cff096c64f4b023990285c47900222
Bug:
Reviewed-on: https://dart-review.googlesource.com/17341
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-31 16:57:24 +00:00
Brian Wilkerson 0f25913463 Remove unused error code
Change-Id: I178aa3f70108eda870aba2f75a93e2a833a94915
Reviewed-on: https://dart-review.googlesource.com/17480
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-31 15:33:26 +00:00
P.Y. Laligand 9283ed238c [gn] Look for packages in the Dart "toolchain".
Change-Id: I8f4164c5f767bbb45c8e2297c0e97a34651004b3
Bug:
Reviewed-on: https://dart-review.googlesource.com/16336
Reviewed-by: Zach Anderson <zra@google.com>
2017-10-30 19:20:53 +00:00
Brian Wilkerson 7bc53cd573 Test error highlight region in more cases
Change-Id: I904ba3785467f87c8f22d578e7c02bc96d6f1d12
Reviewed-on: https://dart-review.googlesource.com/17281
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-30 18:32:46 +00:00
Brian Wilkerson 61faf35b32 First set of Parser method conversions
Change-Id: If911c37f2324e45e5118de22e5fd636638a27d6a
Reviewed-on: https://dart-review.googlesource.com/17063
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-30 16:05:15 +00:00
Dan Rubel a2c5217e8d Update several fasta/analyzer covariant and type errors
* report "missing const, final, var, or type" error in several situations
* fix several top level covariant errors
* report final and covariant error

Change-Id: Iffe313c1b3cd2413be5f7763cb726436722e6a74
Reviewed-on: https://dart-review.googlesource.com/17140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-30 13:28:46 +00:00
Konstantin Shcheglov e83239d213 Use vm_platform_strong.dill for Analyzer.
We decided that Analyzer + FrontEnd == strong mode only.
So, we need to use strong mode platform.

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

Bug:
Change-Id: I5934aec69cf8d7fc7fd28257ec5b5e8e46682f7b
Reviewed-on: https://dart-review.googlesource.com/17045
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-10-27 21:51:18 +00:00
Brian Wilkerson f36203ecb0 Add error range checks for more of the existing tests
Change-Id: Ice173c1046f334b69dab8896a8d0eb570dbedaed
Reviewed-on: https://dart-review.googlesource.com/16691
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-27 13:53:18 +00:00
Samir Jindel 031a7ffe41 [kernel] Improve Enum representation.
Dart2JS and the VM prefer for Enum names to be stored inline in the Enum
object to avoid having the static array of all Enum values. A base class
for Enums is provided to avoid repeating the common fields and accessors
between Enum definitions.

Bug:
Change-Id: I783f863015b45f13317fda06e627d14844fe2ddf
Reviewed-on: https://dart-review.googlesource.com/16526
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-27 12:10:53 +00:00
Dan Rubel 54f22f1a03 Improve error recovery for fields.
Change-Id: I5e44cc220f67f4daa9c5339c3afea9c5f2f48bcd
Reviewed-on: https://dart-review.googlesource.com/16721
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-27 03:02:40 +00:00
Konstantin Shcheglov ffadd1ed3d When running analyzer_cli with --preview-dart-2, load SDK from vm_outline.dill.
We need this to be able to access classes that are required by Fasta,
but come from VM patches.

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

Bug:
Change-Id: I4d29e1dca42e016446516a2dab0fae138cb74548
Reviewed-on: https://dart-review.googlesource.com/16863
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-26 23:34:18 +00:00
Dan Rubel a02662c47e improve errors and recovery for factory methods
Change-Id: I55711bdb0f98c0747c7055bebda173702c2c138f
Reviewed-on: https://dart-review.googlesource.com/16720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-26 21:21:00 +00:00
Brian Wilkerson 5b6260ce13 Add support for reporting errors that span multiple tokens
Change-Id: I257225465d79e1831392af14d98e0799f0a8b184
Reviewed-on: https://dart-review.googlesource.com/16660
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-25 21:19:58 +00:00
Brian Wilkerson b8f870c524 Add support for testing the highlight range of errors
Change-Id: I077ee8318756450271b68c70ed304807a1dfb240
Reviewed-on: https://dart-review.googlesource.com/16640
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-25 20:00:26 +00:00
Konstantin Shcheglov 68cdf931ae Resolved comment references to elements of GenericTypeAlias.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/linter/issues/779
Change-Id: I6da1d7d740db6d6a53706ba1f1f26561e836a579
Reviewed-on: https://dart-review.googlesource.com/16620
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-10-25 19:51:47 +00:00
Brian Wilkerson 39bfbfe060 Fix the offset used when adjusting tokens
Change-Id: Ibf4c7a39fff8e51853037b3d41f0f7587794acfc
Reviewed-on: https://dart-review.googlesource.com/16580
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-25 18:47:26 +00:00
Brian Wilkerson f6455328b8 Pass length information to listeners when reporting errors
Change-Id: I786cfcaa5631b817c56bb7b68b3bcc440d055344
Reviewed-on: https://dart-review.googlesource.com/16340
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-25 14:15:29 +00:00