anchor.diff:          class_.procedures.forEach(addMember);
           class_.fields.forEach(addMember);
           class_.constructors.forEach(addMember);
  +      } else if (extension_ != null) {
  +        extension_.members.forEach(addExtensionMember);
         } else {
           library.procedures.forEach(addMember);
           library.fields.forEach(addMember);
  
positive.code: 
  class _MemberTable {
    final _ClassTable parent;
    final Class class_; // Null for top-level.
    Map<String, Member> _members;
  
    Library get library => parent.library;
  
    _MemberTable(this.parent, this.class_);
  
    _MemberTable.topLevel(this.parent) : class_ = null;
  
    Map<String, Member> get members {
      if (_members == null) {
  
negative.code:       _classes = <String, _MemberTable>{};
        _classes[LibraryIndex.topLevel] = new _MemberTable.topLevel(this);
        for (var class_ in library.classes) {
          _classes[class_.name] = new _MemberTable.fromClass(this, class_);
        }
        for (var extension_ in library.extensions) {
          _classes[extension_.name] =
              new _MemberTable.fromExtension(this, extension_);
        }
        for (Reference reference in library.additionalExports) {
          NamedNode node = reference.node;
          if (node is Class) {
            _classes[node.name] = new _MemberTable.fromClass(this, node);
          } else if (node is Extension) {
            _classes[node.name] = new _MemberTable.fromExtension(this, node);
          }
        }
      }
  