Commit Graph

3859 Commits

Author SHA1 Message Date
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
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
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
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 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 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
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
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
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
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
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
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
Konstantin Shcheglov ccbed2d33c Parse metadata for part directives and resynthesize in Analyzer.
R=ahe@google.com, paulberry@google.com, sigmund@google.com

Bug: https://github.com/dart-lang/sdk/issues/30284
Change-Id: Id869144a6fce170dbc74b0595b545238595be84d
Reviewed-on: https://dart-review.googlesource.com/15983
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2017-10-24 19:40:08 +00:00
Dan Rubel dde9eb69a9 add handleInvalidMember to improve recovery
* add handleInvalidMember event
* update NodeListener to track invalidMemberCount
* update ClassMethodModifierContext to trigger handleInvalidMember
  event, reducing number of superflous errors.

Also, address comment
https://dart-review.googlesource.com/c/sdk/+/16040/1/pkg/analyzer/lib/src/fasta/ast_builder.dart#1580
Change-Id: I4c630faeee7731e2f85bbfaf0a6790bf6f4382b3
Reviewed-on: https://dart-review.googlesource.com/16100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-10-24 02:58:28 +00:00
Dan Rubel c94956d721 rework AstBuilder to cache class declaration
With this change, AstBuilder no longer relies on the memberCount
parameter in the endClassBody event, making it easier to implement
handleInvalidMember in a subsequent CL.

* Cache the class declaration being built rather than just the name

* Append members directly to classDeclaration.members rather than
  pushing them on the stack

Change-Id: I3d8cf5c48d2aba28b9b7d96140c3d04d4e0b6e98
Reviewed-on: https://dart-review.googlesource.com/16040
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-10-23 21:35:52 +00:00
Brian Wilkerson 9575182790 Pass the period in field formal parameters to listeners to enable recovery
Change-Id: I04975f3fb1aeb3b3b6b842e3373a792f13a91685
Reviewed-on: https://dart-review.googlesource.com/16000
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-23 20:57:00 +00:00
Brian Wilkerson 6d11a2e3b4 Explicitly pass the colon following the default case in a switch to allow better recovery
Change-Id: I7e39727e1dd0a005e8e6ed565ec16cc8c503d049
Reviewed-on: https://dart-review.googlesource.com/15960
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-23 20:55:29 +00:00
Brian Wilkerson 930d4317cd Enable the assert in AstBuilder.handleIdentifier
Change-Id: I1d33efd5d0ff2f0c0e3625de7787217de4ccba26
Reviewed-on: https://dart-review.googlesource.com/15900
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-10-23 18:08:18 +00:00
Brian Wilkerson f4477e1437 Split an index operator into two brackets when using it for an empty list literal
Change-Id: Idd4d64e19f21dc7c9fd7f56bb7ea607556f54090
Reviewed-on: https://dart-review.googlesource.com/15700
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-20 21:14:33 +00:00
Brian Wilkerson 7932a17557 Recover from having a missing closing bracket in an index expression
Change-Id: I2fa44b001cf3b72f21a9c3b5859e41d0ecdd7ad3
Reviewed-on: https://dart-review.googlesource.com/15680
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-20 21:06:59 +00:00
Brian Wilkerson bf6f398ef8 Make minus a valid prefix operator
Change-Id: Id741a5b1c753f564b54b4fd3d47cd90162a182c9
Reviewed-on: https://dart-review.googlesource.com/15660
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-20 21:06:29 +00:00
Brian Wilkerson fc85ebed79 Finish adding asserts to AstBuilder
Change-Id: I46b14fa916ad175598e4b10cac868841065ccf3a
Reviewed-on: https://dart-review.googlesource.com/15580
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-20 17:01:19 +00:00
Leaf Petersen dd17a4c7f7 Alpha-vary generic function types before performing inference.
Generic function types were not previously renamed before using them
for inference, which resulted in capture problems when doing inference
on recursive generic method invocations.

Fixes #30980

Bug:
Change-Id: I1c610606dd65d86735cb615e077d720066a85e1a
Reviewed-on: https://dart-review.googlesource.com/15040
Commit-Queue: Leaf Petersen <leafp@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2017-10-19 19:26:07 +00:00
Konstantin Shcheglov 3fedd483f3 Parse metadata for import/export directives and resynthesize in Analyzer.
R=ahe@google.com, paulberry@google.com, sigmund@google.com

Bug: https://github.com/dart-lang/sdk/issues/30284
Change-Id: I57af6f4d58b6de39f13b9656af25f0be6949cf79
Reviewed-on: https://dart-review.googlesource.com/14363
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-10-19 16:35:17 +00:00
Brian Wilkerson 1dba93ca09 Start adding assertions to AstBuilder
Change-Id: If979a7bda1f1482a779e6ef626c048cfbe0c2eb0
Reviewed-on: https://dart-review.googlesource.com/14960
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-19 16:26:36 +00:00
Brian Wilkerson e8fd094b69 Recover from missing the formal parameters in a typedef
Change-Id: Ibb0e7d7c84116b2b20b56eb95000a0de37ad0bb7
Reviewed-on: https://dart-review.googlesource.com/14300
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-19 13:47:46 +00:00
Konstantin Shcheglov aab22a8f9b When analyzer_cli is given --preview-dart-2, use KernelDriver.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: Ibde08b9732c3e750cf78bd0af48cfa3ef17fa4a4
Reviewed-on: https://dart-review.googlesource.com/14881
Reviewed-by: Paul Berry <paulberry@google.com>
2017-10-18 19:35:41 +00:00
Brian Wilkerson 26b04e205a Generate an error when positional arguments are found after named arguments
Change-Id: Ic3cd913889e273a4efbd5a4e263625171aeb63e4
Reviewed-on: https://dart-review.googlesource.com/14560
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-18 19:17:12 +00:00
Brian Wilkerson dc75e65afa Recover from missing parentheses in control structures
Change-Id: I644ee3ec3d941c83f1634b86023f4b68cce7e1d9
Reviewed-on: https://dart-review.googlesource.com/14600
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-18 17:08:26 +00:00
Konstantin Shcheglov 7b376a6a0f Store relative URIs in LibraryPart(s).
Fix Analyzer resynthesizer to handle these relative URIs.
I hope that this will fix the exception in the reverted CL.

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

Bug:
Change-Id: Icd5e2707a23fa294bac152da38a2340912814131
Reviewed-on: https://dart-review.googlesource.com/14620
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-10-18 15:05:35 +00:00