Commit Graph

7128 Commits

Author SHA1 Message Date
Brian Wilkerson 03932bb852 Convert more diagnostic tests to DriverResolutionTest
Change-Id: Ia3aaf54d2142300180b66c7fd18245fb492f8176
Reviewed-on: https://dart-review.googlesource.com/c/93480
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-02-18 19:53:33 +00:00
Brian Wilkerson f20ee58aa7 Remove references to the set-literals experiment
Change-Id: I3e151da8ea5c160a0945199f34ca3c0c9d949a3b
Reviewed-on: https://dart-review.googlesource.com/c/93464
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-02-16 15:42:48 +00:00
Konstantin Shcheglov 8cb4d00b0b Remove compareXyz() methods from ResynthesizeTestHelpers.
With task model being removed, there is nothing to compare to.
We now use just textual dumps of library elements.

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

Change-Id: I5693548b8b71dd1318d761dcacbaf88a376a2f54
Reviewed-on: https://dart-review.googlesource.com/c/93321
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-15 22:32:37 +00:00
Konstantin Shcheglov fd8b546800 Issue 35940. Clear evaluation results for constants in the library being analyzed.
R=brianwilkerson@google.com, paulberry@google.com

Bug: https://github.com/dart-lang/sdk/issues/35940
Change-Id: Ife6199d344a197242c50020337d0e2854a72eef9
Reviewed-on: https://dart-review.googlesource.com/c/93340
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-15 16:46:46 +00:00
Konstantin Shcheglov 39afa4e555 Revert "Add ExecutableElement(s) based InheritanceManager3, and switch analyzer to it."
This reverts commit 5d6bab4ed2.

Reason for revert: this change is API incompatible when rolling into mono-repo.

Original change's description:
> Add ExecutableElement(s) based InheritanceManager3, and switch analyzer to it.
> 
> Change-Id: I9d87619e05ae769f4df6a6ba26cd7901c7c98510
> Reviewed-on: https://dart-review.googlesource.com/c/93141
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>

TBR=scheglov@google.com,brianwilkerson@google.com

Change-Id: I98d478f56e8aea037cbcc8b6cb940c36edb732fd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/93440
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-15 16:38:08 +00:00
Brian Wilkerson 122aa43ef6 Convert ListLiteral and remove uses of ListLiteral2
Change-Id: I6c6f60ae969deb798cdbc8572341f2a51256b194
Reviewed-on: https://dart-review.googlesource.com/c/93341
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-02-15 16:17:28 +00:00
Konstantin Shcheglov 54dbc0068a Migrate resynthesizer tests from task model.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I2eebe3ee5b9a934e5991d068e0422533545c2e1c
Reviewed-on: https://dart-review.googlesource.com/c/93260
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-14 22:09:59 +00:00
Paul Berry 6c96ff0145 Test case reproducing issue #35940
Change-Id: I6ec0556c0ec42971dee67a784c7c5f884862ac03
Reviewed-on: https://dart-review.googlesource.com/c/93284
Commit-Queue: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-02-14 20:22:31 +00:00
Konstantin Shcheglov 5d6bab4ed2 Add ExecutableElement(s) based InheritanceManager3, and switch analyzer to it.
Change-Id: I9d87619e05ae769f4df6a6ba26cd7901c7c98510
Reviewed-on: https://dart-review.googlesource.com/c/93141
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-14 18:11:18 +00:00
danrubel 69a952b195 remove parseSetLiterals flag from tests
Change-Id: I1b042f436c2c0dc96317df5d0bba535a9aa605fc
Reviewed-on: https://dart-review.googlesource.com/c/93126
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-02-14 16:38:09 +00:00
Brian Wilkerson 46aa511b49 Improve the message when using a prefix to reference an undefined name (issue 35936)
Change-Id: Iae25bdffc992e0a50687ab54c56118cd13dfa26f
Reviewed-on: https://dart-review.googlesource.com/c/93121
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-02-13 23:37:37 +00:00
Konstantin Shcheglov f4ec983fec Migrate the rest of element_test from task model.
R=brianwilkerson@google.com

