Add the source location of the import string to the LoadStatement AST node, for use in tools.

--
MOS_MIGRATED_REVID=111142252
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
index 2985fd1..8e51987 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
@@ -1083,13 +1083,22 @@
 
   @Test
   public void testValidAbsoluteImportPath() {
+    String importString = "/some/skylark/file";
     List<Statement> statements =
-        parseFileForSkylark("load('/some/skylark/file', 'fun_test')\n");
+        parseFileForSkylark("load('" + importString + "', 'fun_test')\n");
     LoadStatement stmt = (LoadStatement) statements.get(0);
     SkylarkImport imp = stmt.getImport();
-    assertThat(imp.getImportString()).isEqualTo("/some/skylark/file");
-    assertThat(imp.hasAbsolutePath()).isTrue();
-    assertThat(imp.getAbsolutePath()).isEqualTo(new PathFragment("/some/skylark/file.bzl"));
+
+    assertThat(imp.getImportString()).named("getImportString()").isEqualTo("/some/skylark/file");
+    assertThat(imp.hasAbsolutePath()).named("hasAbsolutePath()").isTrue();
+    assertThat(imp.getAbsolutePath()).named("getAbsolutePath()")
+        .isEqualTo(new PathFragment("/some/skylark/file.bzl"));
+
+    int startOffset = stmt.getImportLocation().getStartOffset();
+    int endOffset = stmt.getImportLocation().getEndOffset();
+    assertThat(startOffset).named("getStartOffset()").isEqualTo(5);
+    assertThat(endOffset).named("getEndOffset()")
+        .isEqualTo(startOffset + importString.length() + 2);
   }
 
   private void validNonAbsoluteImportTest(String importString, String containingFileLabelString,
@@ -1098,11 +1107,19 @@
         parseFileForSkylark("load('" + importString + "', 'fun_test')\n");
     LoadStatement stmt = (LoadStatement) statements.get(0);
     SkylarkImport imp = stmt.getImport();
-    assertThat(imp.getImportString()).isEqualTo(importString);
-    assertThat(imp.hasAbsolutePath()).isFalse();
+
+    assertThat(imp.getImportString()).named("getImportString()").isEqualTo(importString);
+    assertThat(imp.hasAbsolutePath()).named("hasAbsolutePath()").isFalse();
+
     Label containingFileLabel = Label.parseAbsoluteUnchecked(containingFileLabelString);
-    assertThat(imp.getLabel(containingFileLabel))
-    .isEqualTo(Label.parseAbsoluteUnchecked(expectedLabelString));      
+    assertThat(imp.getLabel(containingFileLabel)).named("containingFileLabel()")
+        .isEqualTo(Label.parseAbsoluteUnchecked(expectedLabelString)); 
+
+    int startOffset = stmt.getImportLocation().getStartOffset();
+    int endOffset = stmt.getImportLocation().getEndOffset();
+    assertThat(startOffset).named("getStartOffset()").isEqualTo(5);
+    assertThat(endOffset).named("getEndOffset()")
+        .isEqualTo(startOffset + importString.length() + 2);
   }
 
   private void invalidImportTest(String importString, String expectedMsg) {