Should traverse the dependencies, and pickup all licenses
Actual Behavior
The dict is not which are not list and is converted to a list of a dict so the labels are not traversed. Instead the keys from the dict should be traversed.
Steps to Reproduce the Problem
Define a rule which takes a attr.label_keyed_string_dict
Add a label as an input to that rule which has a license
Check that gather licenses using the rule defined above
Specifications
diff --git a/C:/dev/rules_license-0.0.4/rules/licenses_core.bzl b/rules_license/rules/licenses_core.bzl
index 42702bdb7d..fae491539e 100644
--- a/C:/dev/rules_license-0.0.4/rules/licenses_core.bzl
+++ b/rules_license/rules/licenses_core.bzl
@@ -74,7 +74,9 @@ def _get_transitive_licenses(ctx, trans_licenses, trans_deps, traces, provider,
a = getattr(ctx.rule.attr, name)
# Make anything singleton into a list for convenience.
- if type(a) != type([]):
+ if type(a) == type({}):
+ a = a.keys()
+ elif type(a) != type([]):
a = [a]
for dep in a:
# Ignore anything that isn't a target
Expected Behavior
Should traverse the dependencies, and pickup all licenses
Actual Behavior
The dict is not which are not list and is converted to a list of a dict so the labels are not traversed. Instead the keys from the dict should be traversed.
Steps to Reproduce the Problem
attr.label_keyed_string_dict
Specifications