Commit Graph

487 Commits

Author SHA1 Message Date
Konstantin Shcheglov 4df3626d19 Remove support for (non)nullable types from Analyzer.
R=brianwilkerson@google.com

Change-Id: Ia26c203ed4fa238d1a546fe67e009fa542ed8f82
Reviewed-on: https://dart-review.googlesource.com/77666
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-10-02 20:05:15 +00:00
danrubel 7cd25705ab Fix parsing label between 2 switch cases
Fix https://github.com/dart-lang/sdk/issues/34453

Change-Id: Ib2280c4482b6530dab3947a0dfd87490bd379034
Reviewed-on: https://dart-review.googlesource.com/75960
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-09-21 19:36:40 +00:00
Dan Rubel 49da026e3e Report error for extends void type parameters
Change-Id: I634b836ea40199a1e7962b7d07ca9f5d1ef3f16a
Reviewed-on: https://dart-review.googlesource.com/74680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-09-13 20:27:56 +00:00
danrubel 4fe0088962 Report error if super on RHS of binary expression
Change-Id: I6251d56f4df5ebb603b653a100fed2c643870c96
Reviewed-on: https://dart-review.googlesource.com/74601
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-09-12 18:10:26 +00:00
danrubel d97a189ec8 Update AstBuilder to check if conditional expression contains assignable expressions
... and update a couple old analyzer tests

Change-Id: Id4f74857bc9e43cb31da38182788d2c5fe12e375
Reviewed-on: https://dart-review.googlesource.com/74523
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-09-12 11:10:56 +00:00
Kevin Millikin 2b296a0671 Enable mixin declaration syntax in Fasta
This enables mixin declarations for the Dart VM by parsing them into
class declarations.

Change-Id: Ic792009bc450d7c887f2e9962040ffad807881eb
Reviewed-on: https://dart-review.googlesource.com/74480
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-09-11 18:05:52 +00:00
Konstantin Shcheglov 63fbfcc69a Translate InvalidInlineFunctionType to ParserErrorCode.INVALID_INLINE_FUNCTION_TYPE.
R=brianwilkerson@google.com, danrubel@google.com

Change-Id: I2b1c7938c081b771e554149846c8157f8332e061
Bug: https://github.com/dart-lang/sdk/issues/33398
Reviewed-on: https://dart-review.googlesource.com/74043
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-09-10 16:08:41 +00:00
Dan Rubel 7905136e64 Allow with clause without extends clause
This removes the code the generates an error when a `with` clause
is used without an `extends` clause as in
```
   class C with M { }
```
This is the first of several CLs to update the parser
as this CL only prevents the error from being generated.

Change-Id: I1d5c8577902e253a4c83cda2f6a1d4ab98319903
Reviewed-on: https://dart-review.googlesource.com/73687
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-09-07 00:25:58 +00:00
Konstantin Shcheglov b443c9f72f Parse static get/set with name of the enclosing class as getters/setters.
R=brianwilkerson@google.com, danrubel@google.com

Change-Id: I97015fbc3bc49c70a022a2edabf4fcdcc34405ad
Reviewed-on: https://dart-review.googlesource.com/73020
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-09-05 15:43:48 +00:00
Konstantin Shcheglov d65a0ee361 Report more errors for mixin declarations.
I added a fix for parsing static methods in mixins.

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

Change-Id: Ib3c91f6cd5a2eb333f88102609f709fcac1ab9e7
Reviewed-on: https://dart-review.googlesource.com/72901
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-09-04 19:41:25 +00:00
danrubel 4cd69887e3 Fix parsing postfix expressions with type parameters
Fix https://github.com/dart-lang/sdk/issues/34315

