rule/rule.go
func (r *Rule) SetAttr(key string, value interface{}) {
	rhs := ExprFromValue(value)
	if attr, ok := r.attrs[key]; ok {
		attr.RHS = rhs
	} else {
		r.attrs[key] = &bzl.AssignExpr{
			LHS: &bzl.Ident{Name: key},
			RHS: rhs,
			Op:  "=",
		}
	}
	r.updated = true
}
func (r *Rule) SetAttr(key string, value interface{}) {
	rhs := ExprFromValue(value)
	if attr, ok := r.attrs[key]; ok {
		attr.RHS = rhs
	} else {
		r.attrs[key] = &bzl.AssignExpr{
			LHS: &bzl.Ident{Name: key},
			RHS: rhs,
			Op:  "=",
		}
	}
	r.updated = true
}
// SetAttr adds or replaces the named attribute with an expression produced
// by ExprFromValue.