whole_func_string: function expand(patterns, suffixes) {
          var globs = [],
              nonGlobs = [];
  
          // distinguish non-glob, full file paths so that we can add them without
          // needing to check for a suffix-match.
          patterns.forEach(function (pattern) {
              if (glob.hasMagic(pattern)) {
                  globs.push(pattern);
              } else if (grunt.file.isFile(pattern)) {
                  nonGlobs.push(pattern);
              }
          });
  
          var suffixesDefined = Array.isArray(suffixes) && suffixes.length > 0;
          var expandOptions = {
              // matchBase: true,
              filter: function (filePath) {
                  return grunt.file.isFile(filePath)
                      && (!suffixesDefined || hasSuffix(suffixes, filePath.toLowerCase()));
              }
          };
  
          // filter and expand globs
          var files = grunt.file.expand(expandOptions, globs);
          // concat non-glob file paths
          files = files.concat(nonGlobs);
          // resolve file paths
          return files.map(function (file) {
              return path.resolve(file);
          });
      }
func_code_string: function expand(patterns, suffixes) {
          var globs = [],
              nonGlobs = [];
  
          // distinguish non-glob, full file paths so that we can add them without
          // needing to check for a suffix-match.
          patterns.forEach(function (pattern) {
              if (glob.hasMagic(pattern)) {
                  globs.push(pattern);
              } else if (grunt.file.isFile(pattern)) {
                  nonGlobs.push(pattern);
              }
          });
  
          var suffixesDefined = Array.isArray(suffixes) && suffixes.length > 0;
          var expandOptions = {
              // matchBase: true,
              filter: function (filePath) {
                  return grunt.file.isFile(filePath)
                      && (!suffixesDefined || hasSuffix(suffixes, filePath.toLowerCase()));
              }
          };
  
          // filter and expand globs
          var files = grunt.file.expand(expandOptions, globs);
          // concat non-glob file paths
          files = files.concat(nonGlobs);
          // resolve file paths
          return files.map(function (file) {
              return path.resolve(file);
          });
      }
func_documentation_string: TODO: suffixes are deprecated. We'll remove related stuff when we permanently drop suffixes.