Change-Id: Id6b1749070473ed5a04a3f024276f9985f82da6e
Reviewed-on: https://dart-review.googlesource.com/72560
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-09-02 18:51:31 +00:00
Dan Rubel 8c7e83aed2 Remove generic method comment support
Change-Id: I1149ff9c61748fe8d3a51c95e40c02ec5115b0e7
Reviewed-on: https://dart-review.googlesource.com/72122
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-08-30 17:52:40 +00:00
Dan Rubel ba0d814336 Remove obsolete parser tests
Change-Id: I74f0f65e0888a185644f9908e5a25e0c550113ec
Reviewed-on: https://dart-review.googlesource.com/72120
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-08-30 15:37:44 +00:00
Konstantin Shcheglov d659022f08 Build elements for MixinDeclaration(s).
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ica9912b795bbdfeea2dd46130e30bde3bdc4cef3
Reviewed-on: https://dart-review.googlesource.com/72067
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-08-29 21:05:35 +00:00
Brian Wilkerson 4212a46dab Add failing tests for handling of comment refs by fasta parser
Change-Id: I02bfbf2354ccf49bf6c3ea4968bb916f06b34c07
Reviewed-on: https://dart-review.googlesource.com/71320
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-08-23 17:11:47 +00:00
danrubel 3987cd4616 Update parser tests to use new scanner
Change-Id: Ia46e2d85acfcd21d88ee97ede2d9ed66620ec618
Reviewed-on: https://dart-review.googlesource.com/70520
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-08-17 16:45:02 +00:00
Brian Wilkerson d772f40084 Add dummy test to prevent test failure from running no tests
Change-Id: I9379795edc2b84071a26447d4f5db1908527f17e
Reviewed-on: https://dart-review.googlesource.com/70420
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-08-16 23:41:11 +00:00
Dan Rubel ad6029c608 Update fasta parser to split ">>=" when parsing type var
Change-Id: Id60da00165ef1c7d9128985ccadef06f62637a24
Reviewed-on: https://dart-review.googlesource.com/70181
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-08-16 01:04:46 +00:00
Dan Rubel 825df975a0 Revise fasta type arg/param parsing to ignore "<".endGroup
The scanner associates '<' with '>' and '>>',
but the parser cannot use '<'.endToken/endGroup reliably
and wastes time updating that token's endToken/endGroup field.

This CL updates type info parsing to ignore '<'.endGroup
and step through the token stream (which it has to do anyway),
for improved parsing.

This CL causes a handful of existing tests to fail (marked as @failingTest)
and test failures will be addressed in a subsequent CL.

Change-Id: I788e9a74cd2891f98f44bba15d5669febfec6c64
Reviewed-on: https://dart-review.googlesource.com/70001
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-08-15 22:16:40 +00:00
danrubel 8e2141f1cf Fix parsing typedefs with <T>=
This is the first CL of several needed to fix typedef parsing
when there is no space between the type parameters and the `=`.

  typedef F<T>= T Function(T);

* Fix some typedef parsing failures
* Add new consts for simple type var ending with ">>" and ">="
* Update computeType and computeTypeParamOrArg to return new consts
* Extract splitGtEq/GtGt/GtGtEq from splitEndGroup
* Hide internal TypeInfo and TypeParamOrArgInfo consts

Change-Id: Ice550f5b15df1f3cad616a2a342644974f14d8ee
Reviewed-on: https://dart-review.googlesource.com/69261
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-08-10 15:09:21 +00:00
Dan Rubel 1cd9175e3e Fix mixed dartdoc processing
This change should fix the failing ResynthesizeAstStrongTest.test_class_documented_mix test.

Change-Id: I0b89fa5ddbb4725ec0115836e8b5e801d18678c5
Reviewed-on: https://dart-review.googlesource.com/68900
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-08-08 14:59:13 +00:00
danrubel 89fd468b89 remove unused DocumentationCommentToken.references field
Change-Id: Ia35dfe2c69d4f35d3a54dd0fcb026de23d888d1c
Reviewed-on: https://dart-review.googlesource.com/68520
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-08-07 16:07:09 +00:00
danrubel 49b18446c2 Refactor dartdoc parsing
This extracts and refactors a sizable chunk of dartdoc parsing out of AstBuilder
and into the fasta parser. Parsing dartdoc does not happen unless the listener
calls the new fasta parser parseCommentReferences method.

The new parseCommentReferences method generates a handleCommentReferenceText
event for each comment reference encountered. The listener calls the scanner
to tokenize the comment reference and forwards the result to a new
fasta parser parseOneCommentReference method. This method generates either
a handleCommentReference or a handleNoCommentReference depending upon
whether or not a reference is parsed.

parser.parseCommentReferences
* generates handleCommentReferenceText events
* returns # of events generated

listener.handleCommentReferenceText
* calls parser.parseOneCommentReference

