docs: @Override
    protected void visitSoyFileSetNode(SoyFileSetNode node) {
      // Figure out the generated class name for each Soy file, including adding number suffixes
      // to resolve collisions, and then adding the common suffix "SoyInfo".
      Multimap<String, SoyFileNode> baseGeneratedClassNameToSoyFilesMap = HashMultimap.create();
      for (SoyFileNode soyFile : node.getChildren()) {
        baseGeneratedClassNameToSoyFilesMap.put(
            javaClassNameSource.generateBaseClassName(soyFile), soyFile);
      }
      soyFileToJavaClassNameMap = Maps.newHashMap();
      for (String baseClassName : baseGeneratedClassNameToSoyFilesMap.keySet()) {
        Collection<SoyFileNode> soyFiles = baseGeneratedClassNameToSoyFilesMap.get(baseClassName);
        if (soyFiles.size() == 1) {
          for (SoyFileNode soyFile : soyFiles) {
            soyFileToJavaClassNameMap.put(soyFile, baseClassName + "SoyInfo");
          }
        } else {
          int numberSuffix = 1;
          for (SoyFileNode soyFile : soyFiles) {
            soyFileToJavaClassNameMap.put(soyFile, baseClassName + numberSuffix + "SoyInfo");
            numberSuffix++;
          }
        }
      }
  
      // Run the pass.
      for (SoyFileNode soyFile : node.getChildren()) {
        visit(soyFile);
      }
    }