Commit graph

5466 commits

Author SHA1 Message Date
Dan Rubel b7659e6d03 Improve typedef declaration recovery
This CL improves typedef recovery and removes another call to parseType.

Change-Id: I55aca86fe08bb06b040f5ec3c54266fcf795dbb3
Reviewed-on: https://dart-review.googlesource.com/55540
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-17 13:39:36 +00:00
Dan Rubel 6363cf6d3d Add new handleParenthesizedCondition event
* Extract parseParenthesizedCondition from parseParenthesizedExpression
* Update parsing of control structures to use parseParenthesizedCondition
* Add a new handleParenthesizedCondition event

Change-Id: I9972bfa3fa4060fc6de2e6315902c4c524c76544
Reviewed-on: https://dart-review.googlesource.com/55560
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-16 22:12:34 +00:00
Brian Wilkerson 338a423416 Add Forest support for creating try statements
Change-Id: Ib0241b929fa4c9eda533beec1e3f902973340821
Reviewed-on: https://dart-review.googlesource.com/55520
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-16 20:15:02 +00:00
Konstantin Shcheglov f32509b849 Export 'resourceProvider' from AnalysisSession.
R=brianwilkerson@google.com

Change-Id: I0544be022a078f96be23c4e75923c32f70385589
Reviewed-on: https://dart-review.googlesource.com/55443
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-16 17:28:16 +00:00
Dan Rubel 137942aca5 Implement TypeParamOrArgInfo.parseVariables
This CL is the next step in replacing parseType and improving recovery.
It introduces a new parseVariables method for parsing type parameters
(aka type variables) method in addition to improving recovery in the
parseArguments method.

Change-Id: I4049528152a7c731771d7a8145e5f79729165d79
Reviewed-on: https://dart-review.googlesource.com/55301
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-16 11:44:08 +00:00
Brian Wilkerson 874f7f6c5c Add Forest support for creating if statements
Change-Id: Ia7f1f672adee0e8da2e5c1c54f9690e7f2597263
Reviewed-on: https://dart-review.googlesource.com/55273
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-15 22:31:42 +00:00
Mike Fairhurst ddd1c3548f Add ability for the angular plugin to set ErrorVerifier.enclosingClass.
There is a similar setter on Resolver, and without it, users are seeing
an issue:
https://github.com/dart-lang/angular_analyzer_plugin/issues/567.

Alternative options to modifying pkg:analyzer APIs are few. One option
is to block UNQUALIFIED_STATIC_REFERNCE errors, however, that will be
too general. We would need to implement a lookup to double-check when
those errors are reported, if they should be.

Alternatively the plugin could block all of them, and then do a second
pass to provide them where the plugins deems they should exist.

This seems the easiest approach and mirrors the api that [Resolver.set
enclosingClass] provides, but the chain of assertions makes we want a
second look on it.

Change-Id: I12df71719c7a0e968a0b3a43cc27c69160ec5210
Reviewed-on: https://dart-review.googlesource.com/54703
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2018-05-15 22:28:47 +00:00
Brian Wilkerson 4b647fcfe1 Add Forest support for creating yield statements
Change-Id: I244d6e17dee72704c6cb5cc2c26b9379fac03440
Reviewed-on: https://dart-review.googlesource.com/55274
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-15 22:23:37 +00:00
Brian Wilkerson 55eba71759 Add Forest method to support the rethrow statement
Change-Id: Iffba18a8c81462373122c9204d758008448fbfed
Reviewed-on: https://dart-review.googlesource.com/55021
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-15 13:40:32 +00:00
Brian Wilkerson 35b14de7b8 Use Forest to build throw expressions
Change-Id: I568edd93204056298b640a09a67fe128f2e2c206
Reviewed-on: https://dart-review.googlesource.com/55022
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-15 13:21:53 +00:00
Alexander Markov 344c68e54c [kernel, vm] Revise how metadata is written in kernel binaries
Metadata is no longer written ahead of all nodes. Instead, metadata for
each node is written in the same context as the node itself (into a separate
buffer). This allows metadata to contain (serialize) arbitrary nodes
(for example, arbitrary DartTypes) and use serialization context of parent
nodes (such as declared type parameters).