parser.parseOneCommentReference
* generates either handleCommentReference or handleNoCommentReference

There are further improvements to be made, but I believe this chunk
will allow progress to be made on the kernel side.

Change-Id: I393dc4d1d4791b3d7a529f6cb3c16db3a5befddf
Reviewed-on: https://dart-review.googlesource.com/68461
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-08-07 16:07:09 +00:00
danrubel 368bcc47df Add parse dartdoc tests for fasta parser
Change-Id: Ieb8ed7d09abdae097f991aae566cd6256b18ef24
Reviewed-on: https://dart-review.googlesource.com/68202
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-08-03 14:55:56 +00:00
danrubel 4b2ee8e9a5 Improve catch clause recovery
Fix https://github.com/dart-lang/sdk/issues/33982

Change-Id: I98387ffabef87dd0296f18e080a1c4b8a7e97c2b
Reviewed-on: https://dart-review.googlesource.com/67641
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-07-31 20:30:03 +00:00
danrubel 4734c55882 Report error on unsupported operators
Change-Id: Iea1469e1252c89c630e8bf646caf37051d78c84c
Reviewed-on: https://dart-review.googlesource.com/67401
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-31 18:23:10 +00:00
danrubel ff9167ff7b Fix parseDirectives to recognize metadata
Change-Id: I36be5c3ffef93c0bb6ae58b8c482df4208a37e63
Reviewed-on: https://dart-review.googlesource.com/67440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-31 16:46:38 +00:00
danrubel a74d6eac69 Report error on constructor with type parameters
Change-Id: I29a6e88f9d820834b13b0fa1c42a11d25d2e49f0
Reviewed-on: https://dart-review.googlesource.com/66602
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-25 18:54:07 +00:00
danrubel 751e19c6d7 Report error if expression is not assignable
Change-Id: Iabc26a4587b7905337f3bbe4826a2ed650d2f56c
Reviewed-on: https://dart-review.googlesource.com/66480
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-07-25 16:06:29 +00:00
danrubel ca1cb5e817 Allow type before "this." in constructor
Fix https://github.com/dart-lang/sdk/issues/33945

Change-Id: Iaa080ff311a6ba306c42e2667a7897fdb87b406a
Reviewed-on: https://dart-review.googlesource.com/66201
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-23 18:34:39 +00:00
Dan Rubel 25d5d15935 Fix parse invalid property access
Fix https://github.com/dart-lang/sdk/issues/33914
and update recovery tests

Change-Id: I5c0d00ffcd4d8de71b60dfc08f1109b50f3bc1e3
Reviewed-on: https://dart-review.googlesource.com/65800
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-07-19 20:55:17 +00:00
Dan Rubel 75e1ebd55c Improve "else" statement recovery
Change-Id: I122e84f80b13cf6d72080af17b3a0f4a27a14b53
Reviewed-on: https://dart-review.googlesource.com/65180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-17 17:17:21 +00:00
Brian Wilkerson 0a2eb8524f Map UnmatchedToken to an analyzer code
Change-Id: Idb7130dee9692086e4ed844daa48787f9085b94b
Reviewed-on: https://dart-review.googlesource.com/65341
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-07-17 16:29:19 +00:00
Dan Rubel b571e9391c Report missing semicolon on last consumed token
This moves the location on which a missing semicolon error is reported,
making it easier for a user to understand and fix,
and fixing some of the statement completion tests.

Change-Id: I11b9de57e2b3104238e1edb801ad1cd02e9a63a2
Reviewed-on: https://dart-review.googlesource.com/64900
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-07-17 12:30:37 +00:00
danrubel 166e3e12b3 Remove Scanner.useFasta
This removes some of the code that tests the unused pre-fasta Scanner code.

Change-Id: I2d20d286e71516d6c2430a8b8e06158b53ea1a89
Reviewed-on: https://dart-review.googlesource.com/64420
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-11 14:25:44 +00:00
Brian Wilkerson cf30a28ca1 Map UnexpectedDollarInString to an analyzer error code
Change-Id: Iee398e4a9490be83e352c6610bfadc90ae03936e
Reviewed-on: https://dart-review.googlesource.com/64242
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2018-07-09 22:55:57 +00:00
danrubel 0b4d8b45bb fasta parser tests for 33647
The fasta parser correctly handles the code specified in
https://github.com/dart-lang/sdk/issues/33647

