anchor.diff:    }
   }
   
  -// TODO(fishythefish): Support 'any'.
   abstract class MoreSpecificVisitor<T extends DartType>
       extends AbstractTypeRelation<T> {
     bool isMoreSpecific(T t, T s) {
       if (identical(t, s) ||
  +        t.isAny ||
  +        s.isAny ||
           s.treatAsDynamic ||
           s.isVoid ||
           s == commonElements.objectType ||
  
positive.code: }
  
  /// Type visitor that determines the subtype relation two types.
  // TODO(fishythefish): Support 'any'.
  abstract class SubtypeVisitor<T extends DartType>
      extends MoreSpecificVisitor<T> {
    bool isSubtype(DartType t, DartType s) {
      if (s.isFutureOr) {
        FutureOrType sFutureOr = s;
        if (isSubtype(t, sFutureOr.typeArgument)) {
  
negative.code: /// Type visitor that determines one type could a subtype of another given the
  /// right type variable substitution. The computation is approximate and returns
  /// `false` only if we are sure no such substitution exists.
  abstract class PotentialSubtypeVisitor<T extends DartType>
      extends SubtypeVisitor<T> {
    bool _assumeInstantiations = true;
  
    @override
    bool isSubtype(DartType t, DartType s) {
      if (t.isAny || s.isAny) return true;
      if (t is TypeVariableType || s is TypeVariableType) {
        return true;
      }
  