This fixes some incompatibilities with the newest analyzer around how deleted files are handled. The resolver was removing the source completely, but the analyzer expects the source to remain as long as it is being referenced by a URI.
This also fixes an issue where resolver were not being released when an exception was thrown from within the applyResolvers call.
** NOTE ** see the commented line which needs to be removed with the updated analyzer.
BUG=
R=brianwilkerson@google.com, scheglov@google.com, sigmund@google.com
Review URL: https://codereview.chromium.org//217163005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34512 260f80e4-7a28-3924-810f-c04153c831b5
With pub build and pub serve the same transformer can be run on the same asset in parallel. We want to maintain the cache between the runs, so making the resolver pipeline these requests.
In addition, refactoring to dramatically change the role of ResolverTransformer- previously it was a transformer that automatically kept the AST up to date, but this does not work well when in a pipeline of transformers that are generating or modifying code. What was ResolverTransformer is Resolvers- a cache of resolvers for which individual transformers now need to request the resolver from.
ResolverTransformer is now a mixin which can be used to automatically release a Resolver when it's done being used.
BUG=
R=sigmund@google.com
Review URL: https://codereview.chromium.org//181383015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33163 260f80e4-7a28-3924-810f-c04153c831b5