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