anchor.diff:      return HType.UNKNOWN;
     }
   
  -  HType intersection(HType other, Compiler compiler) {
  +  HType intersectionOld(HType other, Compiler compiler) {
       if (other.isConflicting()) return HType.CONFLICTING;
       if (other.isUnknown()) return HType.DOUBLE_OR_NULL;
       if (other.isInteger()) return HType.CONFLICTING;
  
positive.code:     return new TypeMask.nonNullExact(computeType(compiler));
    }
  
    HType union(HType other, Compiler compiler) {
      if (other.isConflicting()) return HType.BOOLEAN;
      if (other.isUnknown()) return HType.UNKNOWN;
      if (other.isBoolean()) return HType.BOOLEAN;
  
negative.code: 
    DartType computeType(Compiler compiler) => null;
    TypeMask computeMask(Compiler compiler) => null;
  
    bool useOldIntersection() => true;
    bool useOldUnion() => true;
  }
  
  class HUnknownType extends HAnalysisType {
  