Commit Graph

1123 Commits

Author SHA1 Message Date
Paul Berry fa5b04d718 Migration: build decorated types for implicit constructors of class type aliases (partial).
This CL addresses implicit constructors without parameters.  Implicit
constructors with parameters will take a bit more work to accomplish,
and will be handled in a follow-up CL.

Change-Id: Id12725712198eeeff8e4080e8fa0ca2a1eb46177
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107187
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-06-24 21:20:30 +00:00
Paul Berry 2ac79599b0 Migration: Created decorated types for synthetic default constructors of generic classes.
Fixes #37347.

Change-Id: I8eb7ca910f62aa7f10efbad3048096118cfcb4c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107185
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-24 21:20:30 +00:00
Paul Berry c4ad3c30e8 Migration: Created decorated types for synthetic default constructors of non-generic classes.
Partially addresses #37347.

I'll address generic classes in a follow-up CL.

Change-Id: I207465c897f9dfb84848d792cba15ae96c95e394
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107183
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-24 20:45:04 +00:00
Paul Berry dac4929e19 Migration: propagate nullability inference through override relationships: parameter types.
Change-Id: Ib41ffa388af9688efc59aea2c196d8fdcf713ad8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107101
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2019-06-24 12:51:14 +00:00
Paul Berry 559e49aa5e Migration: propagate nullability inference through override relationships: return types.
Parameter types will be handled in a follow-up CL.

Change-Id: I71862fa6cf27aeede24bef60c096f631f6d8f60d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107100
Reviewed-by: Dan Rubel <danrubel@google.com>
2019-06-24 12:51:14 +00:00
Paul Berry 937bb61476 Migration: clean up parameters for _handleAssignment and _checkAssignment.
_checkAssignment now uses named parameters for source and destination
so that there's no danger of mixing them up.  _handleAssignment lists
the source first, consistent with connect and assertEdge.

Change-Id: I811e070500b075bbc1733640bc81182ecd837dce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107040
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2019-06-24 02:09:53 +00:00
Paul Berry 8b523e8efb Migration: rename GraphBuilder to EdgeBuilder.
Nomenclature is more consistent now; the graph is built by a
combination of NodeBuilder (which builds the nodes) and EdgeBuilder
(which builds the edges).

Change-Id: Id162467eab2b3b3cc17ea9f72a0f291665b1a7d9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107022
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-22 16:03:02 +00:00
Brian Wilkerson fa8f1f60de Stop visiting comments and convert NPEs to more meaningful errors
Change-Id: Idcebed220dbcd8fcb1613fce891387f88ee4d442
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107063
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-22 15:09:02 +00:00
Paul Berry 477ac2d58e Migration: start adding support for assignment of function types.
So far we only handle zero-parameter non-generic functions.  Support
for positional parameters, named parameters, and type parameters will
be added in future CLs.

Change-Id: I5a5907ba595da40352193e0193f908bca4d1bf1c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106040
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-06-21 22:59:41 +00:00
Brian Wilkerson 718ab662c0 Support postfix ++ and -- operators
Change-Id: Ib16f30a8b5d6e94b1a6ec0cddf5c88f58188ea83
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107021
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-21 22:43:42 +00:00
Paul Berry e2bc5513f0 Migration: add a data structure for tracking class hierarchy information.
The new data structure, called `DecoratedClassHierarchy`, computes and
caches the variable substitutions necessary to relate a class to one
of its superclasses.  In future CLs, we'll use this information to
create the appropriate contraints for override relationships, and to
compute the correct types when a method dispatch resolves to a method
declared in a superclass.

Note that the analyzer uses `InhertanceManager2` both to determine
what a method call resolves to and to record the appropriate
substitutions.  We can take advantage of its determination of what a
method call resolves to (that information is stored in the resolved
AST), but we need to cmopute the substitutions separately because the
substitutions need to be decorated with nullability nodes.

Change-Id: Ifb334972e509b77151d41f7e0700cd590d7b5417
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106800
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2019-06-21 22:42:01 +00:00
Brian Wilkerson 7a57e241a3 Support prefix ++ and -- operators
Change-Id: I2437469ad67721736a6b4800f0134e0f358a7dbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106970
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-21 20:48:58 +00:00
Brian Wilkerson c01258a87d Fix handling of &&, || and ?? operators
Change-Id: Ibfe574f381af701932cf30f5fdd77fe50a7c8158
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106961
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-21 18:45:27 +00:00
Dan Rubel d0a22c747e add migration engine support for top level setters
Change-Id: I436e673370ed0094b0615d99796f117145c8fbaf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106923
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-21 16:50:17 +00:00
Dan Rubel 6089a943be add migration engine support for imported top level var references
In addition to adding imported top level var references support,
this revert GraphBuilder._checkAssignment changes so that the method
conforms to team expectations and addresses comments in
https://dart-review.googlesource.com/c/sdk/+/106562

