anchor.diff:    }
   
     void gotoLocation(NavigationLocation newLocation, {bool fireEvent: true}) {
  +    NavigationLocation previousLocation = _editorCurrentLocation;
  +    if (previousLocation == newLocation) return;
  +
       if (canGoForward()) {
         _locations.removeRange(_position + 1, _locations.length);
       }
   
  -    NavigationLocation previousLocation = _editorCurrentLocation;
       if (previousLocation != null) {
         if (_position < _locations.length) {
           _locations[_position] = previousLocation;
  
positive.code: 
    NavigationLocation(this.file, [this.selection = null]);
  
    String toString() => selection == null ? '[${file}]' : '[${file}, ${selection}]';
  }
  
  
negative.code: 
    Span(this.offset, [this.length = 0]);
  
    bool operator==(Span other) {
      if (other is! Span) return false;
      return offset == other.offset && other.length == other.length;
    }
  
    String toString() => '${offset}:${length}';
  }
  