diff options
author | 2018-01-15 04:55:38 -0800 | |
---|---|---|
committer | 2018-01-15 04:57:08 -0800 | |
commit | 822a8b311173f7fe90bf89686b406cec610e89b9 (patch) | |
tree | c19255d2fd5e06b14b527514594f6fb5ba4b9ee0 /src/main/java/com/google/devtools/build/lib/analysis | |
parent | 8d4182275c6c344ae37ff090b4721ac087f7ff75 (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.java | 9 |
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 '" |