Change-Id: I3e2b021ec51a1363706a7f6811807d0e6a680df5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106920
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-21 16:50:17 +00:00
Dan Rubel 9c62632f49 add migration engine sanity check
This adds a sanity check to ensure that DecorateType.forElement
is not called on elements in libraries that are being migrated.

Change-Id: I394004a70e9ca3c9ac22f30e63e8e48a0cd03204
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106922
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-21 16:50:17 +00:00
Brian Wilkerson 6847789eb8 Fix an NPE in Variables when there are no decorated types in a given file
Change-Id: I4258becb60509b3dd0facfb2731be532464f665c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106947
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-21 16:24:27 +00:00
Brian Wilkerson 735eb21529 Add support for &&, || and ?? operators
Change-Id: Ibb6269b349b3d0ffcf1068442c70ef46a6f521eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106948
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-21 14:16:57 +00:00
Brian Wilkerson d046448d00 Convert an NPE into an unimplemented notification
Change-Id: Ic032f26d54d1e85a54ca21068988d4dd226f3879
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106946
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-20 21:18:07 +00:00
Dan Rubel 3707cf0c1b add migration engine support for top level var reference
Change-Id: I77039243bc098449e4af976d2500c4d28f9f4012
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106562
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-20 15:18:40 +00:00
Konstantin Shcheglov c5567c0031 Abstract FlowAnalysis from concrete types of nodes and elements.
R=paulberry@google.com

Change-Id: I8a42eb260d2c99c4ca24cb8b9059c1d22f9430e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106683
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-19 22:51:11 +00:00
Dan Rubel cf78d5d7f0 add migration engine support for named parameters in imported packages
This adds support for decorating named parameters in packages
that are imported by the package being migrated.

Change-Id: I1f803b28ad8fedcedca14421b391dc7ab879d05f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106682
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-19 21:07:11 +00:00
Brian Wilkerson 84483cd9d7 Support the remaining user-defined binary operators
Change-Id: I796495489605a903330169ff964a3ed296b2783a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106722
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-19 20:08:20 +00:00
Brian Wilkerson 87460ad41a Decorate void and dynamic
Change-Id: I41cc3ad700c6d338295edbb7c78ef5d2ad92c05d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106721
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-19 18:51:06 +00:00
Brian Wilkerson 837d28b0cb Improve the feedback for unimplemented portions of the migration tooling
Change-Id: I1d4fd85f15c16e74e4dfdf5a618de2a7f4f3ec9a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106680
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-19 17:34:26 +00:00
Dan Rubel 0e9d971f85 skip directives during nnbd migration
Currently, the migration engine crashes when it visits the identifier
in the following directive:

   import "dart:core" as one;

This updates the migration engine to skip directives when looking
for expressions and type annotations to be migrated.

Change-Id: I079263b13e5f4c75fbfe22fa06993e7a5d4f9c16
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106660
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-06-19 16:22:25 +00:00
Paul Berry d622fa010b Migration: Split up migration_visitor_test.dart.
This will make it easier to re-use the test infrastructure for some
other tests I plan to introduce in a follow-up CL.

Change-Id: I0a243f00f342674fe38274eb46e7c1e943817785
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106442
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-06-18 17:43:05 +00:00
Paul Berry 310f50be72 Fix imports in graph_builder.dart
Change-Id: I00ec82a04f149ac7ce5d00da71eca6966bc84636
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106426
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-06-18 15:44:10 +00:00
Paul Berry 4aaa15edb2 Migration: fix detection of variable/parameter reference inside parentheses.
Change-Id: Ifebbb834de278a38c30f8e555175515220706a1b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106423
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-17 23:21:08 +00:00
Brian Wilkerson 29b346e020 Support set and map literals with type arguments
Change-Id: I2e5ab2b81a37b0ebcfab4c60d0ed04c7c6aeba5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106424
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-17 22:15:48 +00:00
Paul Berry c4e308584c Migration: unconditionally check guards in assertEdge
Change-Id: I882cbbb4dc6dce50a47255bff7ff2cc684d158d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106421
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-06-17 22:03:07 +00:00
Paul Berry c533967a4c Migration: rework the ExpressionChecks data structure.
We no longer need to keep pointers to the nullability nodes directly
in the ExpressionChecks data structure; we merely need to record which
edges, if unsatisfied, would require a check.

This allowed the tests using assertNullCheck to be clarified--they now
simply verify that the appropriate edge exists, and then pass that
edge to assertNullCheck to verify that the ExpressionChecks object
points to the appropriate edge.

