anchor.diff:  
         for (ClassMember classMember
             in toSet(declaredMember.classBuilder, overriddenMembers)) {
  -        assert(useConsolidated || !classMember.hasDeclarations);
           Member overriddenMember = classMember.getMember(hierarchy);
           Substitution classSubstitution;
           if (classBuilder.cls != overriddenMember.enclosingClass) {
  
positive.code:     List<VariableDeclaration> declaredNamed = declaredFunction.namedParameters;
      for (ClassMember overriddenMember
          in toSet(declaredMember.classBuilder, overriddenMembers)) {
        assert(useConsolidated || !overriddenMember.hasDeclarations);
        Member bMember = overriddenMember.getMember(hierarchy);
        if (bMember is! Procedure) {
          debug?.log("Giving up 1");
  
negative.code:     Field declaredField = declaredMember.getMember(hierarchy);
      for (ClassMember overriddenMember
          in toSet(declaredMember.classBuilder, overriddenMembers)) {
        Member bTarget = overriddenMember.getMember(hierarchy);
        if (bTarget is Procedure) {
          if (bTarget.isSetter) {
  