aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/cmdline
diff options
context:
space:
mode:
authorGravatar Justine Tunney <jart@google.com>2016-11-22 00:46:24 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-11-22 14:15:00 +0000
commit61affe77f9f5e5e7fcbbba7d8c2bcf8fbab776d5 (patch)
treecbfdf9b4eb30a6b7eb636f1d33e432559ee485e0 /src/main/java/com/google/devtools/build/lib/cmdline
parent7d32e255fb47bc2bb4e9ec1644ab272005758336 (diff)
Allow labels like @foo//:foo to be shortened @foo
Fixes #1924 RELNOTES: Labels like "@foo//:foo" can now be written as "@foo" in build files -- MOS_MIGRATED_REVID=139848658
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/cmdline')
-rw-r--r--src/main/java/com/google/devtools/build/lib/cmdline/Label.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
index b5a699023e..753909c130 100644
--- a/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
+++ b/src/main/java/com/google/devtools/build/lib/cmdline/Label.java
@@ -81,6 +81,7 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin
* <pre>
* //foo/bar
* //foo/bar:quux
+ * {@literal @}foo
* {@literal @}foo//bar
* {@literal @}foo//bar:baz
* </pre>
@@ -96,6 +97,7 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin
* <pre>
* //foo/bar
* //foo/bar:quux
+ * {@literal @}foo
* {@literal @}foo//bar
* {@literal @}foo//bar:baz
* </pre>
@@ -110,6 +112,9 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin
if (packageStartPos > 0) {
repo = absName.substring(0, packageStartPos);
absName = absName.substring(packageStartPos);
+ } else if (absName.startsWith("@")) {
+ repo = absName;
+ absName = "//:" + absName.substring(1);
}
try {
LabelValidator.PackageAndTarget labelParts = LabelValidator.parseAbsoluteLabel(absName);
@@ -324,7 +329,7 @@ public final class Label implements Comparable<Label>, Serializable, SkylarkPrin
public String getPackageName() {
return packageIdentifier.getPackageFragment().getPathString();
}
-
+
/**
* Returns the execution root for the workspace, relative to the execroot (e.g., for label
* {@code @repo//pkg:b}, it will returns {@code external/repo/pkg} and for label {@code //pkg:a},