Change-Id: Iebc0b21b96ebef17503bf3ef672fbaf702144368
Reviewed-on: https://dart-review.googlesource.com/c/93142
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-13 23:00:02 +00:00
Dan Rubel 94d8e730fb Remove parser enableSetLiterals flag
Change-Id: I5e806f2e4a1dd368417802f7b4ff18bc1b4d0250
Reviewed-on: https://dart-review.googlesource.com/c/92843
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2019-02-13 22:57:12 +00:00
Brian Wilkerson 9b45c14c65 First stage cleanup of MapLiteral2 and SetLiteral2
Change-Id: I73ec2e6fa4509539f86dd906bcb411e6267c77aa
Reviewed-on: https://dart-review.googlesource.com/c/93143
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-02-13 22:51:57 +00:00
Brian Wilkerson 7a63d31151 Improve the message when importing a deprecated library (issue 35922)
Change-Id: Id37c87c0dc007a55c01dfabb2d3b4639f82ea9cc
Reviewed-on: https://dart-review.googlesource.com/c/93066
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-02-13 20:18:56 +00:00
Brian Wilkerson 30f9f5b1c7 Add SetOrMapLiteral to support the code-as-ui features
Change-Id: I6d3023855fea6da859af0815bfae6857f1546cb9
Reviewed-on: https://dart-review.googlesource.com/c/93062
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-02-13 20:14:24 +00:00
Konstantin Shcheglov 7f2f840a91 Don't include constants of private enums.
R=brianwilkerson@google.com

Change-Id: I477db71282da118a74844c7c3d8d7c5b992d61b1
Reviewed-on: https://dart-review.googlesource.com/c/93067
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-13 19:41:06 +00:00
Konstantin Shcheglov c92d5ca288 Migrate ClassElementImplTest from task model.
R=brianwilkerson@google.com

Change-Id: Idefac96fd017174f5de78e906b91273b9596f494
Reviewed-on: https://dart-review.googlesource.com/c/93100
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-13 19:14:26 +00:00
Konstantin Shcheglov def7e2dac7 Migrate ConstantVisitorTest from task model.
R=brianwilkerson@google.com

Change-Id: I7822f13a4438e7460e136d56ad3b5abf6fd1b11d
Reviewed-on: https://dart-review.googlesource.com/c/92925
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-13 16:43:41 +00:00
Konstantin Shcheglov a31a72521b Don't include declarations of the library itself.
These declarations are already available through the library element
model.

R=brianwilkerson@google.com

Change-Id: I9d3d274a8bf4ad28c10f04afc30fa11436cd0f6a
Reviewed-on: https://dart-review.googlesource.com/c/92848
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-13 05:43:23 +00:00
Konstantin Shcheglov f21fafd411 Migrate SimpleResolverTest from task model.
R=brianwilkerson@google.com

Change-Id: Icb45287e7f63f5139468eed5b84c45822f6da5ed
Reviewed-on: https://dart-review.googlesource.com/c/92846
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-12 23:14:22 +00:00
Paul Berry 3e5a4f1a5d Sort declarations in file inferred_type_test.dart
Change-Id: I07aaa0604477ec827cac9696832ca83649067c93
Reviewed-on: https://dart-review.googlesource.com/c/92845
Commit-Queue: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-02-12 22:23:51 +00:00
Paul Berry 1e72e9c985 Fix tests now that set literal support is enabled by default.
Fixes #35870.

Change-Id: Ie250961f12a720a4ffbfc114df55a18518bf0426
Reviewed-on: https://dart-review.googlesource.com/c/92864
Commit-Queue: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-12 22:23:51 +00:00
Konstantin Shcheglov 8d5958bd9a Migrate ErrorResolverTest.
R=brianwilkerson@google.com

Change-Id: I2593ca49a3c8b1a0281bcdc993628e11aa1bc7bf
Reviewed-on: https://dart-review.googlesource.com/c/92842
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-12 20:39:14 +00:00
Konstantin Shcheglov 135abb41f7 Migrate ElementResolverCodeTest from task model.
R=brianwilkerson@google.com

Change-Id: I1494934d56476971518c5e002479def1ba231dd7
Reviewed-on: https://dart-review.googlesource.com/c/92765
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-12 19:07:53 +00:00
Konstantin Shcheglov 80e85d06ab Fixes for enum constants in available declarations.
R=brianwilkerson@google.com

Change-Id: Ic1ad3846ecf82cdd5f1f0b0d0d5a69b0d5c43d81
Reviewed-on: https://dart-review.googlesource.com/c/92763
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-12 17:43:58 +00:00
Brian Wilkerson 5fe0202b0b Unify MapElement and CollectionElement
Change-Id: Ia1be138d656d07bdf4c11640b79044abbc798986
Reviewed-on: https://dart-review.googlesource.com/c/92762
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-02-12 17:10:58 +00:00
Konstantin Shcheglov 71e8588399 Include enum constants into available declarations.
R=brianwilkerson@google.com

