Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(544)

Side by Side Diff: observatory_pub_packages/code_transformers/src/resolver.dart

Issue 816693004: Add observatory_pub_packages snapshot to third_party (Closed) Base URL: http://dart.googlecode.com/svn/third_party/
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 library code_transformer.src.resolver;
6
7 import 'dart:async';
8
9 import 'package:analyzer/src/generated/ast.dart' show Expression;
10 import 'package:analyzer/src/generated/constant.dart' show EvaluationResult;
11 import 'package:analyzer/src/generated/element.dart';
12 import 'package:barback/barback.dart';
13 import 'package:source_maps/refactor.dart';
14 import 'package:source_span/source_span.dart';
15
16
17 /// Class for working with a barback based resolved AST.
18 abstract class Resolver {
19 /// Update the status of all the sources referenced by the entry points and
20 /// update the resolved library. If [entryPoints] is omitted, the primary
21 /// asset of [transform] is used as the only entry point.
22 ///
23 /// [release] must be called when done handling this Resolver to allow it
24 /// to be used by later phases.
25 Future<Resolver> resolve(Transform transform, [List<AssetId> entryPoints]);
26
27 /// Release this resolver so it can be updated by following transforms.
28 void release();
29
30 /// Gets the resolved Dart library for an asset, or null if the AST has not
31 /// been resolved.
32 ///
33 /// If the AST has not been resolved then this normally means that the
34 /// transformer hosting this needs to be in an earlier phase.
35 LibraryElement getLibrary(AssetId assetId);
36
37 /// Gets all libraries accessible from the entry point, recursively.
38 ///
39 /// This includes all Dart SDK libraries as well.
40 Iterable<LibraryElement> get libraries;
41
42 /// Finds the first library identified by [libraryName], or null if no
43 /// library can be found.
44 LibraryElement getLibraryByName(String libraryName);
45
46 /// Finds the first library identified by [libraryName], or null if no
47 /// library can be found.
48 ///
49 /// [uri] must be an absolute URI of the form
50 /// `[dart:|package:]path/file.dart`.
51 LibraryElement getLibraryByUri(Uri uri);
52
53 /// Resolves a fully-qualified type name (library_name.ClassName).
54 ///
55 /// This will resolve the first instance of [typeName], because of potential
56 /// library name conflicts the name is not guaranteed to be unique.
57 ClassElement getType(String typeName);
58
59 /// Resolves a fully-qualified top-level library variable
60 /// (library_name.variableName).
61 ///
62 /// This will resolve the first instance of [variableName], because of
63 /// potential library name conflicts the name is not guaranteed to be unique.
64 Element getLibraryVariable(String variableName);
65
66 /// Resolves a fully-qualified top-level library function
67 /// (library_name.functionName).
68 ///
69 /// This will resolve the first instance of [functionName], because of
70 /// potential library name conflicts the name is not guaranteed to be unique.
71 Element getLibraryFunction(String functionName);
72
73 /// Gets the result of evaluating the constant [expression] in the context of
74 /// a [library].
75 EvaluationResult evaluateConstant(
76 LibraryElement library, Expression expression);
77
78 /// Gets an URI appropriate for importing the specified library.
79 ///
80 /// Returns null if the library cannot be imported via an absolute URI or
81 /// from [from] (if provided).
82 Uri getImportUri(LibraryElement lib, {AssetId from});
83
84 /// Get the asset ID of the file containing the asset.
85 AssetId getSourceAssetId(Element element);
86
87 /// Get the source span where the specified element was defined or null if
88 /// the element came from the Dart SDK.
89 SourceSpan getSourceSpan(Element element);
90
91 /// Get a [SourceFile] with the contents of the file that defines [element],
92 /// or null if the element came from the Dart SDK.
93 SourceFile getSourceFile(Element element);
94
95 /// Creates a text edit transaction for the given element if it is able
96 /// to be edited, returns null otherwise.
97 ///
98 /// The transaction contains the entire text of the source file where the
99 /// element originated. If the element was from a library part then the
100 /// source file is the part file rather than the library.
101 TextEditTransaction createTextEditTransaction(Element element);
102 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698