8 'Test::Output' => '0.01',
11 # All tests are wrapped with lives_and because the stderr output tests will
12 # otherwise eat exceptions, and the test just dies silently.
29 ::stderr_like{ has foo => (
35 qr{\QAllowing a native trait to automatically supply a default is deprecated. You can avoid this warning by supply a default, builder, or making the attribute required at t/010_basics/030_deprecations.t line},
36 'Not providing a default for native String trait warns';
38 ::stderr_is{ has bar => (
43 } q{}, 'No warning when _default_is is set';
45 ::stderr_like{ Foo->new->bar }
46 qr{\QThe bar method in the Foo class was automatically created by the native delegation trait for the bar attribute. This "default is" feature is deprecated. Explicitly set "is" or define accessor names to avoid this at t/010_basics/030_deprecations.t line},
47 'calling a reader on a method created by a _default_is warns';
49 ::stderr_like{ with 'Role' =>
50 { excludes => ['thing'], alias => { thing => 'thing2' } };
52 qr/\QThe alias and excludes options for role application have been renamed -alias and -excludes (Foo is consuming Role - do you need to upgrade Foo?)/,
53 'passing excludes or alias with a leading dash warns';
55 !Foo->meta->has_method('thing'),
56 'thing method is excluded from role application'
59 Foo->meta->has_method('thing2'),
60 'thing2 method is created as alias in role application'
73 ::stderr_is{ has foo => (
77 builder => '_build_foo',
80 'Providing a builder for a String trait avoids default default warning';
91 'no default is assigned when reader is provided'
94 ::stderr_is{ Pack1->new->_bar } q{},
95 'Providing a reader for a String trait avoids default is warning';
99 sub _build_foo { q{} }
109 ::stderr_is{ has foo => (
110 traits => ['String'],
116 'Making a String trait required avoids default default warning';
119 traits => ['String'],
127 'no default is assigned when writer is provided'
130 ::stderr_is{ Pack2->new( foo => 'x' )->_bar('x') }
132 'Providing a writer for a String trait avoids default is warning';
143 ::stderr_is{ has foo => (
144 traits => ['String'],
150 'Making a String trait lazy_build avoids default default warning';
153 traits => ['String'],
161 'no default is assigned when accessor is provided'
164 ::stderr_is{ Pack3->new->_bar }
166 'Providing a accessor for a String trait avoids default is warning';
170 qr/\QThe alias and excludes options for role application have been renamed -alias and -excludes (Foo is consuming Role - do you need to upgrade Foo?)/,
171 'passing excludes or alias with a leading dash warns';
173 !Foo->meta->has_method('thing'),
174 'thing method is excluded from role application'
177 Foo->meta->has_method('thing2'),
178 'thing2 method is created as alias in role application'
179 >>>>>>> Move logic into Moose::Meta::Role for deprecation check of excludes and alias. Add friendlier wording to the warning. Update the test to check for new wording
182 sub _build_foo { q{} }