aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/Package.java
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2016-06-03 14:38:19 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-06-06 08:01:16 +0000
commitd8b80c33dcddf50bcd155c7362c068bf18bcb1d4 (patch)
tree65c62b3afed09606cec7ddfb6621978568af02a7 /src/main/java/com/google/devtools/build/lib/packages/Package.java
parent55d55239add4a70e1a549090c4667212007c2110 (diff)
Make a 'did you mean' suggestion when referencing a non-existent label.
It works for both labels on the command-line and labels in BUILD files. -- MOS_MIGRATED_REVID=123967347
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/Package.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Package.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 8a666b0ecf..cbfeb5b17a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -34,6 +34,7 @@ import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.AttributeMap.AcceptsLabelAttribute;
import com.google.devtools.build.lib.packages.License.DistributionType;
import com.google.devtools.build.lib.util.Preconditions;
+import com.google.devtools.build.lib.util.SpellChecker;
import com.google.devtools.build.lib.vfs.Canonicalizer;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -528,7 +529,12 @@ public class Package {
suffix = "; however, a source file of this name exists. (Perhaps add "
+ "'exports_files([\"" + targetName + "\"])' to " + name + "/BUILD?)";
} else {
- suffix = "";
+ String suggestion = SpellChecker.suggest(targetName, targets.keySet());
+ if (suggestion != null) {
+ suffix = " (did you mean '" + suggestion + "'?)";
+ } else {
+ suffix = "";
+ }
}
throw makeNoSuchTargetException(targetName, suffix);