Commit Graph

12 Commits

Author SHA1 Message Date
Paul Berry 7bfc3ced58 Clean up hacky handling of "dart:" URIs in incremental resolved AST generator.
R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2643033003 .
2017-01-20 08:54:01 -08:00
Paul Berry 6acc2c2611 Store a file state in the incremental resolved AST generator.
This is necessary to make invalidation work properly.  It also ensures
that we don't do redundant reads from the filesystem.

R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2644953002 .
2017-01-19 13:58:57 -08:00
Paul Berry 28bfd11a70 Create a "file repository" data structure to help interface analyzer and front_end code.
R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2645923002 .
2017-01-19 10:55:50 -08:00
Paul Berry fdbdd8a4d8 Add code to ProcessedOptions to fetch the SDK summary bundle.
R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2625533002 .
2017-01-11 06:19:40 -08:00
Paul Berry 9d5c3a9917 Fix Windows path handling in uri_resolver_test.
Fixes #28309

R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2628653002 .
2017-01-10 15:09:17 -08:00
Paul Berry ba241c0c8d Use URIs rather than paths in front end API.
This carries a number of benefits:

- It allows the front end to trivially support schemes other than
  "file:" (e.g. "http:") by allowing the client to supply a FileSystem
  implementation that handles them.

- It is more consistent with the functionality of the ".packages" file
  (which allows packages to map to any kind of URI).

- It allows the "bazel root" feature to be rewritten to use a magic
  scheme rather than a magic path.  (This eliminates concerns about
  the magic path overlapping with a user's use case).  Note that this
  feature has been renamed to "multi root" since it is sufficiently
  generic to be applicable to build systems other than Bazel.

- It reduces the risk of forgetting to use the front end's FileSystem
  abstraction to access the file system, since the native file system
  interfaces do not accept URIs.

R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2614063007 .
2017-01-09 11:19:38 -08:00
Paul Berry ca271d003e Create a wrapper class to handle CompilerOptions in a uniform way.
R=danrubel@google.com

Review-Url: https://codereview.chromium.org/2618633006 .
2017-01-06 10:40:45 -08:00
Paul Berry 4e33530fbf Add front end code for reading the SDK's "libraries.dart" file.
R=danrubel@google.com, sigmund@google.com

Review-Url: https://codereview.chromium.org/2578693002 .
2016-12-14 15:23:31 -08:00
Paul Berry b29fa08444 Implement URI resolution in the front end.
R=danrubel@google.com, sigmund@google.com

Review-Url: https://codereview.chromium.org/2577503002 .
2016-12-13 13:21:14 -08:00
Paul Berry 4ee949c154 Add an async version of dependency_walker.dart.
This is intended to be used in situations where computing dependencies
and/or evaluating nodes is an asynchronous operation.  (For example,
when performing a compilation, computing dependencies of a library
requires file I/O to read the files constituting the library;
evaluating a library cycle might potentially be performed
asynchronously by a separate isolate).

At the moment the implementation is nearly the same as that of
dependency_walker.dart, except asynchronous.  In future CLs I will
look into allowing computeDependencies(), evaluate(), and
evaluateScc() to operate in parallel.

R=scheglov@google.com

Review URL: https://codereview.chromium.org/2552383002 .
2016-12-06 12:29:07 -08:00
Paul Berry 11d43180af Add missing copyrights
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2550323003 .
2016-12-06 11:20:05 -08:00
Paul Berry 2bf75c0550 Move dependency walker logic to front end.
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2554973002 .
2016-12-06 10:18:24 -08:00