Add some clarifying comments to CppCompilationContext.

--
MOS_MIGRATED_REVID=95738396
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
index e9b0ce5..2ba49d7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoCollection.java
@@ -31,7 +31,7 @@
  * <ul>
  * <li>The associated Target (which will usually be a Rule)
  * <li>Its own configuration (the configured target does not have access to other configurations,
- * e.g. the host configuration, though)
+ * e.g. the host configuration)
  * <li>The transitive info providers and labels of its direct dependencies.
  * </ul>
  *
@@ -70,7 +70,7 @@
  * <li>Serialize / deserialize individual configured targets at will, making it possible for
  * example to swap out part of the analysis state if there is memory pressure or to move them in
  * persistent storage so that the state can be reconstructed at a different time or in a
- * different process. The stretch goal is to eventually facilitate cross-uses caching of this
+ * different process. The stretch goal is to eventually facilitate cross-user caching of this
  * information.
  * </ul>
  *
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProvider.java
index 37ec191..ed83b04 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TransitiveInfoProvider.java
@@ -29,11 +29,11 @@
  * <li>Overloading a method name multiple times is forbidden.</li>
  * <li>The return type of a method must satisfy one of the following conditions:
  * <ul>
- * <li>It must be from the set of {String, Integer, int, Boolean, bool, Label, PathFragment,
+ *  <li>It must be from the set of {String, Integer, int, Boolean, bool, Label, PathFragment,
  * Artifact}, OR</li>
- * <li>it must be an ImmutableList/List/Collection/Iterable of T, where T is either
+ *  <li>it must be an ImmutableList/List/Collection/Iterable of T, where T is either
  * one of the types above with a default serializer or T implements ValueSerializer), OR</li>
- * <li>it must be serializable (TBD)</li>
+ *  <li>it must be serializable (TBD)</li>
  * </ul>
  * <li>If the method takes arguments, it must declare a custom serializer (TBD).</li>
  * </ul>
@@ -49,7 +49,8 @@
  * being O(n^2): in a long dependency chain, if every target adds one single artifact, storing the
  * transitive closures of every rule would take 1+2+3+...+n-1+n = O(n^2) memory.
  *
- * <p>In order to avoid this, we introduce the concept of nested sets. A nested set is an immutable
+ * <p>In order to avoid this, we introduce the concept of nested sets, {@link com.google.devtools
+ * .build.lib.collect.nestedset.NestedSet}. A nested set is an immutable
  * data structure that can contain direct members and other nested sets (recursively). Nested sets
  * are iterable and can be flattened into ordered sets, where the order depends on which
  * implementation of NestedSet you pick.