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 d46d119e37bcb25f45ee8ceca912b9fda5f53b42..7b499395b5cbd6afcaf06ef84b5b2e56e0655807 100644 |
--- a/pkg/analyzer/lib/src/summary/link.dart |
+++ b/pkg/analyzer/lib/src/summary/link.dart |
@@ -3415,8 +3415,16 @@ abstract class LibraryElementForLink< |
* Return the [LibraryElement] corresponding to the given dependency [index]. |
*/ |
LibraryElementForLink _getDependency(int index) { |
- return _dependencies[index] ??= _linker.getLibrary(resolveRelativeUri( |
- _absoluteUri, Uri.parse(_linkedLibrary.dependencies[index].uri))); |
+ LibraryElementForLink result = _dependencies[index]; |
+ if (result == null) { |
+ String relativeUri = _linkedLibrary.dependencies[index].uri; |
+ Uri absoluteUri = relativeUri.isEmpty |
+ ? _absoluteUri |
+ : resolveRelativeUri(_absoluteUri, Uri.parse(relativeUri)); |
+ result = _linker.getLibrary(absoluteUri); |
+ _dependencies[index] = result; |
+ } |
+ return result; |
} |
/** |
@@ -3999,11 +4007,11 @@ class ParameterElementForLink_VariableSetter implements ParameterElementImpl { |
@override |
final PropertyAccessorElementForLink_Variable enclosingElement; |
- ParameterElementForLink_VariableSetter(this.enclosingElement); |
- |
@override |
bool inheritsCovariant = false; |
+ ParameterElementForLink_VariableSetter(this.enclosingElement); |
+ |
@override |
bool get isCovariant => false; |