Change-Id: I86c525981119a77ad8b69878f8134d927f873817
Reviewed-on: https://dart-review.googlesource.com/c/92662
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-12 01:04:34 +00:00
Konstantin Shcheglov 3de72ae066 Added files, when in a context root, should be accessible through getLibraries().
R=brianwilkerson@google.com

Change-Id: I6d36ac4bed51b6e40307d2821780bb3fb08d540d
Reviewed-on: https://dart-review.googlesource.com/c/92624
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-11 21:04:44 +00:00
Sam Rawlins 25cefbdad7 Add HintCode.INVALID_VISIBILITY_ANNOTATION. Fixes #35141
Bug: https://github.com/dart-lang/sdk/issues/35141
Change-Id: Ifa8401e4ab772390c94d03a485ed7d07f43aff55
Reviewed-on: https://dart-review.googlesource.com/c/92660
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2019-02-11 19:06:28 +00:00
Brian Wilkerson 0a2672453f Split out several more hint tests
Change-Id: I6483656ca2ac9c7cfa00249cf37ccbb78758ffb6
Reviewed-on: https://dart-review.googlesource.com/c/92533
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-02-10 18:51:22 +00:00
Konstantin Shcheglov 5f2d651d94 Move FindElement to analyzer/src/test_utilities/.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I3f376728ffe7fa49f50b8265359d637fca07ca57
Reviewed-on: https://dart-review.googlesource.com/c/92530
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-10 16:44:38 +00:00
Mike Fairhurst 5f79c9f4d1 Move UNCHECKED_NULL to error verifier.
Main risk in this CL is that it deviates from the void work which I'm confident is exhaustive.

Particularly, operators on void are caught by the resolver as a special kind of missing method, hopefully I put all the syntactic checks in at all the necessary places.

I also hardcoded "toString()," "hashCode." I previously had hardcoded to allow "==" checks, however, the code in ErrorVerifier was tripping over that. So now it should be good.


Change-Id: I56abb0219feb7aa143159694b688be15ba29015c
Reviewed-on: https://dart-review.googlesource.com/c/92063
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-09 23:26:49 +00:00
Konstantin Shcheglov 090ba0a520 Fix FUNCTION_TYPE_ALIAS test, provide the name for the named parameter.
R=brianwilkerson@google.com

Change-Id: Ief40a5d51d40f254b7398d679197fc5a9912c657
Reviewed-on: https://dart-review.googlesource.com/c/92524
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-09 22:26:59 +00:00
Paul Berry ad3adb6285 Move nullability migration algorithm into analysis server.
Change-Id: Ie240b42cab37e3f5adce8633d368fcf6667b3a37
Reviewed-on: https://dart-review.googlesource.com/c/92522
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-02-09 19:01:14 +00:00
Paul Berry 9103baf31c Move find_node into test_utilities so that it can be re-used in analysis server tests.
Change-Id: I9a302944ccc96b04a64508cc1f71498056f150bf
Reviewed-on: https://dart-review.googlesource.com/c/92521
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-02-09 19:01:14 +00:00
Brian Wilkerson 5787f08619 Clean up some hints in server and analyzer
Change-Id: Ia6bb5e4e4e398dbed29fe6649c490a88d4e0a406
Reviewed-on: https://dart-review.googlesource.com/c/92523
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2019-02-09 17:58:44 +00:00
Konstantin Shcheglov 6f6bed94fd Replace TypeMatcher with isXyzElement.
R=brianwilkerson@google.com

Change-Id: Ibe6d4aa5c5c5e1b692fb527fcd0347a84783b19d
Reviewed-on: https://dart-review.googlesource.com/c/92444
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-08 23:39:48 +00:00
pq 18b5d66966 pass analysis options to linter contexts
Adds an analysis options backpointer to linter contexts.  With this, lint rules can
query options and conditionally support enabled language experiments.



Change-Id: I35dbfd112ed5f149dcc17b17b2edaf7420b38090
Reviewed-on: https://dart-review.googlesource.com/c/92460
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2019-02-08 23:38:58 +00:00
Konstantin Shcheglov 2bab9eab49 Guard against empty URIs.
Particularly, against empty `part` URIs, because this would cause us
to think that the library includes a part, which URI is... the library
itself, because `resolveUri(uri, '') === uri`.

R=brianwilkerson@google.com

Change-Id: Ie6bf0279c467b00d9b5540697e866d0e619d49b0
Reviewed-on: https://dart-review.googlesource.com/c/92443
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-08 23:07:50 +00:00
Konstantin Shcheglov e6bc1d317a Break AvailableDeclarationsTest into several test classes.
R=brianwilkerson@google.com

