->clear_class_attribute_value( $self->name() );
};
-around 'inline_get' => sub {
- shift;
+override '_inline_instance_get' => sub {
my $self = shift;
return $self->associated_class()
->inline_get_class_slot_value( $self->slots() );
};
-around 'inline_set' => sub {
- shift;
+
+override _inline_weaken_value => sub {
+ my $self = shift;
+ my ($instance, $value) = @_;
+ return unless $self->is_weak_ref;
+
+ my $mi = $self->associated_class->get_meta_instance;
+ return (
+ $self->associated_class->inline_weaken_class_slot_value( $self->slots(), $value ),
+ 'if ref ' . $value . ';',
+ );
+};
+
+override '_inline_instance_set' => sub {
my $self = shift;
shift;
my $value = shift;
my $code
= $meta->inline_set_class_slot_value( $self->slots(), $value ) . ";";
- $code
- .= $meta->inline_weaken_class_slot_value( $self->slots(), $value )
- . " if ref $value;"
- if $self->is_weak_ref();
return $code;
};
-around 'inline_has' => sub {
- shift;
+override '_inline_instance_has' => sub {
my $self = shift;
return $self->associated_class()
->inline_is_class_slot_initialized( $self->slots() );
};
-around 'inline_clear' => sub {
- shift;
+override '_inline_clear_value' => sub {
my $self = shift;
return $self->associated_class()