OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 serialization.elements; | 5 library serialization.elements; |
6 | 6 |
7 import 'dart:convert'; | 7 import 'dart:convert'; |
8 | 8 |
9 import 'package:analyzer/dart/ast/ast.dart'; | 9 import 'package:analyzer/dart/ast/ast.dart'; |
10 import 'package:analyzer/dart/element/element.dart'; | 10 import 'package:analyzer/dart/element/element.dart'; |
11 import 'package:analyzer/dart/element/type.dart'; | 11 import 'package:analyzer/dart/element/type.dart'; |
12 import 'package:analyzer/src/dart/element/element.dart'; | 12 import 'package:analyzer/src/dart/element/element.dart'; |
13 import 'package:analyzer/src/dart/element/member.dart'; | 13 import 'package:analyzer/src/dart/element/member.dart'; |
14 import 'package:analyzer/src/dart/element/type.dart'; | 14 import 'package:analyzer/src/dart/element/type.dart'; |
15 import 'package:analyzer/src/generated/resolver.dart'; | 15 import 'package:analyzer/src/generated/resolver.dart'; |
16 import 'package:analyzer/src/generated/source.dart'; | 16 import 'package:analyzer/src/generated/source.dart'; |
17 import 'package:analyzer/src/generated/utilities_dart.dart'; | 17 import 'package:analyzer/src/generated/utilities_dart.dart'; |
18 import 'package:analyzer/src/summary/api_signature.dart'; | 18 import 'package:analyzer/src/summary/api_signature.dart'; |
19 import 'package:analyzer/src/summary/format.dart'; | 19 import 'package:analyzer/src/summary/format.dart'; |
20 import 'package:analyzer/src/summary/idl.dart'; | 20 import 'package:analyzer/src/summary/idl.dart'; |
21 import 'package:analyzer/src/summary/name_filter.dart'; | 21 import 'package:analyzer/src/summary/name_filter.dart'; |
22 import 'package:analyzer/src/summary/package_bundle_reader.dart'; | 22 import 'package:analyzer/src/summary/package_bundle_reader.dart'; |
23 import 'package:analyzer/src/summary/summarize_const_expr.dart'; | 23 import 'package:analyzer/src/summary/summarize_const_expr.dart'; |
24 import 'package:convert/convert.dart'; | 24 import 'package:convert/convert.dart'; |
25 import 'package:crypto/crypto.dart'; | 25 import 'package:crypto/crypto.dart'; |
26 import 'package:path/path.dart' as path; | |
27 | 26 |
28 /** | 27 /** |
29 * Serialize all the elements in [lib] to a summary using [ctx] as the context | 28 * Serialize all the elements in [lib] to a summary using [ctx] as the context |
30 * for building the summary, and using [typeProvider] to find built-in types. | 29 * for building the summary, and using [typeProvider] to find built-in types. |
31 */ | 30 */ |
32 LibrarySerializationResult serializeLibrary( | 31 LibrarySerializationResult serializeLibrary( |
33 LibraryElement lib, TypeProvider typeProvider, bool strongMode) { | 32 LibraryElement lib, TypeProvider typeProvider, bool strongMode) { |
34 _LibrarySerializer serializer = | 33 _LibrarySerializer serializer = |
35 new _LibrarySerializer(lib, typeProvider, strongMode); | 34 new _LibrarySerializer(lib, typeProvider, strongMode); |
36 LinkedLibraryBuilder linked = serializer.serializeLibrary(); | 35 LinkedLibraryBuilder linked = serializer.serializeLibrary(); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 final bool _excludeHashes; | 146 final bool _excludeHashes; |
148 | 147 |
149 /** | 148 /** |
150 * Create a [PackageBundleAssembler]. If [excludeHashes] is `true`, hash | 149 * Create a [PackageBundleAssembler]. If [excludeHashes] is `true`, hash |
151 * computation will be skipped. | 150 * computation will be skipped. |
152 */ | 151 */ |
153 PackageBundleAssembler({bool excludeHashes: false}) | 152 PackageBundleAssembler({bool excludeHashes: false}) |
154 : _excludeHashes = excludeHashes, | 153 : _excludeHashes = excludeHashes, |
155 _unlinkedUnitHashes = excludeHashes ? null : <String>[]; | 154 _unlinkedUnitHashes = excludeHashes ? null : <String>[]; |
156 | 155 |
157 /** | |
158 * Add a fallback library to the package bundle, corresponding to the library | |
159 * whose defining compilation unit is located at [source]. Caller must also | |
160 * call [addFallbackUnit] for all compilation units contained in the library | |
161 * (including the defining compilation unit). | |
162 */ | |
163 void addFallbackLibrary(Source source) { | |
164 String uri = source.uri.toString(); | |
165 _linkedLibraryUris.add(uri); | |
166 _linkedLibraries.add(new LinkedLibraryBuilder(fallbackMode: true)); | |
167 } | |
168 | |
169 /** | |
170 * Add a fallback compilation unit to the package bundle, corresponding to | |
171 * the compilation unit located at [source]. | |
172 */ | |
173 void addFallbackUnit(Source source) { | |
174 String uri = source.uri.toString(); | |
175 UnlinkedUnitBuilder unit = new UnlinkedUnitBuilder( | |
176 fallbackModePath: path.relative(source.fullName)); | |
177 _unlinkedUnitUris.add(uri); | |
178 _unlinkedUnits.add(unit); | |
179 _unlinkedUnitMap[uri] = unit; | |
180 } | |
181 | |
182 void addLinkedLibrary(String uri, LinkedLibraryBuilder library) { | 156 void addLinkedLibrary(String uri, LinkedLibraryBuilder library) { |
183 _linkedLibraries.add(library); | 157 _linkedLibraries.add(library); |
184 _linkedLibraryUris.add(uri); | 158 _linkedLibraryUris.add(uri); |
185 } | 159 } |
186 | 160 |
187 void addUnlinkedUnit(Source source, UnlinkedUnitBuilder unit) { | 161 void addUnlinkedUnit(Source source, UnlinkedUnitBuilder unit) { |
188 addUnlinkedUnitWithHash(source.uri.toString(), unit, | 162 addUnlinkedUnitWithHash(source.uri.toString(), unit, |
189 _excludeHashes ? null : _hash(source.contents.data)); | 163 _excludeHashes ? null : _hash(source.contents.data)); |
190 } | 164 } |
191 | 165 |
(...skipping 1518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1710 exportNames.add(new LinkedExportNameBuilder( | 1684 exportNames.add(new LinkedExportNameBuilder( |
1711 name: name, | 1685 name: name, |
1712 dependency: serializeDependency(dependentLibrary), | 1686 dependency: serializeDependency(dependentLibrary), |
1713 unit: unit, | 1687 unit: unit, |
1714 kind: kind)); | 1688 kind: kind)); |
1715 } | 1689 } |
1716 pb.exportNames = exportNames; | 1690 pb.exportNames = exportNames; |
1717 return pb; | 1691 return pb; |
1718 } | 1692 } |
1719 } | 1693 } |
OLD | NEW |