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

Side by Side Diff: pkg/code_transformers/lib/src/resolver_impl.dart

Issue 428303004: Breaking changes in 'analyzer' package. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rename Source.resolveRelative to resolveRelativeUri, soften version constraints Created 6 years, 4 months 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
« no previous file with comments | « pkg/code_transformers/lib/src/dart_sdk.dart ('k') | pkg/code_transformers/pubspec.yaml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library code_transformer.src.resolver_impl; 5 library code_transformer.src.resolver_impl;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'package:analyzer/analyzer.dart' show parseDirectives; 8 import 'package:analyzer/analyzer.dart' show parseDirectives;
9 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator; 9 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator;
10 import 'package:analyzer/src/generated/constant.dart' show ConstantEvaluator, 10 import 'package:analyzer/src/generated/constant.dart' show ConstantEvaluator,
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 /// Contents of the file. 335 /// Contents of the file.
336 TimestampedData<String> get contents { 336 TimestampedData<String> get contents {
337 if (!exists()) throw new StateError('$assetId does not exist'); 337 if (!exists()) throw new StateError('$assetId does not exist');
338 338
339 return new TimestampedData<String>(modificationStamp, _contents); 339 return new TimestampedData<String>(modificationStamp, _contents);
340 } 340 }
341 341
342 /// Contents of the file. 342 /// Contents of the file.
343 String get rawContents => _contents; 343 String get rawContents => _contents;
344 344
345 Uri get uri => Uri.parse('asset:${assetId.package}/${assetId.path}');
346
345 /// Logger for the current transform. 347 /// Logger for the current transform.
346 /// 348 ///
347 /// Only valid while the resolver is updating assets. 349 /// Only valid while the resolver is updating assets.
348 TransformLogger get _logger => _resolver._currentTransform.logger; 350 TransformLogger get _logger => _resolver._currentTransform.logger;
349 351
350 /// Gets all imports/parts/exports which resolve to assets (non-Dart files). 352 /// Gets all imports/parts/exports which resolve to assets (non-Dart files).
351 Iterable<AssetId> get dependentAssets => _dependentAssets; 353 Iterable<AssetId> get dependentAssets => _dependentAssets;
352 354
353 bool exists() => _contents != null; 355 bool exists() => _contents != null;
354 356
(...skipping 27 matching lines...) Expand all
382 if (id == null) return null; 384 if (id == null) return null;
383 385
384 // The entire AST should have been parsed and loaded at this point. 386 // The entire AST should have been parsed and loaded at this point.
385 var source = _resolver.sources[id]; 387 var source = _resolver.sources[id];
386 if (source == null) { 388 if (source == null) {
387 _logger.error('Could not load asset $id'); 389 _logger.error('Could not load asset $id');
388 } 390 }
389 return source; 391 return source;
390 } 392 }
391 393
394 Uri resolveRelativeUri(Uri relativeUri) {
395 var id = _resolve(assetId, relativeUri.toString(), _logger, null);
396 if (id == null) return uri.resolveUri(relativeUri);
397
398 // The entire AST should have been parsed and loaded at this point.
399 var source = _resolver.sources[id];
400 if (source == null) {
401 _logger.error('Could not load asset $id');
402 }
403 return source.uri;
404 }
405
392 /// For logging errors. 406 /// For logging errors.
393 SourceSpan _getSpan(AstNode node, [String contents]) => 407 SourceSpan _getSpan(AstNode node, [String contents]) =>
394 _getSourceFile(contents).span(node.offset, node.end); 408 _getSourceFile(contents).span(node.offset, node.end);
395 /// For logging errors. 409 /// For logging errors.
396 SourceFile _getSourceFile([String contents]) { 410 SourceFile _getSourceFile([String contents]) {
397 var uri = getSourceUri(); 411 var uri = getSourceUri();
398 var path = uri != null ? uri.toString() : assetId.path; 412 var path = uri != null ? uri.toString() : assetId.path;
399 return new SourceFile(contents != null ? contents : rawContents, url: path); 413 return new SourceFile(contents != null ? contents : rawContents, url: path);
400 } 414 }
401 415
(...skipping 13 matching lines...) Expand all
415 return Uri.parse('package:${assetId.package}/${assetId.path.substring(4)}'); 429 return Uri.parse('package:${assetId.package}/${assetId.path.substring(4)}');
416 } 430 }
417 } 431 }
418 432
419 /// Implementation of Analyzer's UriResolver for Barback based assets. 433 /// Implementation of Analyzer's UriResolver for Barback based assets.
420 class _AssetUriResolver implements UriResolver { 434 class _AssetUriResolver implements UriResolver {
421 final ResolverImpl _resolver; 435 final ResolverImpl _resolver;
422 _AssetUriResolver(this._resolver); 436 _AssetUriResolver(this._resolver);
423 437
424 Source resolveAbsolute(Uri uri) { 438 Source resolveAbsolute(Uri uri) {
425 var assetId = _resolve(null, uri.toString(), logger, null); 439 assert(uri.scheme != 'dart');
426 if (assetId == null) { 440 var assetId;
427 logger.error('Unable to resolve asset ID for "$uri"'); 441 if (uri.scheme == 'asset') {
428 return null; 442 var parts = path.split(uri.path);
443 assetId = new AssetId(parts[0], path.joinAll(parts.skip(1)));
444 } else {
445 assetId = _resolve(null, uri.toString(), logger, null);
446 if (assetId == null) {
447 logger.error('Unable to resolve asset ID for "$uri"');
448 return null;
449 }
429 } 450 }
430 var source = _resolver.sources[assetId]; 451 var source = _resolver.sources[assetId];
431 // Analyzer expects that sources which are referenced but do not exist yet 452 // Analyzer expects that sources which are referenced but do not exist yet
432 // still exist, so just make an empty source. 453 // still exist, so just make an empty source.
433 if (source == null) { 454 if (source == null) {
434 source = new _AssetBasedSource(assetId, _resolver); 455 source = new _AssetBasedSource(assetId, _resolver);
435 _resolver.sources[assetId] = source; 456 _resolver.sources[assetId] = source;
436 } 457 }
437 return source; 458 return source;
438 } 459 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 560
540 void apply(ChangeSet changeSet) { 561 void apply(ChangeSet changeSet) {
541 if (!source.updateContents(content)) return; 562 if (!source.updateContents(content)) return;
542 if (source._revision == 1 && source._contents != null) { 563 if (source._revision == 1 && source._contents != null) {
543 changeSet.addedSource(source); 564 changeSet.addedSource(source);
544 } else { 565 } else {
545 changeSet.changedSource(source); 566 changeSet.changedSource(source);
546 } 567 }
547 } 568 }
548 } 569 }
OLDNEW
« no previous file with comments | « pkg/code_transformers/lib/src/dart_sdk.dart ('k') | pkg/code_transformers/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698