anchor.diff:    }
   
     @override
  -  ngOnChanges(Map<String, SimpleChange> changes) {
  +  ngAfterChanges() {
       // If either the suggestions were changed or the value of sort was changed,
       // rebuild the list of options.
  -    if (changes.containsKey('suggestions') || changes.containsKey('sorted')) {
  -      var optionsList = new List.from(suggestions);
  -      if (sorted) {
  +    if (_refreshOptions) {
  +      var optionsList = new List.from(_suggestions);
  +      if (_sorted) {
           optionsList.sort();
         }
         options = new StringSelectionOptions(optionsList,
             toFilterableString: itemRenderer);
  +      _refreshOptions = false;
       }
     }
   
  
positive.code:   bool _focusPending = false;
    MaterialInputComponent _input;
    _InputChangeCallback _callback;
  
    /// The current text being displayed.
    String _inputText = '';
  
negative.code:   /// Sort the suggestions.
    @Deprecated('Caller should call .sort() instead.')
    @Input()
    set sorted(bool value) {
      _sorted = value;
      _refreshOptions = true;
    }
  
    bool get sorted => _sorted;
  
    /// Function for use by NgFor for optionGroup to avoid recreating the
    /// DOM for the optionGroup.
  