package TestCase::Data::Weaken : public {
  use TestCase::Weaken;

  has data_weaken : public TestCase::Data::Weaken;
  has x : public int;
  has test_case : public TestCase::Weaken;
  has weaken2 : public TestCase::Data::Weaken;
  has test_cases : public TestCase::Weaken[];
  
  sub new : TestCase::Data::Weaken () {
    return new TestCase::Data::Weaken;
  }
  
  sub weaken_test_case : void ($self : self) {
    weaken $self->{test_case};
  }
}