anchor.diff:            var getter = element.getter;
             var setter = element.setter;
             bool found = _checkSingleOverride(
  -              getter, baseType, variable, member, isSubclass);
  +              getter, baseType, variable.name, member, isSubclass);
             if (!variable.isFinal &&
                 !variable.isConst &&
                 _checkSingleOverride(
  -                  setter, baseType, variable, member, isSubclass)) {
  +                  setter, baseType, variable.name, member, isSubclass)) {
               found = true;
             }
             if (found) seen.add(name);
           }
  -      } else {
  -        if ((member as MethodDeclaration).isStatic) continue;
  -        var method = (member as MethodDeclaration).element;
  +      } else if (member is MethodDeclaration) {
  +        if (member.isStatic) continue;
  +        var method = member.element;
           if (seen.contains(method.name)) continue;
           if (_checkSingleOverride(
  -            method, baseType, member, member, isSubclass)) {
  +            method, baseType, member.name, member, isSubclass)) {
             seen.add(method.name);
           }
  +      } else {
  +        assert(member is ConstructorDeclaration);
         }
       }
     }
  
positive.code:       // assert(CoercionInfo.get(info.node) == null);
        CoercionInfo.set(info.node, info);
      }
    }
  
    DartType _specializedBinaryReturnType(
  
negative.code:   _checkIndividualOverridesFromClass(ClassDeclaration node,
        InterfaceType baseType, Set<String> seen, bool isSubclass) {
      for (var member in node.members) {
        if (member is FieldDeclaration) {
          if (member.isStatic) continue;
          for (var variable in member.fields.variables) {
  