The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More;

{
    package OverloadingRole;
    use MooseX::Role::WithOverloading;

    use overload
        q{""}    => 'stringify',
        fallback => 1;

    sub stringify { 'moo' }
}

{
    package MyRole;
    use Moose::Role;

    has hitid => ( is => 'ro' );

    # Note ordering here. If metaclass reinitialization nukes attributes, we are screwed..
    with 'OverloadingRole';
}

{
    package Class;
    use Moose;

    with 'MyRole';
}

my $i = Class->new( hitid => 21 );

is("$i", 'moo', 'overloading works');
can_ok($i, 'hitid' );
is($i->hitid, 21, 'Attribute works');

done_testing;