diff --git a/lib/MetamodelX/Red/Dirtable.pm6 b/lib/MetamodelX/Red/Dirtable.pm6 index ec7010cb..2855e92f 100644 --- a/lib/MetamodelX/Red/Dirtable.pm6 +++ b/lib/MetamodelX/Red/Dirtable.pm6 @@ -46,7 +46,7 @@ method set-helper-attrs(Mu \type) { type.^add_attribute: $!dirty-old-values-attr; } -submethod !TWEAK_pr(\instance: *%data) { +submethod !TWEAK_pr(\instance: *%data) is rw { my @columns = instance.^columns; my %new = |@columns.map: { diff --git a/lib/MetamodelX/Red/Model.pm6 b/lib/MetamodelX/Red/Model.pm6 index 588f8e1f..638e1a7e 100644 --- a/lib/MetamodelX/Red/Model.pm6 +++ b/lib/MetamodelX/Red/Model.pm6 @@ -205,7 +205,7 @@ method add-column(::T Red::Model:U \type, Red::Attr::Column $attr) { } self.add-comparate-methods(T, $attr); if $attr.has_accessor { - if $attr.rw { + if type.^rw or $attr.rw { T.^add_multi_method: $name, method (Red::Model:D:) is rw { use nqp; nqp::getattr(self, self.WHAT, $attr.name)