Commit Graph

3160 Commits

Author SHA1 Message Date
Brian Wilkerson 0916cca7d2 Do not convert return type of enclosing function when adding async to nested closure (issue 30901)
Change-Id: I8293b7784f71d4ff7846a0cca6efbfa69847b7da
Reviewed-on: https://dart-review.googlesource.com/37646
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-30 21:57:10 +00:00
Jaime Wren 0bca64f57e First draft on API change for support for implicit new and const in the InstanceCreationExpressionImpl class.
Change-Id: Id8df09456689a400957fec15b9f32b8f4f10bab1
Reviewed-on: https://dart-review.googlesource.com/37642
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2018-01-30 20:07:49 +00:00
Brian Wilkerson 0091dc986e Add an assist to convert from sync function body to async
Change-Id: I2531c47354c76b7c4c2b16151abdcd135db21954
Reviewed-on: https://dart-review.googlesource.com/37221
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-29 18:07:13 +00:00
Alexandre Ardhuin 1c99838190 add quickfix for prefer_const_declarations
Closes #31993
https://github.com/dart-lang/sdk/pull/31993

GitOrigin-RevId: d1f51397639405d05e64022c5e41659d51c7d65c
Change-Id: Iefcf9556bd5f63b01f60df5437761bf277de4fd3
Reviewed-on: https://dart-review.googlesource.com/37301
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-29 16:49:23 +00:00
Brian Wilkerson b44989cd57 Fix exception (issue 31922)
Change-Id: Id2d64ec1f92611e44b3c6e22c94efd1711b1a30e
Reviewed-on: https://dart-review.googlesource.com/37083
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-27 15:58:20 +00:00
Konstantin Shcheglov 8fbcf977e5 Replace license in generated files.
R=devoncarew@google.com

Change-Id: I7511c8da329eba760698a48abc0f8db16038b9ea
Reviewed-on: https://dart-review.googlesource.com/37127
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-27 03:18:18 +00:00
Mike Fairhurst cb7e85a26d Support void as a Top type, with as few other changes as possible.
Change-Id: Ife337e28fa86f9b98cdabf48a01a4e2f608aa4b8
Reviewed-on: https://dart-review.googlesource.com/35520
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-26 22:42:08 +00:00
Konstantin Shcheglov f771476eec Record variable name in FlutterOutline, fix for named attributes.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: Ie91b21f464eaa43d811d51e50f7a6b479406f9da
Reviewed-on: https://dart-review.googlesource.com/36980
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-26 17:54:45 +00:00
Konstantin Shcheglov 32cfb6a9e3 Implement wrapping Widget into some single-child container.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: If6f393c0eb80ba2fb670eda19ff7dfde845e2f73
Reviewed-on: https://dart-review.googlesource.com/36780
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-25 22:21:11 +00:00
Konstantin Shcheglov 6393a247fc Add support for boolean/integer attributes.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I574931e558d45370c33a1d7626e17b5fb5e60480
Reviewed-on: https://dart-review.googlesource.com/36561
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-24 05:49:35 +00:00
Konstantin Shcheglov 402af4db46 Add a new experimental 'flutter' domain and move FLUTTER_OUTLINE there.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I8f829f10a630e38c5a3f1638d077e37832a08daa
Reviewed-on: https://dart-review.googlesource.com/36320
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-23 00:57:55 +00:00
Konstantin Shcheglov 19e6dfe2a9 Send FLUTTER_OUTLINE notification.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I6ba95137eee91ad52cc66b3cd0205411fd0aeaf5
Reviewed-on: https://dart-review.googlesource.com/36180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-22 05:26:59 +00:00
Konstantin Shcheglov 07367d05cd Basic implementation of FlutterOutlineComputer.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I22c96c2a35c086814aace13f0121cc0361f3386f
Reviewed-on: https://dart-review.googlesource.com/36140
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-21 18:12:58 +00:00
Brian Wilkerson 0ef2f87f1c Escape file overlay text before inserting it in the diagnostics pages (issue 31906)
Change-Id: I7e0f1b6724e624ef8c91b7a526d5e52332ce0fd5
Reviewed-on: https://dart-review.googlesource.com/35811
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-20 19:45:36 +00:00
Brian Wilkerson 4aadf7cf47 Provide additional information about plugins (issue 31951)
Change-Id: I2ba49e12471ae8747d83da25f4bfa912badac39e
Reviewed-on: https://dart-review.googlesource.com/36120
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-20 19:04:28 +00:00
Konstantin Shcheglov a971aa8472 Add basic Flutter outline subscription/notification to the protocol.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I50d7e4507c58854b4f2afc6048285c68ee873b8b
Reviewed-on: https://dart-review.googlesource.com/36024
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-19 23:22:17 +00:00
Zachary Anderson 74fc14dad7 Update args deps in analysis_server pubspec
Change-Id: I10090757fa7b6d776b9ab6948cdaee60ef4129c4
Reviewed-on: https://dart-review.googlesource.com/35802
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-18 22:16:44 +00:00
danrubel 787d395389 Update code completion to suggest covariant
In addition to updating code completion, this also
addresses comments in https://dart-review.googlesource.com/c/sdk/+/34520
* Change expect to assert `}` where expect is unnecessary
* Extract skipToLastModifier utility method
* Fix spelling

