Commit Graph

4770 Commits

Author SHA1 Message Date
Dan Rubel 8e1e24b642 Add fasta parser binary expression recovery
Change-Id: I6345bd29fa00d0f4a2a6474f1d26e7c60661cef0
Reviewed-on: https://dart-review.googlesource.com/21100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-11-15 15:54:02 +00:00
Dan Rubel b5df8d7b0f Add fasta parser recovery for invalid operator name
Change-Id: I10e7f2668f654f7be482b3ce1521d1872d6a6b34
Reviewed-on: https://dart-review.googlesource.com/20826
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-11-15 15:49:22 +00:00
Aske Simon Christensen 2a04caa7da Handle string interpolation in URIs
Closes https://github.com/dart-lang/sdk/issues/30994

Change-Id: I3be126244a8d089d87caee0cdf233a294486642e
Reviewed-on: https://dart-review.googlesource.com/20460
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-11-15 15:22:11 +00:00
Dan Rubel 0f56888d6a Add fasta parser conditional expression recovery
Change-Id: Id1c44585f4ff52626d4e735cba41938c66b79b13
Reviewed-on: https://dart-review.googlesource.com/20740
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-11-14 20:20:04 +00:00
Paul Berry abe2e85d15 Report "invalid assignment" from the front end as an error rather than a warning.
The front end only detects invalid assignments during type inference,
and type inference is only done in strong mode.  In strong mode,
invalid assignment is an error.

Change-Id: I1c598716be84804e9dc109414fe45f73888ed8c0
Reviewed-on: https://dart-review.googlesource.com/20741
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2017-11-14 18:39:14 +00:00
Brian Wilkerson 4b1bf629e6 Convert parseType to return the last consumed token
Change-Id: I5047b6dbe2a308c8465ee74ea6d3607f32d8547f
Reviewed-on: https://dart-review.googlesource.com/20322
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-14 16:55:14 +00:00
Aske Simon Christensen 21b363a4e7 Generic error message for invalid initializers
Closes https://github.com/dart-lang/sdk/issues/31192

Change-Id: I851a577e6ca0703328208d076b9b3ad7b87300dd
Reviewed-on: https://dart-review.googlesource.com/19960
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-11-13 16:14:55 +00:00
Brian Wilkerson e9ff04ae7e Convert several methods related to parsing directives
Change-Id: Ice76e65b4d5798096fa4ceb85a8cb5efe85290e8
Reviewed-on: https://dart-review.googlesource.com/20121
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-10 22:54:24 +00:00
Brian Wilkerson 711eefbdf5 Accept the last consumed token in three methods
Change-Id: I4a0c85ef2e482b4bf03193cf057f7188e803fcba
Reviewed-on: https://dart-review.googlesource.com/20240
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-10 20:41:10 +00:00
Konstantin Shcheglov 2b93ccf1cb Load SDK outline once and resuse for each compilation.
This shaves off 40-50 ms from each compialtion, e.g. makes 1 library
compilation IKG performance test about 15% faster.

R=sigmund@google.com

Bug:
Change-Id: Iec6432dc6380bcf5255a40f9b468f9927fe182ce
Reviewed-on: https://dart-review.googlesource.com/20220
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-10 19:17:19 +00:00
Brian Wilkerson 1edf78a2af Return the last consumed token from several more methods
Change-Id: If8739ab5c3832f0e09d29750acfe6e12bf947121
Reviewed-on: https://dart-review.googlesource.com/20181
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-10 19:03:09 +00:00
Brian Wilkerson 861c927235 Return the last consumed token from parseExpression and parseExpressionWithoutCascade
Change-Id: I62bc65351f3b8a0de230f4fa1b4c21cde1e9b67c
Reviewed-on: https://dart-review.googlesource.com/20180
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-10 18:13:29 +00:00
Brian Wilkerson 9f730ecbc8 Return the last consumed token from seven methods
Change-Id: I53ad977e3c68ea9ed583fd89cc798ab75b9d0b0f
Reviewed-on: https://dart-review.googlesource.com/20120
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-10 16:55:08 +00:00
Paul Berry b78847dcd5 Fix type inference of super property get, and improve tests
Previously, we were inferring super property gets as though they were
`this` property gets.

Change-Id: Ic82ea6a400c71ef1413870d9adce6202666bb126
Reviewed-on: https://dart-review.googlesource.com/19763
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-09 21:18:57 +00:00
Paul Berry a4d8739e15 Fix type argument substitution in super initializer calls.
Also add test cases to verify that type argument substitution works
properly for other kinds of super calls.

