| Index: pkg/analyzer/lib/src/summary/resynthesize.dart
 | 
| diff --git a/pkg/analyzer/lib/src/summary/resynthesize.dart b/pkg/analyzer/lib/src/summary/resynthesize.dart
 | 
| index 61955d0494364a4c23d49780ae3adfbb03981cce..32ce287f80591789335a03a2e1dbeb67f66b1a98 100644
 | 
| --- a/pkg/analyzer/lib/src/summary/resynthesize.dart
 | 
| +++ b/pkg/analyzer/lib/src/summary/resynthesize.dart
 | 
| @@ -97,19 +97,29 @@ abstract class SummaryResynthesizer extends ElementResynthesizer {
 | 
|      if (components.length == 1) {
 | 
|        return getLibraryElement(libraryUri);
 | 
|      } else if (components.length == 2) {
 | 
| -      Map<String, CompilationUnitElement> libraryMap =
 | 
| -          _resynthesizedUnits[libraryUri];
 | 
| -      if (libraryMap == null) {
 | 
| -        getLibraryElement(libraryUri);
 | 
| -        libraryMap = _resynthesizedUnits[libraryUri];
 | 
| +      LibraryElement libraryElement = getLibraryElement(libraryUri);
 | 
| +      // Try to find the unit element.
 | 
| +      {
 | 
| +        Map<String, CompilationUnitElement> libraryMap =
 | 
| +            _resynthesizedUnits[libraryUri];
 | 
|          assert(libraryMap != null);
 | 
| +        String unitUri = components[1];
 | 
| +        CompilationUnitElement unitElement = libraryMap[unitUri];
 | 
| +        if (unitElement != null) {
 | 
| +          return unitElement;
 | 
| +        }
 | 
|        }
 | 
| -      String unitUri = components[1];
 | 
| -      CompilationUnitElement element = libraryMap[unitUri];
 | 
| -      if (element == null) {
 | 
| -        throw new Exception('Unit element not found in summary: $location');
 | 
| +      // Try to find the prefix element.
 | 
| +      {
 | 
| +        String name = components[1];
 | 
| +        for (PrefixElement prefix in libraryElement.prefixes) {
 | 
| +          if (prefix.name == name) {
 | 
| +            return prefix;
 | 
| +          }
 | 
| +        }
 | 
|        }
 | 
| -      return element;
 | 
| +      // Fail.
 | 
| +      throw new Exception('The element not found in summary: $location');
 | 
|      } else if (components.length == 3 || components.length == 4) {
 | 
|        String unitUri = components[1];
 | 
|        // Prepare elements-in-units in the library.
 | 
| @@ -1802,6 +1812,12 @@ class _UnitResynthesizer {
 | 
|            locationComponents =
 | 
|                libraryResynthesizer.getReferencedLocationComponents(
 | 
|                    linkedReference.dependency, linkedReference.unit, identifier);
 | 
| +          if (linkedReference.kind == ReferenceKind.prefix) {
 | 
| +            locationComponents = <String>[
 | 
| +              locationComponents[0],
 | 
| +              locationComponents[2]
 | 
| +            ];
 | 
| +          }
 | 
|          }
 | 
|          if (!_resynthesizerContext.isStrongMode &&
 | 
|              locationComponents.length == 3 &&
 | 
| @@ -1875,6 +1891,8 @@ class _UnitResynthesizer {
 | 
|              }
 | 
|              break;
 | 
|            case ReferenceKind.prefix:
 | 
| +            element = new PrefixElementHandle(summaryResynthesizer, location);
 | 
| +            break;
 | 
|            case ReferenceKind.unresolved:
 | 
|              break;
 | 
|          }
 | 
| 
 |