commit | b28ebca82517b4736345797e00f92a98ae1948f0 | [log] [tgz] |
---|---|---|
author | Paul Berry <paulberry@google.com> | Wed Jun 20 22:41:53 2018 +0000 |
committer | Paul Berry <paulberry@google.com> | Wed Jun 20 22:41:53 2018 +0000 |
tree | 26306cafa2c66a317579e0dd0dc3f817c800c21c | |
parent | f6871d23051223f1758e76f22e636a874917ba1d [diff] |
Begin reworking ResolutionStorer API to look more like the Factory class. This CL makes the following changes: - Removes the type parameters from the ResolutionStorer interface; they remain in the implementation (which is now called _ResolutionStorer). In a follow-up CL I will add type parameters to ResolutionStorer to match those expected by Factory. In the long term, once the types have settled down, I'll fuse ResolutionStorer and _ResolutionStorer back together and make the types more concrete. - Removes the "...Enter" calls from ResolutionStorer and TypeInferenceListener. Now all the information needed by the analyzer is passed in the "...Exit" methods (and the word "Exit" has been dropped from the method names). As a consequence, _ResolutionStorer no longer needs to use a stack of function pointers to defer work from the "...Enter" to the "...Exit" calls. - Removes the TypeInferenceBase class and moves the base class methods into ResolutionStorer. This makes TypeInferenceListener a strictly abstract interface class, which is easier to reason about. - Adds a KernelTypeInferenceListener class, which implements TypeInferenceListener and does nothing. This is used during top level type inference, where we don't need to report resolution information to the analyzer. Eventually this will be replaced with ToplevelInferenceFactory. In a follow-up CL I will add additional parameters to the ResolutionStorer methods so that they match the Factory method signatures exactly, and add an "implements" clause to keep them in sync. Change-Id: I908b643293d051474dfb4ff24430430bc1572672 Reviewed-on: https://dart-review.googlesource.com/61403 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.