anchor.diff:      if (_containedNames == null) {
         _containedNames = <String, ReferenceableElementForLink>{};
         // TODO(paulberry): what's the correct way to handle name conflicts?
  -      for (ClassElementForLink type in types) {
  +      for (ClassElementForLink_Class type in types) {
           _containedNames[type.name] = type;
  +      }
  +      for (ClassElementForLink_Enum enm in enums) {
  +        _containedNames[enm.name] = enm;
         }
         for (TopLevelVariableElementForLink variable in topLevelVariables) {
           _containedNames[variable.name] = variable;
  
positive.code:    */
    final List<ReferenceableElementForLink> _references;
  
    List<ClassElementForLink> _types;
    Map<String, ReferenceableElementForLink> _containedNames;
    List<TopLevelVariableElementForLink> _topLevelVariables;
  
    @override
    final LibraryElementForLink enclosingElement;
  
negative.code:         _unlinkedUnit = unlinkedUnit;
  
    @override
    List<ClassElementForLink_Enum> get enums {
      if (_enums == null) {
        _enums = <ClassElementForLink_Enum>[];
        for (UnlinkedEnum unlinkedEnum in _unlinkedUnit.enums) {
          _enums.add(new ClassElementForLink_Enum(unlinkedEnum));
        }
      }
      return _enums;
    }
  
    /**
     * Indicates whether this compilation element is part of the build unit
     * currently being linked.
     */
    bool get isInBuildUnit;
  
    @override
  