Change-Id: I690311ce031e458dc9c5ea978c954ba7a4b60262
Reviewed-on: https://dart-review.googlesource.com/64200
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-09 22:10:25 +00:00
danrubel 6d328b7fc5 Correctly parse dartdoc before abstract class
This fixes https://github.com/dart-lang/sdk/issues/33738

Change-Id: I1cc3c8202a20cfe273a4dd9f97e136cf142396d3
Reviewed-on: https://dart-review.googlesource.com/64140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-07-09 19:51:39 +00:00
danrubel 10a6a94705 Improve chained as/is expression recovery
... and remove unused token from handleIsOperator and handleAsOperator events

Change-Id: Ie328dafd58b998b8c3d08bf3288c014c87c04a5e
Reviewed-on: https://dart-review.googlesource.com/62740
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-06-28 21:02:58 +00:00
Kevin Moore cb4a19b5fc misc(pkg/analyzer): update to latest pkg:matcher API
Change-Id: I42a5c41394226f6ddc9c0608c6d688ae683ffdea
Reviewed-on: https://dart-review.googlesource.com/62680
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-06-27 19:29:20 +00:00
Dan Rubel 966541bec9 Improve literal function recovery
This fixes a crash when parsing literal functions
and improves recovery.

Change-Id: I22e7793d08e772bd186e1fb8fd01e09fa72ea13e
Reviewed-on: https://dart-review.googlesource.com/62380
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-06-26 19:25:42 +00:00
Dan Rubel 386efb1e6a Improve type parameter recovery
This fixes another crash in the fasta parser
and improves the way it recovers when parsing type parameters
before a map or list literal.

Change-Id: Ic02513b98a31e9ed3f59c8391c260a2a214983ae
Reviewed-on: https://dart-review.googlesource.com/62340
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-06-26 19:24:28 +00:00
danrubel ddde9820a9 Improve fasta parser parameter list recovery
... and update more Analyzer fasta tests.

Change-Id: Ia6e9e08cca1a1c81528767e5c0b2f18435cd8ea9
Reviewed-on: https://dart-review.googlesource.com/61000
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-06-19 17:55:46 +00:00
Dan Rubel 8f0106e490 Update more Analyzer fasta tests
Change-Id: I1b39eebaf11882bd1524335a7dcbba86f2d26cfb
Reviewed-on: https://dart-review.googlesource.com/60362
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-06-15 00:38:53 +00:00
Dan Rubel c015e8d303 Improve invalid string literal error recovery
Change-Id: Ic7d5d3f19e97a0004254377170bcc91efc7bfb08
Reviewed-on: https://dart-review.googlesource.com/60360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-06-14 22:53:34 +00:00
danrubel ec58802ea4 Update Analyzer/fasta async* and sync* error message tests
Change-Id: I5aea43305a65797d279ca132764c34b33f19ca41
Reviewed-on: https://dart-review.googlesource.com/59980
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-06-13 13:02:50 +00:00
danrubel 5df04a89b7 Update more Analyzer tests
Change-Id: I23ca56867eb33c9d8983648be9305b82e6441934
Reviewed-on: https://dart-review.googlesource.com/59920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-06-13 12:34:20 +00:00
Konstantin Shcheglov 0aad13db00 Revert 'Copy @failingTest annotations to mixin applications.'
This reverts commit 242bc3413c.

R=brianwilkerson@google.com

Bug: https://github.com/dart-lang/sdk/issues/33099
Change-Id: I8a1b24926072fe64e3ab73d38a1fa73695237fc4
Reviewed-on: https://dart-review.googlesource.com/57701
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-05-31 18:40:27 +00:00
danrubel d116e62d76 Improve catch parameter recovery
Change-Id: Ib4479eb7682c7093e9076f12a85d5a2f911a3f1d
Reviewed-on: https://dart-review.googlesource.com/57022
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-30 01:31:49 +00:00
danrubel 96dd9d49db Update Analyzer tests to pass NonExistingSource rather than null
Change-Id: I770d50a31230e7e3fdabecf4cbffc6fee76e1fb5
Reviewed-on: https://dart-review.googlesource.com/57020
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-05-29 17:12:26 +00:00