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

Side by Side Diff: pkg/analyzer/lib/src/summary/package_bundle_reader.dart

Issue 2624193003: Work in progress: front end hot reload API (Closed)
Patch Set: First steel thread of functionality. Created 3 years, 11 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
OLDNEW
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/file_system/file_system.dart'; 4 import 'package:analyzer/file_system/file_system.dart';
5 import 'package:analyzer/src/context/cache.dart'; 5 import 'package:analyzer/src/context/cache.dart';
6 import 'package:analyzer/src/context/context.dart'; 6 import 'package:analyzer/src/context/context.dart';
7 import 'package:analyzer/src/dart/element/element.dart'; 7 import 'package:analyzer/src/dart/element/element.dart';
8 import 'package:analyzer/src/generated/engine.dart'; 8 import 'package:analyzer/src/generated/engine.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';
11 import 'package:analyzer/src/generated/source_io.dart'; 11 import 'package:analyzer/src/generated/source_io.dart';
12 import 'package:analyzer/src/generated/utilities_dart.dart'; 12 import 'package:analyzer/src/generated/utilities_dart.dart';
13 import 'package:analyzer/src/summary/format.dart'; 13 import 'package:analyzer/src/summary/format.dart';
14 import 'package:analyzer/src/summary/idl.dart'; 14 import 'package:analyzer/src/summary/idl.dart';
15 import 'package:analyzer/src/summary/resynthesize.dart'; 15 import 'package:analyzer/src/summary/resynthesize.dart';
16 import 'package:analyzer/src/task/dart.dart'; 16 import 'package:analyzer/src/task/dart.dart';
17 import 'package:analyzer/src/util/fast_uri.dart'; 17 import 'package:analyzer/src/util/fast_uri.dart';
18 import 'package:analyzer/task/dart.dart'; 18 import 'package:analyzer/task/dart.dart';
19 import 'package:analyzer/task/general.dart'; 19 import 'package:analyzer/task/general.dart';
20 import 'package:analyzer/task/model.dart'; 20 import 'package:analyzer/task/model.dart';
21 import 'package:path/path.dart' as pathos; 21 import 'package:front_end/src/base/source.dart';
22 22
23 /** 23 /**
24 * The [ResultProvider] that provides results from input package summaries. 24 * The [ResultProvider] that provides results from input package summaries.
25 */ 25 */
26 class InputPackagesResultProvider extends ResynthesizerResultProvider { 26 class InputPackagesResultProvider extends ResynthesizerResultProvider {
27 InputPackagesResultProvider( 27 InputPackagesResultProvider(
28 InternalAnalysisContext context, SummaryDataStore dataStore) 28 InternalAnalysisContext context, SummaryDataStore dataStore)
29 : super(context, dataStore) { 29 : super(context, dataStore) {
30 AnalysisContext sdkContext = context.sourceFactory.dartSdk.context; 30 AnalysisContext sdkContext = context.sourceFactory.dartSdk.context;
31 createResynthesizer(sdkContext, sdkContext.typeProvider); 31 createResynthesizer(sdkContext, sdkContext.typeProvider);
(...skipping 27 matching lines...) Expand all
59 } 59 }
60 return null; 60 return null;
61 } 61 }
62 } 62 }
63 63
64 /** 64 /**
65 * A placeholder of a source that is part of a package whose analysis results 65 * A placeholder of a source that is part of a package whose analysis results
66 * are served from its summary. This source uses its URI as [fullName] and has 66 * are served from its summary. This source uses its URI as [fullName] and has
67 * empty contents. 67 * empty contents.
68 */ 68 */
69 class InSummarySource extends Source { 69 class InSummarySource extends BasicSource {
70 final Uri uri;
71
72 /** 70 /**
73 * The summary file where this source was defined. 71 * The summary file where this source was defined.
74 */ 72 */
75 final String summaryPath; 73 final String summaryPath;
76 74
77 InSummarySource(this.uri, this.summaryPath); 75 InSummarySource(Uri uri, this.summaryPath) : super(uri);
78 76
79 @override 77 @override
80 TimestampedData<String> get contents => new TimestampedData<String>(0, ''); 78 TimestampedData<String> get contents => new TimestampedData<String>(0, '');
81 79
82 @override 80 @override
83 String get encoding => uri.toString();
84
85 @override
86 String get fullName => encoding;
87
88 @override
89 int get hashCode => uri.hashCode;
90
91 @override
92 bool get isInSystemLibrary => uri.scheme == DartUriResolver.DART_SCHEME;
93
94 @override
95 int get modificationStamp => 0; 81 int get modificationStamp => 0;
96 82
97 @override 83 @override
98 String get shortName => pathos.basename(fullName);
99
100 @override
101 UriKind get uriKind => UriKind.PACKAGE_URI; 84 UriKind get uriKind => UriKind.PACKAGE_URI;
102 85
103 @override 86 @override
104 bool operator ==(Object object) => object is Source && object.uri == uri;
105
106 @override
107 bool exists() => true; 87 bool exists() => true;
108 88
109 @override 89 @override
110 String toString() => uri.toString(); 90 String toString() => uri.toString();
111 } 91 }
112 92
113 /** 93 /**
114 * The [UriResolver] that knows about sources that are served from their 94 * The [UriResolver] that knows about sources that are served from their
115 * summaries. 95 * summaries.
116 */ 96 */
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 UnlinkedUnit getUnlinkedSummary(String uri) { 446 UnlinkedUnit getUnlinkedSummary(String uri) {
467 return _dataStore.unlinkedMap[uri]; 447 return _dataStore.unlinkedMap[uri];
468 } 448 }
469 449
470 @override 450 @override
471 bool hasLibrarySummary(String uri) { 451 bool hasLibrarySummary(String uri) {
472 LinkedLibrary linkedLibrary = _dataStore.linkedMap[uri]; 452 LinkedLibrary linkedLibrary = _dataStore.linkedMap[uri];
473 return linkedLibrary != null; 453 return linkedLibrary != null;
474 } 454 }
475 } 455 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698