| OLD | NEW |
| 1 import 'dart:io' as io; | 1 import 'dart:io' as io; |
| 2 | 2 |
| 3 import 'package:analyzer/dart/element/element.dart'; | 3 import 'package:analyzer/dart/element/element.dart'; |
| 4 import 'package:analyzer/src/context/cache.dart'; | 4 import 'package:analyzer/src/context/cache.dart'; |
| 5 import 'package:analyzer/src/context/context.dart'; | 5 import 'package:analyzer/src/context/context.dart'; |
| 6 import 'package:analyzer/src/dart/element/element.dart'; | 6 import 'package:analyzer/src/dart/element/element.dart'; |
| 7 import 'package:analyzer/src/generated/engine.dart'; | 7 import 'package:analyzer/src/generated/engine.dart'; |
| 8 import 'package:analyzer/src/generated/java_io.dart'; | 8 import 'package:analyzer/src/generated/java_io.dart'; |
| 9 import 'package:analyzer/src/generated/resolver.dart'; | 9 import 'package:analyzer/src/generated/resolver.dart'; |
| 10 import 'package:analyzer/src/generated/source.dart'; | 10 import 'package:analyzer/src/generated/source.dart'; |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 return true; | 127 return true; |
| 128 } | 128 } |
| 129 } | 129 } |
| 130 return false; | 130 return false; |
| 131 } | 131 } |
| 132 } | 132 } |
| 133 | 133 |
| 134 /** | 134 /** |
| 135 * The [UriResolver] that knows about sources that are served from their | 135 * The [UriResolver] that knows about sources that are served from their |
| 136 * summaries. | 136 * summaries. |
| 137 * |
| 138 * TODO(scheglov) rename to `InSummaryUriResolver` - it's not `package:` specifi
c. |
| 137 */ | 139 */ |
| 138 class InSummaryPackageUriResolver extends UriResolver { | 140 class InSummaryPackageUriResolver extends UriResolver { |
| 139 final SummaryDataStore _dataStore; | 141 final SummaryDataStore _dataStore; |
| 140 | 142 |
| 141 InSummaryPackageUriResolver(this._dataStore); | 143 InSummaryPackageUriResolver(this._dataStore); |
| 142 | 144 |
| 143 @override | 145 @override |
| 144 Source resolveAbsolute(Uri uri, [Uri actualUri]) { | 146 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
| 145 actualUri ??= uri; | 147 actualUri ??= uri; |
| 146 String uriString = uri.toString(); | 148 String uriString = uri.toString(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 @override | 181 @override |
| 180 String get encoding => uri.toString(); | 182 String get encoding => uri.toString(); |
| 181 | 183 |
| 182 @override | 184 @override |
| 183 String get fullName => encoding; | 185 String get fullName => encoding; |
| 184 | 186 |
| 185 @override | 187 @override |
| 186 int get hashCode => uri.hashCode; | 188 int get hashCode => uri.hashCode; |
| 187 | 189 |
| 188 @override | 190 @override |
| 189 bool get isInSystemLibrary => false; | 191 bool get isInSystemLibrary => uri.scheme == DartUriResolver.DART_SCHEME; |
| 190 | 192 |
| 191 @override | 193 @override |
| 192 int get modificationStamp => 0; | 194 int get modificationStamp => 0; |
| 193 | 195 |
| 194 @override | 196 @override |
| 195 String get shortName => pathos.basename(fullName); | 197 String get shortName => pathos.basename(fullName); |
| 196 | 198 |
| 197 @override | 199 @override |
| 198 UriKind get uriKind => UriKind.PACKAGE_URI; | 200 UriKind get uriKind => UriKind.PACKAGE_URI; |
| 199 | 201 |
| 200 @override | 202 @override |
| 201 bool operator ==(Object object) => | 203 bool operator ==(Object object) => |
| 202 object is InSummarySource && object.uri == uri; | 204 object is InSummarySource && object.uri == uri; |
| 203 | 205 |
| 204 @override | 206 @override |
| 205 bool exists() => true; | 207 bool exists() => true; |
| 206 | 208 |
| 207 @override | 209 @override |
| 208 String toString() => uri.toString(); | 210 String toString() => uri.toString(); |
| 209 } | 211 } |
| 210 | 212 |
| 211 /** | 213 /** |
| 212 * A [SummaryDataStore] is a container for the data extracted from a set of | 214 * A [SummaryDataStore] is a container for the data extracted from a set of |
| 213 * summary package bundles. It contains maps which can be used to find linked | 215 * summary package bundles. It contains maps which can be used to find linked |
| 214 * and unlinked summaries by URI. | 216 * and unlinked summaries by URI. |
| 215 */ | 217 */ |
| 216 class SummaryDataStore { | 218 class SummaryDataStore { |
| 217 /** | 219 /** |
| 220 * List of all [PackageBundle]s. |
| 221 */ |
| 222 final List<PackageBundle> bundles = <PackageBundle>[]; |
| 223 |
| 224 /** |
| 218 * Map from the URI of a compilation unit to the unlinked summary of that | 225 * Map from the URI of a compilation unit to the unlinked summary of that |
| 219 * compilation unit. | 226 * compilation unit. |
| 220 */ | 227 */ |
| 221 final Map<String, UnlinkedUnit> unlinkedMap = <String, UnlinkedUnit>{}; | 228 final Map<String, UnlinkedUnit> unlinkedMap = <String, UnlinkedUnit>{}; |
| 222 | 229 |
| 223 /** | 230 /** |
| 224 * Map from the URI of a library to the linked summary of that library. | 231 * Map from the URI of a library to the linked summary of that library. |
| 225 */ | 232 */ |
| 226 final Map<String, LinkedLibrary> linkedMap = <String, LinkedLibrary>{}; | 233 final Map<String, LinkedLibrary> linkedMap = <String, LinkedLibrary>{}; |
| 227 | 234 |
| 228 /** | 235 /** |
| 229 * Map from the URI of a library to the summary path that contained it. | 236 * Map from the URI of a library to the summary path that contained it. |
| 230 */ | 237 */ |
| 231 final Map<String, String> uriToSummaryPath = <String, String>{}; | 238 final Map<String, String> uriToSummaryPath = <String, String>{}; |
| 232 | 239 |
| 233 SummaryDataStore(Iterable<String> summaryPaths) { | 240 SummaryDataStore(Iterable<String> summaryPaths) { |
| 234 summaryPaths.forEach(_fillMaps); | 241 summaryPaths.forEach(_fillMaps); |
| 235 } | 242 } |
| 236 | 243 |
| 237 /** | 244 /** |
| 238 * Add the given [bundle] loaded from the file with the given [path]. | 245 * Add the given [bundle] loaded from the file with the given [path]. |
| 239 */ | 246 */ |
| 240 void addBundle(String path, PackageBundle bundle) { | 247 void addBundle(String path, PackageBundle bundle) { |
| 248 bundles.add(bundle); |
| 241 for (int i = 0; i < bundle.unlinkedUnitUris.length; i++) { | 249 for (int i = 0; i < bundle.unlinkedUnitUris.length; i++) { |
| 242 String uri = bundle.unlinkedUnitUris[i]; | 250 String uri = bundle.unlinkedUnitUris[i]; |
| 243 uriToSummaryPath[uri] = path; | 251 uriToSummaryPath[uri] = path; |
| 244 unlinkedMap[uri] = bundle.unlinkedUnits[i]; | 252 unlinkedMap[uri] = bundle.unlinkedUnits[i]; |
| 245 } | 253 } |
| 246 for (int i = 0; i < bundle.linkedLibraryUris.length; i++) { | 254 for (int i = 0; i < bundle.linkedLibraryUris.length; i++) { |
| 247 String uri = bundle.linkedLibraryUris[i]; | 255 String uri = bundle.linkedLibraryUris[i]; |
| 248 linkedMap[uri] = bundle.linkedLibraries[i]; | 256 linkedMap[uri] = bundle.linkedLibraries[i]; |
| 249 } | 257 } |
| 250 } | 258 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 * also provides [summaryPath]. | 303 * also provides [summaryPath]. |
| 296 */ | 304 */ |
| 297 class _InSummaryFallbackSource extends FileBasedSource | 305 class _InSummaryFallbackSource extends FileBasedSource |
| 298 implements InSummarySource { | 306 implements InSummarySource { |
| 299 @override | 307 @override |
| 300 final String summaryPath; | 308 final String summaryPath; |
| 301 | 309 |
| 302 _InSummaryFallbackSource(JavaFile file, Uri uri, this.summaryPath) | 310 _InSummaryFallbackSource(JavaFile file, Uri uri, this.summaryPath) |
| 303 : super(file, uri); | 311 : super(file, uri); |
| 304 } | 312 } |
| OLD | NEW |