diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScannerHelper.java b/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScannerHelper.java
index f19612a..0f7876d 100644
--- a/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScannerHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/includescanning/IncludeScannerHelper.java
@@ -41,13 +41,14 @@
   }
 
   /**
-   * Finds {@code source} in the given {@includePaths} as if it were #included as {@include}.
+   * Finds {@code source} in the given {@code includePaths} as if it were #included as {@code
+   * include}.
    *
-   * @return the index in {@includePaths} a #include_next directive should start searching from,
-   *         or -1 if the source file was not found.
+   * @return the index in {@code includePaths} a #include_next directive should start searching
+   *     from, or -1 if the source file was not found.
    */
-  private static int findContextPathPos(PathFragment include, Artifact source,
-      List<PathFragment> includePaths) {
+  private static int findContextPathPos(
+      PathFragment include, Artifact source, List<PathFragment> includePaths) {
     for (int i = 0; i < includePaths.size(); ++i) {
       PathFragment execPath = includePaths.get(i);
       if (execPath.getRelative(include).equals(source.getExecPath())) {
diff --git a/src/main/java/com/google/devtools/build/lib/includescanning/SwigIncludeParser.java b/src/main/java/com/google/devtools/build/lib/includescanning/SwigIncludeParser.java
index 024e8b9..1da43b9 100644
--- a/src/main/java/com/google/devtools/build/lib/includescanning/SwigIncludeParser.java
+++ b/src/main/java/com/google/devtools/build/lib/includescanning/SwigIncludeParser.java
@@ -43,8 +43,8 @@
     return pos;
   }
 
-  @Override
   /** See javadoc for {@link IncludeParser#getFileType()} */
+  @Override
   protected GrepIncludesFileType getFileType() {
     return GrepIncludesFileType.SWIG;
   }
