anchor.diff:    /** Check whether this is a call to 'assert'. */
     bool isAssert() => isCall() && identical(name.stringValue, "assert");
   
  -  int get hashCode => argumentCount + 1000 * namedArguments.length;
     int get namedArgumentCount => namedArguments.length;
     int get positionalArgumentCount => argumentCount - namedArgumentCount;
   
  
positive.code: 
    bool operator ==(other) {
      if (other is !Selector) return false;
      return mask == other.mask && equalsUntyped(other);
    }
  
    bool equalsUntyped(Selector other) {
      return name == other.name
             && kind == other.kind
             && identical(library, other.library)
             && argumentCount == other.argumentCount
             && namedArguments.length == other.namedArguments.length
             && sameNames(namedArguments, other.namedArguments);
    }
  
    List<SourceString> getOrderedNamedArguments() {
  
negative.code: 
  class SelectorKind {
    final String name;
    final int hashCode;
    const SelectorKind(this.name, this.hashCode);
  
    static const SelectorKind GETTER = const SelectorKind('getter', 0);
    static const SelectorKind SETTER = const SelectorKind('setter', 1);
    static const SelectorKind CALL = const SelectorKind('call', 2);
    static const SelectorKind OPERATOR = const SelectorKind('operator', 3);
    static const SelectorKind INDEX = const SelectorKind('index', 4);
  
    String toString() => name;
  }
  