{"body":"use Tuple;\nuse ValueMap;\nunit class ValueClass::Attribute is Attribute;\n\nmethod compose(|) {\n  die \"Attributes { $.name } can't be rw on a value-class ({ ValueClass.^name })\" if $.rw;\n  nextsame\n}\n\n# method container_initializer(|c) {\n#\n#   say $.auto_viv_container;\n#\n#   # use nqp;\n#   # my $build = nqp::getattr(self<>, Attribute, '$!build_closure');\n#   # say $build;\n#   # say $build.(self.package, 1) if $build ~~ Callable;\n#   # # say $.^attributes.grep(*.name eq '$!build_closure').head.get_value: self;\n#   # say \"build => \", self.build.(self.package, 13) if self.build ~~ Callable;\n#   # \n#   # $.set_build: Any;\n#\n#   if $.name.starts-with: '@' {\n#     return -> { Tuple.new }\n#   } elsif $.name.starts-with: '%' {\n#     return -> { ValueMap.new }\n#   }\n#   nextsame\n# }\n\nmethod auto_viv_container(|c) {\n  use nqp;\n  my $build = nqp::getattr(self<>, Attribute, '$!build_closure');\n  my \\value = $build ~~ Callable ?? $build.($.package, 1) !! Empty;\n  if $.name.starts-with: '@' {\n    return Tuple.new: value\n  } elsif $.name.starts-with: '%' {\n    return ValueMap.new: value\n  }\n  nextsame\n}","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/rdy0pAZX","modified":1719683849,"id":"rdy0pAZX","size":1102,"lines":41,"own_paste":false,"theme":"","date":1719683849}