However, with this change metadata looses the ability to reference
arbitrary AST nodes. This ability was overly restricted and had no
practical uses. (It was not possible to reference nodes which are not
reachable from root Component. As a consequence, it was not possible to
write references to arbitrary DartTypes.)

This change aligns the serialization capabilities of metadata with
how kernel AST nodes are serialized.

Change-Id: I027299a33b599b62572eccd4aa7083ad1dd2b3b3
Reviewed-on: https://dart-review.googlesource.com/54481
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-05-15 00:41:08 +00:00
Brian Wilkerson cbb2403f5d More improvements to the test framework
Change-Id: I57827bd7f6a0b7873bba87e99b7043efb96ddd0c
Reviewed-on: https://dart-review.googlesource.com/54982
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-14 21:47:47 +00:00
Janice Collins e6d9ed5688 Restrict analyzer/front_end/kernel SDK versions to dev.48+.
Change-Id: If341e8aa3503881bb44e445c39e5f821fd213bfd
Reviewed-on: https://dart-review.googlesource.com/55000
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
2018-05-14 19:32:45 +00:00
Brian Wilkerson d30a05711f Fix the parsing of literal symbols
Change-Id: I237871ee1c44d2819afbbee583ddd7e14b1ef043
Reviewed-on: https://dart-review.googlesource.com/54801
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-14 18:23:27 +00:00
Janice Collins 90618bdcf3 Prepare for analyzer 0.32.0.
Change-Id: Ica117a443f922c9bb5377c99ff87ce4a7a0bce16
Reviewed-on: https://dart-review.googlesource.com/54741
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
2018-05-14 18:07:02 +00:00
Brian Wilkerson e818260c73 Use Forest to build empty statements
Change-Id: I467052ed548073eeb33d07e7409bd19da46f36fb
Reviewed-on: https://dart-review.googlesource.com/54960
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-14 17:47:57 +00:00
Brian Wilkerson 2e844719b0 Add expression statement support to Forest
Change-Id: Ie3a3d01655e8ece2a42eda240e7f12c83cf8e348
Reviewed-on: https://dart-review.googlesource.com/54660
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-14 16:50:07 +00:00
Dan Rubel 4908d5720a Update generalized void and generic comment syntax tests
Change-Id: I9d4ce183c12a9f4cd33ca5630fcad732328dac2c
Reviewed-on: https://dart-review.googlesource.com/49940
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-14 16:28:17 +00:00
Brian Wilkerson 37d028e17c Fix some issues in the test framework
Change-Id: I26b2ff2427db2db135b8969bf8c1a892ef22d891
Reviewed-on: https://dart-review.googlesource.com/54800
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-14 13:32:38 +00:00
Brian Wilkerson 74db253d34 Allow metadata on enum constants
Change-Id: I2aed6df1fd5f20da865339fdc86cad3bc66f0770
Reviewed-on: https://dart-review.googlesource.com/54621
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-14 13:20:10 +00:00
Peter von der Ahé 664a3b7769 Use Forest API in Accessors.
Change-Id: I7ee61ed51d8141bd4c7bef335eaf9cb1e1e6277c
Reviewed-on: https://dart-review.googlesource.com/54040
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-05-14 08:51:47 +00:00
Brian Wilkerson 4b239de27c Add the remaining parser tests
Change-Id: If08036b0911651d12a1f51c24406a2b87937757a
Reviewed-on: https://dart-review.googlesource.com/54700
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-12 20:20:55 +00:00
Jenny Messerly 7359d4ee10 fix #33019, noSuchMethod should receive default values for optional args
Change-Id: If692a68d20c88139a88de8c9701314ae53becd03
Reviewed-on: https://dart-review.googlesource.com/54340
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-12 04:18:40 +00:00
Brian Wilkerson c0f2721e85 Use the type system to compare types (issue 30897)
Change-Id: I6ae706255bcf09276627a9e27fe2f12ea15bb203
Reviewed-on: https://dart-review.googlesource.com/54715
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-11 23:04:33 +00:00
Konstantin Shcheglov 4a323f8aef Stop spamming to the console from analyzer tests.
R=brianwilkerson@google.com

