diff options
author | 2016-05-23 17:39:42 +0000 | |
---|---|---|
committer | 2016-05-24 11:56:43 +0000 | |
commit | 4dfb22c4bad3dfa4dba46426c8587c0aa148d8d9 (patch) | |
tree | 5b09b10bef0e0ca634d237af86b6e9da7160f846 /src/main/java/com/google/devtools/build/lib/rules/extra | |
parent | fe206a490a2aa48c789c0edd35383407f44bc49b (diff) |
Allow use of Exceptions to exit early out of configured-target creation, instead of passing and checking null in all helpers.
Demonstrates this pattern usage in a few select rules (e.g. AndroidBinary) where this was particularly egregious.
There are many places which can benefit from this pattern -- this change doesn't try to fix them all at once.
--
MOS_MIGRATED_REVID=123012378
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/extra')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java | 3 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java index 0c7fbf950e..02c3201f58 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java +++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ActionListener.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.collect.ImmutableSortedKeyListMultimap; +import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.syntax.Type; @@ -35,7 +36,7 @@ import java.util.Set; */ public final class ActionListener implements RuleConfiguredTargetFactory { @Override - public ConfiguredTarget create(RuleContext ruleContext) { + public ConfiguredTarget create(RuleContext ruleContext) throws RuleErrorException { // This rule doesn't produce any output when listed as a build target. // Only when used via the --experimental_action_listener flag, // this rule instructs the build system to add additional outputs. diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java index e84cbcabd9..e1b3c11b99 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.syntax.Type; @@ -38,7 +39,7 @@ import java.util.List; */ public final class ExtraActionFactory implements RuleConfiguredTargetFactory { @Override - public ConfiguredTarget create(RuleContext context) { + public ConfiguredTarget create(RuleContext context) throws RuleErrorException { // This rule doesn't produce any output when listed as a build target. // Only when used via the --experimental_action_listener flag, // this rule instructs the build system to add additional outputs. |