/**
  * @return a map of header locations to input {@link SourcePath} objects formed by parsing the
  *     input {@link SourcePath} objects for the "headers" parameter.
  */
 public static ImmutableMap<Path, SourcePath> parseHeaders(
     BuildRuleParams params,
     BuildRuleResolver resolver,
     CxxPlatform cxxPlatform,
     CxxConstructorArg args) {
   ImmutableMap.Builder<String, SourcePath> headers = ImmutableMap.builder();
   SourcePathResolver pathResolver = new SourcePathResolver(resolver);
   putAllHeaders(args.headers.get(), headers, pathResolver, "headers", params.getBuildTarget());
   for (SourceList sourceList :
       args.platformHeaders.get().getMatchingValues(cxxPlatform.getFlavor().toString())) {
     putAllHeaders(sourceList, headers, pathResolver, "platform_headers", params.getBuildTarget());
   }
   return CxxPreprocessables.resolveHeaderMap(
       args.headerNamespace.transform(MorePaths.TO_PATH).or(params.getBuildTarget().getBasePath()),
       headers.build());
 }