diff options
author | Mark Schaller <mschaller@google.com> | 2017-03-10 23:01:45 +0000 |
---|---|---|
committer | Vladimir Moskva <vladmos@google.com> | 2017-03-12 01:44:59 +0000 |
commit | fb2d38b34219b06cdbb280ad2ab5132b658dce8f (patch) | |
tree | 84a71463d08397adfccf4df780131f271603105a /src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java | |
parent | 56d0348dc53599fc44313a685aab98b4cf6a739c (diff) |
Improve query error msg when a package has a broken Skylark load
The error message logged during query (and build) when a package has a
broken Skylark load statement was not specific. Previously, it said
"package contains errors:" and then the package name.
Also, this error message was not emitted when using SkyQueryEnvironment
and evaluating a query containing a "TargetsBelowDirectory" pattern
(such as //foo/...) when a package below the specified directory had
such an error.
The approach taken by this CL is to include any package loading error
message in the SkyValue produced by
CollectPackagesUnderDirectoryFunction, and report them during
evaluation of a TargetsBelowDirectory pattern.
RELNOTES: Evaluation of commands on TargetsBelowDirectory patterns
(e.g. //foo/...) matching packages that fail to load now report more
detailed error messages in keep_going mode.
--
PiperOrigin-RevId: 149802362
MOS_MIGRATED_REVID=149802362
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java index 95cc59b5e7..58f79be753 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePkgFunction.java @@ -89,6 +89,13 @@ public class RecursivePkgFunction implements SkyFunction { packages.add(pkg.getName()); } + @Override + public void visitPackageError(NoSuchPackageException e, Environment env) + throws InterruptedException { + // Nothing to do because the RecursiveDirectoryTraversalFunction has already emitted an error + // event. + } + void addTransitivePackages(NestedSet<String> transitivePackages) { packages.addTransitive(transitivePackages); } |