diff options
author | 2016-11-22 00:46:24 +0000 | |
---|---|---|
committer | 2016-11-22 14:15:00 +0000 | |
commit | 61affe77f9f5e5e7fcbbba7d8c2bcf8fbab776d5 (patch) | |
tree | cbfdf9b4eb30a6b7eb636f1d33e432559ee485e0 /src/main/java/com/google/devtools/build/lib/cmdline | |
parent | 7d32e255fb47bc2bb4e9ec1644ab272005758336 (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.java | 7 |
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}, |