The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package autoclass_039::diamond::d1;
use base qw(Class::AutoClass);
 
use vars qw(@AUTO_ATTRIBUTES @OTHER_ATTRIBUTES @CLASS_ATTRIBUTES %SYNONYMS %DEFAULTS);
@AUTO_ATTRIBUTES=qw(auto_d1 dflt_d1);
@OTHER_ATTRIBUTES=qw(other_d1);
@CLASS_ATTRIBUTES=qw(class_d1);
%DEFAULTS=(dflt_d1=>'d1');
%SYNONYMS=(syn_d1=>'auto_d1');
Class::AutoClass::declare;

our @attr_groups=qw(auto other class syn dflt);
sub _init_self {
  my($self,$class,$args)=@_;
  my($base)=$class=~/::(\w+)$/;
  push(@{$self->{init_self_history}},$base);
  my @base_attrs=@{$args->attrs};
  my @attrs;
  for my $group (@attr_groups) {
    push(@attrs,map {$group.'_'.$_} @base_attrs);
  }
  push(@{$self->{init_self_state}},[$self->get(@attrs)]);
}
sub other_d1 {
  my $self=shift;
  @_? $self->{other_d1}=$_[0]: $self->{other_d1};
}
1;