anchor.diff:              isNonNullableByDefault: isNonNullableByDefault,
             );
   
  -          implemented = <Name, ExecutableElement>{}
  -            ..addAll(implemented)
  -            ..addAll(interfaceObj._implementedForMixing);
  +          implemented = <Name, ExecutableElement>{}..addAll(implemented);
  +          implemented.addEntries(
  +            interfaceObj.implemented.entries.where((entry) {
  +              var executable = entry.value;
  +              if (executable.isAbstract) {
  +                return false;
  +              }
  +              var class_ = executable.enclosingElement;
  +              return class_ is ClassElement && !class_.isDartCoreObject;
  +            }),
  +          );
  +
             superImplemented.add(implemented);
  -          implementedForMixing.addAll(interfaceObj._implementedForMixing);
           }
         }
       } finally {
         _processingClasses.remove(classElement);
  -    }
  -
  -    var thisImplemented = <Name, ExecutableElement>{};
  -    _addImplemented(thisImplemented, type);
  -
  -    if (classElement.isMixin) {
  -      implementedForMixing = thisImplemented;
  -    } else {
  -      implementedForMixing.addAll(thisImplemented);
       }
   
       implemented = <Name, ExecutableElement>{}..addAll(implemented);
  
positive.code:     const {},
      <Name>{},
      const {},
      const {},
      const [{}],
      const [],
    );
  
negative.code:     Map<Name, ExecutableElement> declared;
      Interface superInterface;
      Map<Name, ExecutableElement> implemented;
      try {
        // If a class declaration has a member declaration, the signature of that
        // member declaration becomes the signature in the interface.
  