anchor.diff:          // superinterfaces. If the types are not the same then inference
           // fails with an error.
           if (!field.isFinal) {
  -          var combinedGetter = inheritance.combineSignatures(
  -            targetClass: currentClassElement,
  -            candidates: overriddenGetters,
  -            doTopMerge: true,
  -            name: getterName,
  -          );
  -          var getterType = combinedGetter?.returnType;
  -
  -          var combinedSetter = inheritance.combineSignatures(
  -            targetClass: currentClassElement,
  -            candidates: overriddenSetters,
  -            doTopMerge: true,
  -            name: setterName,
  -          );
  -          DartType setterType;
  -          if (combinedSetter != null) {
  -            setterType = combinedSetter.parameters[0].type;
  -          }
  +          var getterType = combinedGetterType();
  +          var setterType = combinedSetterType();
   
             if (getterType == setterType) {
  -            var type = getterType ?? _dynamicType;
  +            var type = getterType;
               type = nonNullifyType(typeSystem, type);
               field.type = type;
             } else {
  
positive.code:         // and a getter is inferred to be the return type of the combined
          // member signature of said getter in the direct superinterfaces.
          if (field.isFinal) {
            var combinedGetter = inheritance.combineSignatures(
              targetClass: currentClassElement,
              candidates: overriddenGetters,
              doTopMerge: true,
              name: getterName,
            );
            if (combinedGetter != null) {
              var type = combinedGetter.returnType;
              type = nonNullifyType(typeSystem, type);
              field.type = type;
            }
            return;
          }
  
  
negative.code:       // to be the return type of the combined member signature of said getter
        // in the direct superinterfaces.
        if (overriddenGetters.isNotEmpty && overriddenSetters.isEmpty) {
          parameter.type = combinedGetterType();
          return;
        }
  
  