Change-Id: I43545d4205a012c03e73b04d5a73737f8034714c
Reviewed-on: https://dart-review.googlesource.com/54713
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-11 20:45:53 +00:00
Brian Wilkerson e057c4bdbf Fix the resolution tests when run locally
Change-Id: I6faee8b8e0f9df6b2aa3405b53cfdfcccccc7bb0
Reviewed-on: https://dart-review.googlesource.com/54707
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-11 19:07:29 +00:00
Konstantin Shcheglov 242bc3413c Copy @failingTest annotations to mixin applications.
This works around https://github.com/dart-lang/sdk/issues/33099

R=brianwilkerson@google.com

Change-Id: Idfada538b30fe6d8cce2d23112787522e5d19521
Reviewed-on: https://dart-review.googlesource.com/54705
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-11 18:31:00 +00:00
Brian Wilkerson 7a76db73d1 Add more parser tests for Fasta
Change-Id: I126f028ced01ac0624f080269a6a40d7de4a248d
Reviewed-on: https://dart-review.googlesource.com/54637
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-11 13:51:16 +00:00
Dan Rubel 491c65a902 Replace calls to parseTypeArgumentsOpt and others
* Replace several calls to parseTypeArgumentsOpt with computeTypeParamOrArg
* Replace isValidMethodTypeArguments with computeMethodTypeArguments
* Fix TokenStreamRewriter.splitGtGt to preserve preceeding comment
* Switch to using computeTypeParamOrArg and remove redundant code

Change-Id: Ic4cab3ca91de8c0c9738f43ca208cdbf2ead6057
Reviewed-on: https://dart-review.googlesource.com/54603
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-11 13:28:06 +00:00
Devon Carew d078e6599d Remove some flutter specific analysis code.
Change-Id: Ib48f8527c40d9f9cb9349cadcf94e7bc82330222
Reviewed-on: https://dart-review.googlesource.com/49831
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-10 23:54:46 +00:00
Dan Rubel c2d88d024f Improve class implements/with recovery
Change-Id: I32beebbb9cc5ecec188a5a1557a2ae510d7ba214
Reviewed-on: https://dart-review.googlesource.com/54602
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-10 20:41:34 +00:00
Dan Rubel 7c8a4ae569 Refactor Analyzer/CFE body builder tests
Change-Id: Icbcd0e16fce448afe340598975d67154a5478df3
Reviewed-on: https://dart-review.googlesource.com/54601
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-10 20:13:35 +00:00
Dan Rubel 04af8ace52 Improve top level const/final/var name recovery
Change-Id: Ie07ca020a5f5a6c3abbe2ee48bd83c4e3ea4075c
Reviewed-on: https://dart-review.googlesource.com/54600
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-10 20:07:25 +00:00
Brian Wilkerson f62b9781bc Fix the resolution tests associated with simple literals
Change-Id: Id26eaaa368ea94c83031032b3ab8abdc6ba20d2d
Reviewed-on: https://dart-review.googlesource.com/54620
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-10 16:33:09 +00:00
Dan Rubel 17c50d45fa Remove most uses of kernel.Expression
I'm landing Peter's change:
https://dart-review.googlesource.com/c/sdk/+/54460

