From e0904eefeb3de113591e3af5d7badb5776939d3e Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Thu, 9 Apr 2020 13:41:05 -0700 Subject: [PATCH 1/2] Don't treat an embedded SDK as local unless it is defined in the default package. --- lib/src/model/package.dart | 20 +++++++++++++++++--- lib/src/model/package_builder.dart | 4 ++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/src/model/package.dart b/lib/src/model/package.dart index 1c23de3c2a..5443447416 100644 --- a/lib/src/model/package.dart +++ b/lib/src/model/package.dart @@ -152,9 +152,23 @@ class Package extends LibraryContainer /// was not excluded on the command line. bool get isLocal { if (_isLocal == null) { - _isLocal = (packageMeta == packageGraph.packageMeta || - packageGraph.hasEmbedderSdk && packageMeta.isSdk || - packageGraph.config.autoIncludeDependencies) && + _isLocal = ( + // Document as local if this is the default package. + packageMeta == packageGraph.packageMeta || + // Assume we want to document an embedded SDK as local if + // it has libraries defined in the default package. + // TODO(jcollins-g): Handle case where embedder SDKs can be + // assembled from multiple locations? + packageGraph.hasEmbedderSdk && + packageMeta.isSdk && + libraries.any( + (l) => path.isWithin(packageGraph.packageMeta.dir.path, + (l.element.source.fullName))) || + // autoIncludeDependencies means everything is local. + packageGraph.config.autoIncludeDependencies + ) && + // Regardless of the above rules, do not document as local if + // we excluded this package by name. !packageGraph.config.isPackageExcluded(name); } return _isLocal; diff --git a/lib/src/model/package_builder.dart b/lib/src/model/package_builder.dart index e3da440664..2862a55081 100644 --- a/lib/src/model/package_builder.dart +++ b/lib/src/model/package_builder.dart @@ -52,9 +52,9 @@ class PackageBuilder { return newGraph; } - DartSdk _sdk; + FolderBasedDartSdk _sdk; - DartSdk get sdk { + FolderBasedDartSdk get sdk { if (_sdk == null) { _sdk = FolderBasedDartSdk(PhysicalResourceProvider.INSTANCE, PhysicalResourceProvider.INSTANCE.getFolder(config.sdkDir)); From 9c1de3c4700eb288ab56e0a5b8963c79b2d803a1 Mon Sep 17 00:00:00 2001 From: Janice Collins Date: Thu, 9 Apr 2020 14:10:16 -0700 Subject: [PATCH 2/2] dartfmt --- lib/src/model/package.dart | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/src/model/package.dart b/lib/src/model/package.dart index 5443447416..c09be930a0 100644 --- a/lib/src/model/package.dart +++ b/lib/src/model/package.dart @@ -153,20 +153,19 @@ class Package extends LibraryContainer bool get isLocal { if (_isLocal == null) { _isLocal = ( - // Document as local if this is the default package. - packageMeta == packageGraph.packageMeta || - // Assume we want to document an embedded SDK as local if - // it has libraries defined in the default package. - // TODO(jcollins-g): Handle case where embedder SDKs can be - // assembled from multiple locations? - packageGraph.hasEmbedderSdk && - packageMeta.isSdk && - libraries.any( - (l) => path.isWithin(packageGraph.packageMeta.dir.path, + // Document as local if this is the default package. + packageMeta == packageGraph.packageMeta || + // Assume we want to document an embedded SDK as local if + // it has libraries defined in the default package. + // TODO(jcollins-g): Handle case where embedder SDKs can be + // assembled from multiple locations? + packageGraph.hasEmbedderSdk && + packageMeta.isSdk && + libraries.any((l) => path.isWithin( + packageGraph.packageMeta.dir.path, (l.element.source.fullName))) || - // autoIncludeDependencies means everything is local. - packageGraph.config.autoIncludeDependencies - ) && + // autoIncludeDependencies means everything is local. + packageGraph.config.autoIncludeDependencies) && // Regardless of the above rules, do not document as local if // we excluded this package by name. !packageGraph.config.isPackageExcluded(name);