Change-Id: I6a0446d77fac995da3e4d1d2f682f75d584b275f
Reviewed-on: https://dart-review.googlesource.com/34960
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-01-17 03:30:23 +00:00
Konstantin Shcheglov f99d3628d1 FrontEndCompiler that computes all information about many libraries at once.
Before we used a hack to request resolution information for a single
library as needed, and requested kernels separately. This was hugely
inefficient (but faster to implement as a steel thread). We had then
recompile large library cycles many times, and take just one library.

Before: 480 seconds to compile analyzer (ouch!).
Now: 16 seconds (30 times faster).

Without --previewDart2: 14 seconds.

I will check why it is still slower later.

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

Bug:
Change-Id: Ic3d47684daa74c53f0336523e17b656f26328acf
Reviewed-on: https://dart-review.googlesource.com/33144
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-09 07:05:54 +00:00
Jaime Wren cd878bc433 Create the new flag --use-cfe in the analyzer, analysis server and analyzer_cli and migrate the old behavior of --preview-dart-2 to --use-cfe. The --preview-dart-2 flag is now a no-op, with functionality coming soon.
See https://github.com/dart-lang/sdk/issues/31640

Change-Id: I2db2e7ef6a324cbd5d369b807e331495fed167df
Reviewed-on: https://dart-review.googlesource.com/33121
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
2018-01-08 22:37:05 +00:00
Devon Carew 9229151b03 Remove two uses of visibleForTesting.
Bug:
Change-Id: I2952b7acce54e7d3c1fe2c829c0091e9ba031314
Reviewed-on: https://dart-review.googlesource.com/32686
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2018-01-07 23:33:31 +00:00
Paul Berry 105b170ddb Roll package test to 0.12.29+1 and stack_trace to 1.9.0
This required some changes to analysis_server, since analysis_server
used to have its own version of pumpEventQueue().  Since
pumpEventQueue() is now provided by the test package, I've removed
analysis_server's version, and I've updated some of the call sites to
pass in "times: 5000" to replicate the old analysis_server behavior.

This also required some changes to analyzer, since the fail() method
is now marked as @alwaysThrows, so no code may follow it without
producing a dead code hint.

Change-Id: Ie5ef3a5cc685c18da02de699e59f63f3bb8865f7
Reviewed-on: https://dart-review.googlesource.com/32683
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-01-07 14:22:23 +00:00
Konstantin Shcheglov 9f7af9963a Convert UNDEFINED_SUPER_METHOD errors.
We don't grab parsing errors with previewDart2 anymore, because the
same errors are reported during compilation.

R=brianwilkerson@google.com