Change-Id: I2228d0a0156f67e41515c41788c0b855f1a2a437
Reviewed-on: https://dart-review.googlesource.com/54544
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-10 14:55:50 +00:00
Brian Wilkerson cec983a931 Add some initial resolution tests for literals
Change-Id: I024321b355ed56abaec86c6c423d6af42ee3f6a2
Reviewed-on: https://dart-review.googlesource.com/54527
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-10 14:15:21 +00:00
Dan Rubel 6b5361c334 Improve recovery of enum declaration
Change-Id: I8709e76c38d778d97673e11a8d89d424611a292b
Reviewed-on: https://dart-review.googlesource.com/54543
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-10 13:57:51 +00:00
Brian Wilkerson c2f807e487 Implement more overridden methods in parser tests
Change-Id: I981df7281ab33ada15672f6017a40f88fe3a4784
Reviewed-on: https://dart-review.googlesource.com/54531
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-10 12:44:09 +00:00
Dan Rubel 5951f1e4f1 Improve enum declaration identifier recovery
Change-Id: Ib0646fdd405dbe4fe0bd6cb788c0cbfe4d20fc1b
Reviewed-on: https://dart-review.googlesource.com/54542
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-09 20:58:28 +00:00
Dan Rubel 1860096702 Use correct type arguments for Forest.
I'm landing Peter's change:
https://dart-review.googlesource.com/c/sdk/+/54400

Change-Id: I337d4b63a085fbf06f5d5cf93b13b60f70e7cb4f
Reviewed-on: https://dart-review.googlesource.com/54541
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-09 20:57:07 +00:00
Dan Rubel fa071e8ecb Update AstBuildingForest tests
Change-Id: I01398db759d048b588e5b67637370bd528b7828b
Reviewed-on: https://dart-review.googlesource.com/54480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-09 18:57:17 +00:00
Brian Wilkerson bedf640eca Address review comments from previous CLs
Change-Id: I07faabb0f59fc716175ab6abfbbc76c09beffef2
Reviewed-on: https://dart-review.googlesource.com/54302
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-09 18:49:37 +00:00
Brian Wilkerson a8364e3412 Add missing method to FastaParserTestCase
Change-Id: I49a10b4843910d3fad0a95cc6165c96a5e8da48d
Reviewed-on: https://dart-review.googlesource.com/54310
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-09 13:26:23 +00:00
Dmitry Stefantsov b25e12ddc6 [fasta] Remove BuiltTypeBuilder
Change-Id: I8a3678e37ef0c51023c5c52f1fc8e7d11d005c86
Reviewed-on: https://dart-review.googlesource.com/54382
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-09 10:36:12 +00:00
Peter von der Ahé ee0a2cd8bc Restore type arguments on Forest
Change-Id: I3bdce8f470e31e4b95a028842a3f188102b74ba4
Reviewed-on: https://dart-review.googlesource.com/54386
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-05-09 10:01:47 +00:00
Konstantin Shcheglov cc034472bb Fix LineInfo.getOffsetOfLineAfter().
Or we could remove it altogether.
It is not used outside of analyzer/analysis_server/analyzer_plugin.

R=brianwilkerson@google.com

Change-Id: I89c90fc0881f2b1602128f8aacdda2762c4e7920
Reviewed-on: https://dart-review.googlesource.com/54306
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-08 20:28:07 +00:00
Konstantin Shcheglov 0bab7e6bfa Issue 32765. Improve guess for type name identifier.
R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/32765
Change-Id: I7587fd2aaba50e4e07c9192d95141ece80d423b1
Reviewed-on: https://dart-review.googlesource.com/54303
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-08 18:57:58 +00:00
danrubel ebcf5bec30 Update Analyzer/CFE type resolution test to use AstBuildingForest
This updates the BodyBuilder to accept a Forest for either Kernel or Analyzer.
More work needs to be done to update the Forest type arguments specified in BodyBuilder.

Change-Id: I595535dc05572515a0b7cca5621de35146944ed3
Reviewed-on: https://dart-review.googlesource.com/54180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-08 16:08:52 +00:00
danrubel 316b10216f Fix Analyzer warning
Change-Id: I5bd2c2f7cdf3c218f2079c4f836e3e934aaace68
Reviewed-on: https://dart-review.googlesource.com/54280
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-05-08 16:03:31 +00:00
Brian Wilkerson c9cd32fb58 Clean up Forest.literalList and Forest.literalMap
Change-Id: Iba64ae132a98297466962f0ed8e4bfbe8535611b
Reviewed-on: https://dart-review.googlesource.com/54161
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-05-08 13:23:21 +00:00