| Index: pkg/analyzer/lib/src/summary/link.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart
|
| index a97a11b7a794dfdc5aa788989eb7db2b5c5509f8..3d5a098b6b162df5da02c6ef1073340a847661a6 100644
|
| --- a/pkg/analyzer/lib/src/summary/link.dart
|
| +++ b/pkg/analyzer/lib/src/summary/link.dart
|
| @@ -146,21 +146,11 @@ Map<String, LinkedLibraryBuilder> setupForLink(Set<String> libraryUris,
|
| <String, LinkedLibraryBuilder>{};
|
| for (String absoluteUri in libraryUris) {
|
| Uri uri = Uri.parse(absoluteUri);
|
| -
|
| - UnlinkedUnit getRelativeUnit(String relativeUriStr) {
|
| - Uri relativeUri;
|
| - try {
|
| - relativeUri = Uri.parse(relativeUriStr);
|
| - } on FormatException {
|
| - return new UnlinkedUnitBuilder();
|
| - }
|
| - return getUnit(resolveRelativeUri(uri, relativeUri).toString());
|
| - }
|
| -
|
| linkedLibraries[absoluteUri] = prelink(
|
| + absoluteUri,
|
| getUnit(absoluteUri),
|
| - getRelativeUnit,
|
| - (String relativeUri) => getRelativeUnit(relativeUri)?.publicNamespace,
|
| + getUnit,
|
| + (String absoluteUri) => getUnit(absoluteUri)?.publicNamespace,
|
| getDeclaredVariable);
|
| }
|
| return linkedLibraries;
|
| @@ -3371,9 +3361,8 @@ abstract class LibraryElementForLink<
|
| continue;
|
| }
|
|
|
| - String partAbsoluteUri = resolveRelativeUri(
|
| - _absoluteUri, partRelativeUri)
|
| - .toString();
|
| + String partAbsoluteUri =
|
| + resolveRelativeUri(_absoluteUri, partRelativeUri).toString();
|
| UnlinkedUnit partUnit = _linker.getUnit(partAbsoluteUri);
|
| _units.add(_makeUnitElement(
|
| partUnit ?? new UnlinkedUnitBuilder(), i + 1, partAbsoluteUri));
|
| @@ -3415,19 +3404,19 @@ abstract class LibraryElementForLink<
|
| LibraryElementForLink _getDependency(int index) {
|
| LibraryElementForLink result = _dependencies[index];
|
| if (result == null) {
|
| - String relativeUriStr = _linkedLibrary.dependencies[index].uri;
|
| -
|
| - Uri relativeUri;
|
| - try {
|
| - relativeUri = Uri.parse(relativeUriStr);
|
| - } on FormatException {
|
| - return null;
|
| + Uri uri;
|
| + String uriStr = _linkedLibrary.dependencies[index].uri;
|
| + if (uriStr.isEmpty) {
|
| + uri = _absoluteUri;
|
| + } else {
|
| + try {
|
| + uri = Uri.parse(uriStr);
|
| + } on FormatException {
|
| + return null;
|
| + }
|
| }
|
|
|
| - Uri absoluteUri = relativeUriStr.isEmpty
|
| - ? _absoluteUri
|
| - : resolveRelativeUri(_absoluteUri, relativeUri);
|
| - result = _linker.getLibrary(absoluteUri);
|
| + result = _linker.getLibrary(uri);
|
| _dependencies[index] = result;
|
| }
|
| return result;
|
| @@ -3492,12 +3481,12 @@ class LibraryElementInBuildUnit
|
| Uri libraryUri = library._absoluteUri;
|
| List<String> partsRelativeToDependency =
|
| library.definingUnlinkedUnit.publicNamespace.parts;
|
| - List<String> partsRelativeToLibraryBeingLinked = partsRelativeToDependency
|
| + List<String> partsAbsolute = partsRelativeToDependency
|
| .map((partUri) =>
|
| resolveRelativeUri(libraryUri, Uri.parse(partUri)).toString())
|
| .toList();
|
| _linkedLibrary.dependencies.add(new LinkedDependencyBuilder(
|
| - parts: partsRelativeToLibraryBeingLinked, uri: libraryUri.toString()));
|
| + parts: partsAbsolute, uri: libraryUri.toString()));
|
| _dependencies.add(library);
|
| return result;
|
| }
|
|
|