| OLD | NEW |
| (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 /// Class for working with a barback based resolved AST. | |
| 17 abstract class Resolver { | |
| 18 /// Update the status of all the sources referenced by the entry points and | |
| 19 /// update the resolved library. If [entryPoints] is omitted, the primary | |
| 20 /// asset of [transform] is used as the only entry point. | |
| 21 /// | |
| 22 /// [release] must be called when done handling this Resolver to allow it | |
| 23 /// to be used by later phases. | |
| 24 Future<Resolver> resolve(Transform transform, [List<AssetId> entryPoints]); | |
| 25 | |
| 26 /// Release this resolver so it can be updated by following transforms. | |
| 27 void release(); | |
| 28 | |
| 29 /// Gets the resolved Dart library for an asset, or null if the AST has not | |
| 30 /// been resolved. | |
| 31 /// | |
| 32 /// If the AST has not been resolved then this normally means that the | |
| 33 /// transformer hosting this needs to be in an earlier phase. | |
| 34 LibraryElement getLibrary(AssetId assetId); | |
| 35 | |
| 36 /// Gets all libraries accessible from the entry point, recursively. | |
| 37 /// | |
| 38 /// This includes all Dart SDK libraries as well. | |
| 39 Iterable<LibraryElement> get libraries; | |
| 40 | |
| 41 /// Finds the first library identified by [libraryName], or null if no | |
| 42 /// library can be found. | |
| 43 LibraryElement getLibraryByName(String libraryName); | |
| 44 | |
| 45 /// Finds the first library identified by [libraryName], or null if no | |
| 46 /// library can be found. | |
| 47 /// | |
| 48 /// [uri] must be an absolute URI of the form | |
| 49 /// `[dart:|package:]path/file.dart`. | |
| 50 LibraryElement getLibraryByUri(Uri uri); | |
| 51 | |
| 52 /// Resolves a fully-qualified type name (library_name.ClassName). | |
| 53 /// | |
| 54 /// This will resolve the first instance of [typeName], because of potential | |
| 55 /// library name conflicts the name is not guaranteed to be unique. | |
| 56 ClassElement getType(String typeName); | |
| 57 | |
| 58 /// Resolves a fully-qualified top-level library variable | |
| 59 /// (library_name.variableName). | |
| 60 /// | |
| 61 /// This will resolve the first instance of [variableName], because of | |
| 62 /// potential library name conflicts the name is not guaranteed to be unique. | |
| 63 Element getLibraryVariable(String variableName); | |
| 64 | |
| 65 /// Resolves a fully-qualified top-level library function | |
| 66 /// (library_name.functionName). | |
| 67 /// | |
| 68 /// This will resolve the first instance of [functionName], because of | |
| 69 /// potential library name conflicts the name is not guaranteed to be unique. | |
| 70 Element getLibraryFunction(String functionName); | |
| 71 | |
| 72 /// Gets the result of evaluating the constant [expression] in the context of | |
| 73 /// a [library]. | |
| 74 EvaluationResult evaluateConstant( | |
| 75 LibraryElement library, Expression expression); | |
| 76 | |
| 77 /// Gets an URI appropriate for importing the specified library. | |
| 78 /// | |
| 79 /// Returns null if the library cannot be imported via an absolute URI or | |
| 80 /// from [from] (if provided). | |
| 81 Uri getImportUri(LibraryElement lib, {AssetId from}); | |
| 82 | |
| 83 /// Get the asset ID of the file containing the asset. | |
| 84 AssetId getSourceAssetId(Element element); | |
| 85 | |
| 86 /// Get the source span where the specified element was defined or null if | |
| 87 /// the element came from the Dart SDK. | |
| 88 SourceSpan getSourceSpan(Element element); | |
| 89 | |
| 90 /// Get a [SourceFile] with the contents of the file that defines [element], | |
| 91 /// or null if the element came from the Dart SDK. | |
| 92 SourceFile getSourceFile(Element element); | |
| 93 | |
| 94 /// Creates a text edit transaction for the given element if it is able | |
| 95 /// to be edited, returns null otherwise. | |
| 96 /// | |
| 97 /// The transaction contains the entire text of the source file where the | |
| 98 /// element originated. If the element was from a library part then the | |
| 99 /// source file is the part file rather than the library. | |
| 100 TextEditTransaction createTextEditTransaction(Element element); | |
| 101 } | |
| OLD | NEW |