diff options
author | nharmata <nharmata@google.com> | 2017-07-25 17:39:09 +0200 |
---|---|---|
committer | Jakob Buchgraber <buchgr@google.com> | 2017-07-26 10:34:53 +0200 |
commit | de0c535f123acd5344723ca128ead5d4491aed9c (patch) | |
tree | 327e964f18d2c7b9eab765b94b2f30eafd1ab4c1 /src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternsFunction.java | |
parent | e24c97e4fd999ebf566fe30f614c569856a999b2 (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.java | 30 |
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(); |