Change-Id: I7a04c85cd13e83403a0e86efa82f30ae71dc0b15
Reviewed-on: https://dart-review.googlesource.com/19621
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-09 20:16:08 +00:00
Paul Berry 27eeff6c53 Remove unused ShadowDirect{MethodInvocation,PropertyGet} classes.
Change-Id: I93dad29cdcd2e04fa6554951be1ae2d739d5d9d2
Reviewed-on: https://dart-review.googlesource.com/19741
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-09 20:15:38 +00:00
Brian Wilkerson c10037c666 Convert 16 methods to accept the last consumed token
Change-Id: I54ec7feb3d4c12b96742e35b3ce375820d707416
Reviewed-on: https://dart-review.googlesource.com/19700
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-09 19:39:49 +00:00
Brian Wilkerson 04df4addc4 Return the last consumed from 5 more methods
Change-Id: If89024d748cf954736513f1318d5afc522528364
Reviewed-on: https://dart-review.googlesource.com/19640
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-09 17:31:39 +00:00
Aske Simon Christensen cc5b0a6ac4 Handle non-identifier after null-aware dot.
Closes https://github.com/dart-lang/sdk/issues/31157
Closes https://github.com/dart-lang/sdk/issues/31180
Closes https://github.com/dart-lang/sdk/issues/31186
Closes https://github.com/dart-lang/sdk/issues/31187
Change-Id: Ie20ca9b174d26ae95b7ce318310175f7de82bfc3
Reviewed-on: https://dart-review.googlesource.com/19190
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2017-11-09 10:03:46 +00:00
Konstantin Shcheglov 6a11149ef1 Rewrite KernelDriver to use outlines of direct dependencies.
For now only getKernel() uses the new compilation method.

There are several new failing tests because redirection factories
are not serialized/deserialized correctly yet (but I saw kernel
support comming for it), and outlines don't include private fields (
which we want to work around by storing just names).


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

Bug:
Change-Id: I0d964862066ac0ee9e7b5c7b1d3802171a874aef
Reviewed-on: https://dart-review.googlesource.com/19440
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-11-09 02:36:42 +00:00
Paul Berry 70c76a248e Fix parent pointers in the general case of duplicate named args
Note: there special case code to check for duplicate named args when
exactly two named arguments are given.  The special case code already
works; this CL fixes the general case.
Change-Id: I36ad6eff8f4377b15a4730a0e35c109605f2b763
Reviewed-on: https://dart-review.googlesource.com/19404
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-09 00:55:23 +00:00
Brian Wilkerson cebb86e3ce Convert some methods used to parse formal parameters
Change-Id: I1d6542f069a2818ea7253997a4d5c0944e12ce6f
Reviewed-on: https://dart-review.googlesource.com/19420
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-11-08 23:21:41 +00:00
Konstantin Shcheglov 4dd4fd745e Make 'protectionDuration' in ProtectedFileByteStore optional.
Bug: https://github.com/dart-lang/sdk/issues/31323
Change-Id: Ie8de75ba16c156a69ec37fc4177ef187af3a4825
Reviewed-on: https://dart-review.googlesource.com/19442
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-08 22:09:40 +00:00
Konstantin Shcheglov ec01d10557 Add FallThroughError._create() to required members.
R=sigmund@google.com

Bug:
Change-Id: Id870b3c693d2ba77c11d8d0ebc587427efb81863
Reviewed-on: https://dart-review.googlesource.com/19281
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-11-08 21:21:50 +00:00
Brian Wilkerson 37f71239de Convert the parsing of type arguments and type variables
Change-Id: Id7786cc308539cd768ebcd50b0fb0b37c46e3cf3
Reviewed-on: https://dart-review.googlesource.com/19380
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-08 20:39:51 +00:00
Konstantin Shcheglov 5156d0a11f Fix for shaking a library with invalid typedef.
Bug:
Change-Id: I498029eea9b1c9b490e374f994cb5f4132eca085
Reviewed-on: https://dart-review.googlesource.com/19100
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-08 19:18:45 +00:00
Brian Wilkerson 0332649e15 Prepare to convert the parsing of type arguments and type variables
Change-Id: Id609ba07e990961437ca99f7874f344dd0fcb29d
Reviewed-on: https://dart-review.googlesource.com/19320
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-08 19:14:31 +00:00
Brian Wilkerson 1497e33891 Convert ModifierContext to take and return the last consumed token
Change-Id: Ia250e03c50c611a8a7378ed0e4e14e7991d33204
Reviewed-on: https://dart-review.googlesource.com/19300
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-08 17:50:11 +00:00
Brian Wilkerson f27978eb5f Push the last consumed token into more expression parsing methods
Change-Id: I005d47d79d33034383c7fdda88d9973dd2234cde
Reviewed-on: https://dart-review.googlesource.com/19223
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-08 16:03:02 +00:00
Vyacheslav Egorov cf0c3a9474 [fasta] Copy isAbstract modifier in KernelProcedureBuilder.finishPatch.
This is a workaround for issue #31313.

We need a quick workaround because without it dartkp debug is
very broken.

