aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2018-01-15 04:55:38 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-15 04:57:08 -0800
commit822a8b311173f7fe90bf89686b406cec610e89b9 (patch)
treec19255d2fd5e06b14b527514594f6fb5ba4b9ee0 /src/main/java/com/google/devtools/build/lib/analysis
parent8d4182275c6c344ae37ff090b4721ac087f7ff75 (diff)
Do not crash if 'bind' and external repo generate the same //external: target.
Work towards #3676. The behavior is still incorrect (we should in fact disallow this), but at least there is no hard crash. Change-Id: I5181dba73ad725d20b2ea82b2f19e86664b9dbff PiperOrigin-RevId: 181954820
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index beb12bfa35..76fc7d314b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -157,9 +157,14 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
if (prerequisiteTarget instanceof Rule) {
Rule prerequisiteRule = (Rule) prerequisiteTarget;
String thisDeprecation =
- NonconfigurableAttributeMapper.of(rule).get("deprecation", Type.STRING);
+ NonconfigurableAttributeMapper.of(rule).has("deprecation", Type.STRING)
+ ? NonconfigurableAttributeMapper.of(rule).get("deprecation", Type.STRING)
+ : null;
String thatDeprecation =
- NonconfigurableAttributeMapper.of(prerequisiteRule).get("deprecation", Type.STRING);
+ NonconfigurableAttributeMapper.of(prerequisiteRule).has("deprecation", Type.STRING)
+ ? NonconfigurableAttributeMapper.of(prerequisiteRule)
+ .get("deprecation", Type.STRING)
+ : null;
if (shouldEmitDeprecationWarningFor(
thisDeprecation, thisPackage, thatDeprecation, thatPackage, forAspect)) {
errors.ruleWarning("target '" + rule.getLabel() + "' depends on deprecated target '"