Change-Id: Iaaee51d1f23ca6f86a2fbf0a15ded6a844b2811b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106383
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-06-17 21:06:21 +00:00
Paul Berry ea4eaaa145 Migration: Allow edges to be queried to see if they're satisfied.
Change-Id: I9da0233dfbac0c7aee168622c554d003c2c5e16c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106382
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-06-17 21:06:21 +00:00
Paul Berry 5167499427 Migration: record the "origin" of each edge in the NullabilityEdge object.
This paves the way for being able to explain to the user exactly why
the migration tool made any given nullability decision.

Change-Id: I553e4881fdb37b238a066fcfba7c21ae919d7d6e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106381
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-06-17 21:06:21 +00:00
Paul Berry dc059d763b Migration: Pass ExpressionChecks to _checkAssignment instead of the raw expression.
This paves the way for a follow-up CL that will introduce a more
general notion of the "origin" of an edge (of which ExpressionChecks
will be just one kind of origin).

Change-Id: I76ee12679d881ef95a4ba17a224fe85ecf6b589f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106380
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-06-17 21:06:21 +00:00
Brian Wilkerson 8461cc6f5b Support for list literals with type arguments
Change-Id: I7a661d83335b7d4c4ef2221af3eb31c865e2f9dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106386
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-17 20:55:11 +00:00
Brian Wilkerson 2164bcefdb Add support for await expressions
Change-Id: I36c1bad75a0f6981715e621c09df1befef38061a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106166
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-17 16:58:51 +00:00
Brian Wilkerson 071a99bfbe Add support for super expressions
Change-Id: I7d78810ca7fe8f669370803f2dd8146379ca2f7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106164
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-17 16:15:54 +00:00
Paul Berry 58664602a5 Change NullabilityGraph.propagate to return a list of unsatisfied edges.
In follow-up CLs this should allow us to simplify the generation of
fixes (since each fix is associated with one or more unsatisfied
edges) and to streamline tests.

Change-Id: I997f704aac41f270756adcdf8d382fb2263273eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106180
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-06-15 12:55:00 +00:00
Brian Wilkerson 047bacc94c Add support for symbol literals
Change-Id: I273b2290b8d4d2e0948fac1962d02efc70e7813e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106163
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-14 22:13:40 +00:00
Brian Wilkerson 9bb678f88b Add support for is expressions
Change-Id: I3be70d83b03a4d00a68070fb03ba2ab989880a9e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106161
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-14 21:43:50 +00:00
Brian Wilkerson f56df4a251 Add support for double literals
Change-Id: I08ea12bb0213272b192d063fd3699b2495912077
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106140
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-14 19:57:26 +00:00
Paul Berry fc5eb09cb9 Migration: remove getUpstreamNodes
This method was unnecessary--the same functionality can be provided
more efficiently by getUpstreamEdges.

Also fixed a doc comment error in getUpstreamEdges.

Change-Id: I44560eced353b57e00b06e57c8c628de79d689e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106121
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-06-14 18:31:57 +00:00
Brian Wilkerson 1e454a1c1b Add some missing visit methods from the visitors
I'll start implementing them and adding tests in future CLs.

Change-Id: Ic8cb5ed9bd00f05232869d7f4c585daa5d5ab4c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106122
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-14 18:03:37 +00:00
Brian Wilkerson dcc85a6594 Fix exception thrown in ConditionalModification
Change-Id: I6e60bd74bc55cafca86a64a721455e0ed465a357
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106101
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-14 17:13:37 +00:00
Brian Wilkerson fb85d41c08 Catch another exception earlier in the code
Change-Id: Ia9fdca760c4c0838cdb6bb31c00f296fbf21cbac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106102
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Auto-Submit: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-06-14 16:02:37 +00:00
Brian Wilkerson 25292abc1d Add support for boolean negation
Change-Id: Idae8d8dbedacdd0004dff3afad2d736b3a652466
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105972
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-13 23:02:57 +00:00
Brian Wilkerson a19611b079 Improve test coverage for constructor parameters
Change-Id: Ia1a803bd52e94e15696c60c77938fd2f5c08bdaf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105981
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-06-13 22:20:26 +00:00
Brian Wilkerson e9f17ae8e8 Convert some NPEs into explicit throws and add the missing visit methods discovered by doing so
Change-Id: I0613614168a7373a460d05cf8470f9b59264de0b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105970
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-13 18:51:44 +00:00
Brian Wilkerson 9676ca0ff9 Support constructor invocations with arguments
Change-Id: I2d537121efd29f051d8f533c6f58e0ad10835301
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105964
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-06-13 18:29:10 +00:00