Bug: https://github.com/dart-lang/sdk/issues/31313
Change-Id: Ia490e292ab07b325a590db28ecd2df636b0fe0bb
Reviewed-on: https://dart-review.googlesource.com/19187
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2017-11-08 15:51:00 +00:00
Brian Wilkerson 7b1dc16142 Convert more parse methods
Change-Id: I5965bcf3ffaa394ada203ed78d8581541e779e58
Reviewed-on: https://dart-review.googlesource.com/19023
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-08 13:40:41 +00:00
Dan Rubel e893bd576f Fix type annotation parsing
Change-Id: I5f5b76818f50711e5d7165d97b8e2b12f3f17d0e
Reviewed-on: https://dart-review.googlesource.com/19160
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-11-08 13:39:00 +00:00
Konstantin Shcheglov 6541c720e5 Update mock SDK and shaker to include required declarations.
Bug:
Change-Id: I585daea4bb4315d01333a6515c809e3a862b44e5
Reviewed-on: https://dart-review.googlesource.com/19064
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-08 01:19:50 +00:00
Brian Wilkerson 0a66494841 Convert parseTopLevelMember and parseClassMember
Change-Id: Iab8109a48866e12c2a3a11c62fc7e340b0b8862e
Reviewed-on: https://dart-review.googlesource.com/19022
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-07 21:29:41 +00:00
Konstantin Shcheglov 031cfcf993 Fix for combining outlines when we first see the external version of a library (so, without exports).
Bug:
Change-Id: I4aeef7f2ae85ce4e5ac8b997aa43d120304aee6b
Reviewed-on: https://dart-review.googlesource.com/19061
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-07 19:30:10 +00:00
Paul Berry bf81915170 Get rid of TypeInferenceEngine.isTopLevelInferenceComplete.
TypeInferrer.isTopLevel carries the same information.

Change-Id: I8a572bb24bc0c0410ab8210629a4e6478a26efd4
Reviewed-on: https://dart-review.googlesource.com/19062
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-07 18:55:00 +00:00
Brian Wilkerson a18207d61d Rework parseTopLevelDeclaration so that the last consumed can be passed into several additional methods
Change-Id: I7bca690eaa4d6ba9b743544d81ad5bd68986c4b2
Reviewed-on: https://dart-review.googlesource.com/19021
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-07 18:21:10 +00:00
Dan Rubel cf3ced607e Update scanner to gracefully degrade given invalid UTF-8
Fix https://github.com/dart-lang/sdk/issues/31193

Change-Id: I8ede0268ebff9c7e3dab003eff93a263a5d0b6ef
Reviewed-on: https://dart-review.googlesource.com/18740
Reviewed-by: Florian Loitsch <floitsch@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2017-11-07 18:19:29 +00:00
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
Brian Wilkerson 276ce36c3c Convert most of the variable declaration parsing
Change-Id: I0f967af1d006cbc0ecec54846a8600b912f81a7d
Reviewed-on: https://dart-review.googlesource.com/18961
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-07 14:20:40 +00:00
Konstantin Shcheglov 11543a9540 Update Library.additionalExports during combining.
Bug:
Change-Id: Ia99a9f64834acb62ee6ffb95836b957b85f90731
Reviewed-on: https://dart-review.googlesource.com/18960
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-07 04:08:29 +00:00
Konstantin Shcheglov 9755cf6de8 Include public static members of classes in included libraries.
Bug:
Change-Id: I03dc21402b5298621086891f82d93fb37f1c0ed4
Reviewed-on: https://dart-review.googlesource.com/18903
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2017-11-07 01:45:29 +00:00
Brian Wilkerson 758a671fee Convert for statements
Change-Id: I9ccf1adbca7c3a78578e57446c1cd21249e10c00
Reviewed-on: https://dart-review.googlesource.com/18863
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-11-06 23:07:32 +00:00
Konstantin Shcheglov 00d9c180c3 Fix for combining private members.
Bug:
Change-Id: If623420777c13a2d6e56dfcc33be4f2d4ae69f34
Reviewed-on: https://dart-review.googlesource.com/18686
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-11-06 18:25:44 +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
Samir Jindel bc9645509e Revert "Revert "[kernel] Fix NoSuchMethod errors for generic functions.""
This un-revert fixes the issues revealed in https://logs.chromium.org/v/?s=chromium%2Fbb%2Fclient.dart%2Fvm-kernel-mac-release-x64-be%2F2217%2F%2B%2Frecipes%2Fsteps%2Fvm_tests%2F0%2Fstdout.

Patchset 1 contains the original revision unmodified.

This reverts commit 9029ee09c5.

Bug:
Change-Id: I109c011c2688144b00293ce50b3aad53e018a2f2
Reviewed-on: https://dart-review.googlesource.com/18340
Reviewed-by: Régis Crelier <regis@google.com>
2017-11-06 17:07:38 +00:00
Dan Rubel d79c68ea01 fix external factory errors
Change-Id: Id94d0fe355a3ad78cdd66bfbcb2ccc2bb72dc28b
Reviewed-on: https://dart-review.googlesource.com/17301
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-11-06 16:21:44 +00:00
Brian Wilkerson c89b566bd1 Convert the parsing of switch statements
Change-Id: I8c3014674929b2822685756edeafb34185437551
Reviewed-on: https://dart-review.googlesource.com/18761
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-11-06 14:58:50 +00:00
Paul Berry cd49cf1201 Insert implicit downcasts for compound assignments.
Change-Id: I090594e16fa890864775b2ebc58842d861c134a4
Reviewed-on: https://dart-review.googlesource.com/18517
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-03 22:07:10 +00:00