anchor.diff:    bool get isBottom => true;
   
     @override
  -  NullabilitySuffix get nullabilitySuffix => NullabilitySuffix.none;
  +  bool get isDartCoreNull {
  +    // `Never?` is equivalent to `Null`, so make sure it behaves the same.
  +    return nullabilitySuffix == NullabilitySuffix.question;
  +  }
   
     @override
     bool operator ==(Object object) => identical(object, this);
  
positive.code:  */
  class BottomTypeImpl extends TypeImpl {
    /**
     * The unique instance of this class.
     */
    static final BottomTypeImpl instance = new BottomTypeImpl._();
  
    /**
     * Prevent the creation of instances of this class.
     */
    BottomTypeImpl._() : super(new NeverElementImpl(), "Never") {
      (element as NeverElementImpl).type = this;
    }
  
  
negative.code: 
    @override
    TypeImpl withNullability(NullabilitySuffix nullabilitySuffix) {
      switch (nullabilitySuffix) {
        case NullabilitySuffix.question:
          return instanceNullable;
        case NullabilitySuffix.star:
          // This should never happen.  Converting `Never` to a legacy type should
          // yield `Null`, because prior to NNBD, `Null` was at the bottom of the
          // type hierarchy.
          //
          // However, due to bugs elsewhere in the analyzer, this does still
          // happen sometimes, so for now just coerce to `Never?`.
          // TODO(paulberry): change this to throw an exception.
          return instanceNullable;
        case NullabilitySuffix.none:
          return instance;
      }
      throw StateError('Unexpected nullabilitySuffix: $nullabilitySuffix');
    }
  }
  
  