Change-Id: I987fb062853beb61a54cfd9dafb10e175142d93f
Reviewed-on: https://dart-review.googlesource.com/c/92442
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-08 21:21:06 +00:00
Konstantin Shcheglov 61ae86bce2 Add relevance tags to available declarations.
R=brianwilkerson@google.com

Change-Id: Ifa0fef7f9e572368c857fe972e007483782f119e
Reviewed-on: https://dart-review.googlesource.com/c/92405
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-08 19:56:36 +00:00
Konstantin Shcheglov 6b0baad623 Track definitely nullable and non-nullable variables.
This CL also contains changes from another CL.
Add missing generics in FlowAnalysis.
I can wait until that CL lands, and rebase, if it helps.

This CL also switches to a different approach to handle try / finally,
using two parallel states instead of 'restrict'.

R=paulberry@google.com

Change-Id: I1ca5bed3b4362cb3bdca5abf36c849c59538e57e
Reviewed-on: https://dart-review.googlesource.com/c/92246
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-08 19:54:16 +00:00
Paul Berry afe37d7fe0 Add migration support for named parameters (with and without default values).
At this point the migration tool is beginning to make assumptions
about decisions the language team hasn't made yet, so I've created a
class to document those assumptions and allow us to test variants.

Change-Id: I4638d7f534cfa2dbd8460277351045c370377ff8
Reviewed-on: https://dart-review.googlesource.com/c/92394
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-02-08 17:47:55 +00:00
Kevin Millikin be79eb4517 Ship experiment 'set-literals'
Change-Id: Ief182017752b87ef099ac5140ff781cbb14d76a9
Reviewed-on: https://dart-review.googlesource.com/c/92125
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Kevin Millikin <kmillikin@google.com>
2019-02-08 16:17:55 +00:00
Paul Berry 5b7b34eb3a Add a "permissive mode" to the nullability migration tool.
This allows us to try it out on substantial codebases (e.g. the
analyzer itself) without crashing, even though a lot of the underlying
logic is not yet complete.

Change-Id: I24a45eea1889f7d9afa30c0398f359d32ffb52ad
Reviewed-on: https://dart-review.googlesource.com/c/92404
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-02-08 13:23:35 +00:00
Konstantin Shcheglov da7ed9b05a Add missing generics in FlowAnalysis.
R=paulberry@google.com

Change-Id: I8e7334ad68bdb8080b8dce90a726284b6bd88b64
Reviewed-on: https://dart-review.googlesource.com/c/92244
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-02-07 21:17:07 +00:00
Konstantin Shcheglov 70283bdb3a Improve choosing context for changes files.
This should fix the Windows bot failure in Analysis Server.

R=brianwilkerson@google.com

Change-Id: I50cc69f7c0f60d955d8bb96cacc740e2d0c8d45e
Reviewed-on: https://dart-review.googlesource.com/c/92304
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2019-02-07 20:43:40 +00:00
Konstantin Shcheglov 876e671a2c Migrate DeclarationResolverTest.
R=brianwilkerson@google.com

Change-Id: I553e871b2193d6219528df648f44e246c6391888
Reviewed-on: https://dart-review.googlesource.com/c/92222
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-02-07 02:01:36 +00:00
Paul Berry d68d8526f4 Allow nullabilty migration prepareInput/processInput to operate on different ASTs.
This required modifying the implementation of nullability migration so
that it no longer holds onto AST nodes, but instead records sources
and offsets.  This will allow the tool to scale to large projects
since the AST for one file can be garbage collected while the AST for
another file is analyzed.

Additional changes:

- provisional_api_test.dart is updated so that it tests the API in two
  ways: once feeding identical ASTs to prepareInput/processInput, and
  once feeding conceptually equal (but not identical) ASTs.

- The internal analyzer API is changed so that the finish() method
  simply returns a list of modifications, rather than a map from path
  to modification list.

- Files are tracked by Source rather than by path.

- Modification objects remember their Source (this should pave the way
  for allowing multiple files to be migrated in a single run of the
  tool).

- The Variables class is split in two, with the methods needed for
  testing in a private class inside migration_test.dart.  These test
  methods can retain pointers to AST nodes without creating
  scalability problems for the production code.

Change-Id: Idd3f3b6893a25bb4294b4b4c820e20e4bc47ffd8
Reviewed-on: https://dart-review.googlesource.com/c/92220
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-02-06 23:58:40 +00:00