Bug:
Change-Id: I58dc8c098fe4c8b2009c3adb9cbbbc334a748f61
Reviewed-on: https://dart-review.googlesource.com/32444
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-04 23:00:36 +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
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
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
Brian Wilkerson 1d8a5d77c1 Convert more tests to use ResourceProviderMixin
Change-Id: Ia4cce51e33c79c82a989bfda9b8303dfaa72e103
Reviewed-on: https://dart-review.googlesource.com/31880
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-01-02 00:47:34 +00:00
Brian Wilkerson 98e0c26a89 Convert several test classes to use ResourceProviderMixin
Change-Id: I1c85c6f29ae74cca0b594fc1f9ddae098b815e72
Reviewed-on: https://dart-review.googlesource.com/31860
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-01 16:21:02 +00:00
Brian Wilkerson 09edf6b3fe Remove an unused import
Change-Id: I67c1b7a1bf24fcfb83d7ceb4be60d1492c6c54af
Reviewed-on: https://dart-review.googlesource.com/31405
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-28 16:41:13 +00:00
Konstantin Shcheglov 0c48a11635 Check for 'null' in 'LocalElement.visibleRange'.
I was not able to reproduce this :-(

R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/31712
Change-Id: I14bdc02b6d766af00f97bc663e2acfe214529339
Reviewed-on: https://dart-review.googlesource.com/31460
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-24 21:29:51 +00:00
Brian Wilkerson 4ecd8f7213 Enable the analysis of pubspec.yaml files in server
Change-Id: I97c66b357d624cdcd6259c099b6421eb87c317c5
Reviewed-on: https://dart-review.googlesource.com/31404
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-24 17:20:42 +00:00
Dan Rubel 1231e90fee Code complete identifiers not directly referenced by the analyzer AST
The fasta parser sometimes "drops" unexpected tokens during recovery.
When this happens, the dropped or skipped token is not reported to
the listeners, and thus does not become part of the analyzer's AST.
These tokens are still in the token stream, but will not be found
by the existing CompletionTarget mechanism.

For example, the fasta parser parses
'if (v i) {}' as 'if (v) {}' and drops the 'i' token.

This CL introduces a new CompletionTarget.droppedToken field.
If a keyword or identifier has been dropped by the parser,
but overlaps the code completion offset, then that token
is placed into this new field.

In the example above, when code completing the 'i',
the CompletionTarget will now be
containingNode = '(v)'
entity         = ')'
droppedToken   = 'i'

Change-Id: I15e43529ab4a72de9500c521be278fa13ae68d99
Reviewed-on: https://dart-review.googlesource.com/31285
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-22 21:55:35 +00:00
Dan Rubel 3392f32e50 Update code completion of async keywords
This updates the KeywordContributor for use with the fasta parser
and cleans up several code completion tests by introducing
a 'usingFastaParser' flag.

Change-Id: Ife2d945065c23ccd9f2d8e85e5c24a6b956c75ae
Reviewed-on: https://dart-review.googlesource.com/30902
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-21 15:36:11 +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
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
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
Devon Carew 38df6ea1f4 Only show closing labels that have nesting.
Bug:
Change-Id: Ifc9177973961f2a74be3e2871aa2d58c28007478
Reviewed-on: https://dart-review.googlesource.com/29540
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-14 15:54:50 +00:00
Brian Wilkerson 941b3b25c3 Clean up some failing tests
Change-Id: I79d951bab655ac322750222f921e055ad6ed6ef9
Reviewed-on: https://dart-review.googlesource.com/29040
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-13 14:16:36 +00:00
Devon Carew 7458045577 Re-enable the benchmark test.
Bug:
Change-Id: I433bb1a0944a8b1bf12400c62d97246031a73082
Reviewed-on: https://dart-review.googlesource.com/28843
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2017-12-13 03:54:19 +00:00
Devon Carew 0a289c8341 Add analysis server analysis domain preview dart 2 tests.
Bug:
Change-Id: Id1ea8cbd214ec5f117c83f7df31b53456254ff78
Reviewed-on: https://dart-review.googlesource.com/28802
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-12 21:43:29 +00:00
Brian Wilkerson 081074ebf4 Completion suggestion relevance influenced by parameter types (issue 31592)
Change-Id: I8f03dea74fac8080bc628128a0f32b09784d0248
Reviewed-on: https://dart-review.googlesource.com/28780
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-12-12 18:40:59 +00:00
Brian Wilkerson fbe4151da4 Handle member references that cannot be resolved because of missing type information
Change-Id: I3599846476c082a533882f6d8d18e1adeb70fa3c
Reviewed-on: https://dart-review.googlesource.com/28383
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-12-11 22:21:53 +00:00
Konstantin Shcheglov 0fb3ff477f Issue 31589. Return only unique top-level declarations.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/31589
Change-Id: Ife9c607071bba90afb04ceb828203664fab49861
Reviewed-on: https://dart-review.googlesource.com/28122
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-12-11 16:54:33 +00:00
Konstantin Shcheglov 94fdf7dfe3 Apply types to top-level variables.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I93577570ae2b1cf1c2a5a837128378f1e2ce785f
Reviewed-on: https://dart-review.googlesource.com/27961
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-09 23:49:35 +00:00
Devon Carew 3ac5200e3a Add --preview-dart-2 integration tests for the search domain.
Bug:
Change-Id: Ib062b45936463c2e3564195bc3ffd69e031ddf17
Reviewed-on: https://dart-review.googlesource.com/27464
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-12-09 04:57:26 +00:00
Konstantin Shcheglov 6c23d21a4c Upgrade test_reflective_loader to 0.1.3
Update test expectations for tests that pass.

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

Bug:
Change-Id: If822e47146c438c57eb8dd45554a019f01fdca89
Reviewed-on: https://dart-review.googlesource.com/27921
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
2017-12-08 21:28:10 +00:00
Devon Carew e38c1a98e4 Add --preview-dart-2 integration tests for the edit domain.
Bug:
Change-Id: Ie63cd20cad7d27cb380db1cdefd7a5d4f7254a2a
Reviewed-on: https://dart-review.googlesource.com/27461
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2017-12-08 04:26:10 +00:00
Devon Carew 9b1394a7e6 Migrate more analysis server integration tests to --preview-dart-2.
Bug:
Change-Id: I3374f6a69a1abb18350c1127ce943c6a8f7e6546
Reviewed-on: https://dart-review.googlesource.com/27400
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2017-12-07 21:16:29 +00:00
Dan Rubel 108de2f354 Add fasta parser argument list recovery
Change-Id: If6cbda065c798147871d6c8a016f0fd3c07d2a69
Reviewed-on: https://dart-review.googlesource.com/26403
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-12-06 13:04:59 +00:00