aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
diff options
context:
space:
mode:
authorGravatar nharmata <nharmata@google.com>2017-07-25 17:39:09 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-07-26 10:34:53 +0200
commitde0c535f123acd5344723ca128ead5d4491aed9c (patch)
tree327e964f18d2c7b9eab765b94b2f30eafd1ab4c1 /src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
parente24c97e4fd999ebf566fe30f614c569856a999b2 (diff)
Generalize some of methods in TargetPattern, PrepareDepsOfPatternValue, and RecursivePackageProvider dealing with the concept of "excluded directories".
RELNOTES: None PiperOrigin-RevId: 163074794
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
index 422462e723..3e48fab046 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java
@@ -20,7 +20,9 @@ import com.google.devtools.build.lib.cmdline.TargetParsingException;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.pkgcache.ParsingFailedEvent;
-import com.google.devtools.build.lib.skyframe.PrepareDepsOfPatternValue.PrepareDepsOfPatternSkyKeyOrException;
+import com.google.devtools.build.lib.skyframe.PrepareDepsOfPatternValue.PrepareDepsOfPatternSkyKeyException;
+import com.google.devtools.build.lib.skyframe.PrepareDepsOfPatternValue.PrepareDepsOfPatternSkyKeyValue;
+import com.google.devtools.build.lib.skyframe.PrepareDepsOfPatternValue.PrepareDepsOfPatternSkyKeysAndExceptions;
import com.google.devtools.build.lib.skyframe.PrepareDepsOfPatternsValue.TargetPatternSequence;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey;
import com.google.devtools.build.lib.util.Preconditions;
@@ -39,22 +41,24 @@ public class PrepareDepsOfPatternsFunction implements SkyFunction {
public static ImmutableList<SkyKey> getSkyKeys(SkyKey skyKey, ExtendedEventHandler eventHandler) {
TargetPatternSequence targetPatternSequence = (TargetPatternSequence) skyKey.argument();
- Iterable<PrepareDepsOfPatternSkyKeyOrException> keysMaybe =
+ PrepareDepsOfPatternSkyKeysAndExceptions prepareDepsOfPatternSkyKeysAndExceptions =
PrepareDepsOfPatternValue.keys(targetPatternSequence.getPatterns(),
targetPatternSequence.getOffset());
ImmutableList.Builder<SkyKey> skyKeyBuilder = ImmutableList.builder();
- for (PrepareDepsOfPatternSkyKeyOrException skyKeyOrException : keysMaybe) {
- try {
- skyKeyBuilder.add(skyKeyOrException.getSkyKey());
- } catch (TargetParsingException e) {
- // We post an event here rather than in handleTargetParsingException because the
- // TargetPatternFunction already posts an event unless the pattern cannot be parsed, in
- // which case the caller (i.e., us) needs to post an event.
- eventHandler.post(
- new ParsingFailedEvent(skyKeyOrException.getOriginalPattern(), e.getMessage()));
- handleTargetParsingException(eventHandler, skyKeyOrException.getOriginalPattern(), e);
- }
+ for (PrepareDepsOfPatternSkyKeyValue skyKeyValue
+ : prepareDepsOfPatternSkyKeysAndExceptions.getValues()) {
+ skyKeyBuilder.add(skyKeyValue.getSkyKey());
+ }
+ for (PrepareDepsOfPatternSkyKeyException skyKeyException
+ : prepareDepsOfPatternSkyKeysAndExceptions.getExceptions()) {
+ TargetParsingException e = skyKeyException.getException();
+ // We post an event here rather than in handleTargetParsingException because the
+ // TargetPatternFunction already posts an event unless the pattern cannot be parsed, in
+ // which case the caller (i.e., us) needs to post an event.
+ eventHandler.post(
+ new ParsingFailedEvent(skyKeyException.getOriginalPattern(), e.getMessage()));
+ handleTargetParsingException(eventHandler, skyKeyException.getOriginalPattern(), e);
}
return skyKeyBuilder.build();