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

Unified Diff: pkg/analyzer/lib/src/summary/pub_summary.dart

Issue 2278603003: Remove SDK extension support from PubSummaryManager. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer/test/src/summary/pub_summary_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/summary/pub_summary.dart
diff --git a/pkg/analyzer/lib/src/summary/pub_summary.dart b/pkg/analyzer/lib/src/summary/pub_summary.dart
index 92865703f5623869e3bce4faa03f068ed7ef5582..ed7221a3bd6ee43d410c962e0b5a1cce3ca3383b 100644
--- a/pkg/analyzer/lib/src/summary/pub_summary.dart
+++ b/pkg/analyzer/lib/src/summary/pub_summary.dart
@@ -11,12 +11,10 @@ import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
import 'package:analyzer/src/generated/parser.dart';
import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/generated/utilities_dart.dart';
import 'package:analyzer/src/summary/api_signature.dart';
import 'package:analyzer/src/summary/format.dart';
import 'package:analyzer/src/summary/idl.dart';
@@ -139,86 +137,6 @@ class PubSummaryManager {
pathos.Context get pathContext => resourceProvider.pathContext;
/**
- * Compute and return the linked bundle for the SDK extension for the given
- * [context], or `null` if none of the packages has an SDK extension. At most
- * one extension library is supported, if more than one is found, then an
- * error will be logged, and `null` returned.
- */
- PackageBundle computeSdkExtension(
- AnalysisContext context, PackageBundle sdkBundle) {
- // Prepare SDK extension library files.
- String libUriStr;
- String libPath;
- {
- Map<String, List<Folder>> packageMap = context.sourceFactory.packageMap;
- SdkExtensionFinder extFinder = new SdkExtensionFinder(packageMap);
- Map<String, String> sdkExtMappings = extFinder.urlMappings;
- if (sdkExtMappings.length == 1) {
- libUriStr = sdkExtMappings.keys.first;
- libPath = sdkExtMappings.values.first;
- } else if (sdkExtMappings.length > 1) {
- AnalysisEngine.instance.logger
- .logError('At most one _sdkext file is supported, '
- 'with at most one extension library. $sdkExtMappings found.');
- return null;
- } else {
- return null;
- }
- }
- // Compute the extension unlinked bundle.
- bool strong = context.analysisOptions.strongMode;
- PackageBundleAssembler assembler = new PackageBundleAssembler();
- try {
- File libFile = resourceProvider.getFile(libPath);
- Uri libUri = FastUri.parse(libUriStr);
- Source libSource = libFile.createSource(libUri);
- CompilationUnit libraryUnit = _parse(libSource, strong);
- // Add the library unit.
- assembler.addUnlinkedUnit(libSource, serializeAstUnlinked(libraryUnit));
- // Add part units.
- for (Directive directive in libraryUnit.directives) {
- if (directive is PartDirective) {
- Source partSource;
- {
- String partUriStr = directive.uri.stringValue;
- Uri partUri = resolveRelativeUri(libUri, FastUri.parse(partUriStr));
- pathos.Context pathContext = resourceProvider.pathContext;
- String partPath =
- pathContext.join(pathContext.dirname(libPath), partUriStr);
- File partFile = resourceProvider.getFile(partPath);
- partSource = partFile.createSource(partUri);
- }
- CompilationUnit partUnit = _parse(partSource, strong);
- assembler.addUnlinkedUnit(partSource, serializeAstUnlinked(partUnit));
- }
- }
- // Add the SDK and the unlinked extension bundle.
- PackageBundleBuilder unlinkedBuilder = assembler.assemble();
- SummaryDataStore store = new SummaryDataStore(const <String>[]);
- store.addBundle(null, sdkBundle);
- store.addBundle(null, unlinkedBuilder);
- // Link the extension bundle.
- Map<String, LinkedLibraryBuilder> linkedLibraries =
- link([libUriStr].toSet(), (String absoluteUri) {
- return store.linkedMap[absoluteUri];
- }, (String absoluteUri) {
- return store.unlinkedMap[absoluteUri];
- }, strong);
- if (linkedLibraries.length != 1) {
- return null;
- }
- // Append linked libraries into the assembler.
- linkedLibraries.forEach((uri, library) {
- assembler.addLinkedLibrary(uri, library);
- });
- List<int> bytes = assembler.assemble().toBuffer();
- return new PackageBundle.fromBuffer(bytes);
- } on FileSystemException {
- return null;
- }
- }
-
- /**
* Complete when the unlinked bundles for the package with the given [name]
* and the [libFolder] are computed and written to the files.
*
@@ -249,15 +167,6 @@ class PubSummaryManager {
return const <LinkedPubPackage>[];
}
- // Prepare all SDK bundles.
- List<PackageBundle> sdkBundles = <PackageBundle>[sdkBundle];
- {
- PackageBundle extension = computeSdkExtension(context, sdkBundle);
- if (extension != null) {
- sdkBundles.add(extension);
- }
- }
-
bool strong = context.analysisOptions.strongMode;
Map<PubPackage, PackageBundle> unlinkedBundles =
getUnlinkedBundles(context);
@@ -277,7 +186,7 @@ class PubSummaryManager {
Map<String, _LinkedNode> packageToNode = <String, _LinkedNode>{};
unlinkedBundles.forEach((package, unlinked) {
_LinkedNode node = new _LinkedNode(
- sdkBundles, listedPackages, package, unlinked, packageToNode);
+ sdkBundle, listedPackages, package, unlinked, packageToNode);
nodes.add(node);
packageToNode[package.name] = node;
});
@@ -293,10 +202,10 @@ class PubSummaryManager {
}
// Fill the store with bundles.
- // Append linked SDK bundles.
+ // Append the linked SDK bundle.
// Append unlinked and (if read from a cache) linked package bundles.
SummaryDataStore store = new SummaryDataStore(const <String>[]);
- sdkBundles.forEach((bundle) => store.addBundle(null, bundle));
+ store.addBundle(null, sdkBundle);
for (_LinkedNode node in nodes) {
store.addBundle(null, node.unlinked);
if (node.linked != null) {
@@ -626,7 +535,7 @@ class PubSummaryManager {
* Specialization of [Node] for linking packages in proper dependency order.
*/
class _LinkedNode extends Node<_LinkedNode> {
- final List<PackageBundle> sdkBundles;
+ final PackageBundle sdkBundle;
final _ListedPackages listedPackages;
final PubPackage package;
final PackageBundle unlinked;
@@ -639,7 +548,7 @@ class _LinkedNode extends Node<_LinkedNode> {
List<int> linkedNewBytes;
PackageBundle linked;
- _LinkedNode(this.sdkBundles, this.listedPackages, this.package, this.unlinked,
+ _LinkedNode(this.sdkBundle, this.listedPackages, this.package, this.unlinked,
this.packageToNode);
@override
@@ -655,9 +564,7 @@ class _LinkedNode extends Node<_LinkedNode> {
if (_linkedHash == null && transitiveDependencies != null) {
// Collect all unlinked API signatures.
List<String> signatures = <String>[];
- sdkBundles
- .map((sdkBundle) => sdkBundle.apiSignature)
- .forEach(signatures.add);
+ signatures.add(sdkBundle.apiSignature);
transitiveDependencies
.map((node) => node.unlinked.apiSignature)
.forEach(signatures.add);
« no previous file with comments | « no previous file | pkg/analyzer/test/src/summary/pub_summary_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698