} @type_libs;
my %from;
- push @{ $from{ $types{ $_ } } }, $_ for @types;
+ for my $type (@types) {
+ die
+ "$caller asked for a type ($type) which is not found in any of the"
+ . " type libraries (@type_libs) combined by $class\n"
+ unless $types{$type};
+
+ push @{ $from{ $types{$type} } }, $type;
+ }
$_->import({ -into => $caller }, @{ $from{ $_ } })
for keys %from;
use warnings;
use FindBin;
use lib "$FindBin::Bin/lib";
-
-use Test::More tests => 4;
+
+use Test::More tests => 5;
+use Test::Exception;
BEGIN { use_ok 'Combined', qw/Foo2Alias MTFNPY NonEmptyStr/ }
is NonEmptyStr->name, 'TestLibrary2::NonEmptyStr',
'precedence for conflicting types is correct';
+
+throws_ok { Combined->import('NonExistentType') }
+qr/\Qmain asked for a type (NonExistentType) which is not found in any of the type libraries (TestLibrary TestLibrary2) combined by Combined/,
+'asking for a non-existent type from a combined type library gives a useful error';