anchor.diff:      for (var translation in usableTranslations) {
         // Some messages we generate as methods in this class. Simpler ones
         // we inline in the map from names to messages.
  -      var messagesThatNeedMethods =
  -          translation.originalMessages.where((each) => _hasArguments(each));
  +      var messagesThatNeedMethods = translation.originalMessages
  +          .where((each) => _hasArguments(each))
  +          .toSet()
  +          .toList();
         for (var original in messagesThatNeedMethods) {
           output
             ..write("  ")
  
positive.code: 
      // Now write the map of names to either the direct translation or to a
      // method.
      var entries = usableTranslations
          .expand((translation) => translation.originalMessages)
          .map((original) =>
              '    "${original.escapeAndValidateString(original.name)}" '
              ': ${_mapReference(original, locale)}');
  
negative.code:         .escapeAndValidateString(Intl.canonicalizedLocale(basicLocale));
      output.write(prologue(locale));
      // Exclude messages with no translation and translations with no matching
      // original message (e.g. if we're using some messages from a larger
      // catalog)
      var usableTranslations = translations
          .where((each) => each.originalMessages != null && each.message != null)
          .toList();
  