This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
toke.c: 'No such class %s' cleanup.
[perl5.git] / t / uni / parser.t
index a939f9e..a3e3477 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan (tests => 37);
+plan (tests => 41);
 
 use utf8;
 use open qw( :utf8 :std );
@@ -96,10 +96,24 @@ like( $@, qr/Malformed prototype for main::wròng1/, 'Malformed prototype croak
 eval q{ sub ча::ики ($__); ча::ики(1,2) };
 like( $@, qr/Malformed prototype for ча::ики/ );
 
-TODO: {
-    our $TODO = "our isn't clean in this branch";
-    our $問 = 10;
-    is $問, 10;
-    is $main::問, 10;
-    is ${"main::\345\225\217"}, undef;
+our $問 = 10;
+is $問, 10, "our works";
+is $main::問, 10, "...as does getting the same variable through the fully qualified name";
+is ${"main::\345\225\217"}, undef, "..and using the encoded form doesn't";
+
+{
+    use charnames qw( :full );
+
+    eval qq! my \$\x{30cb} \N{DROMEDARY CAMEL} !;
+    is $@, 'Unrecognized character \x{1f42a}; marked by <-- HERE after  my $ニ <-- HERE near column 8 at (eval 11) line 1.
+', "'Unrecognized character' croak is UTF-8 clean";
 }
+
+{
+    use feature 'state';
+    for ( qw( my state our ) ) {
+        local $@;
+        eval "$_ Foo $x = 1;";
+        like $@, qr/No such class Foo/u, "'No such class' warning for $_ is UTF-8 clean";
+    }
+}
\ No newline at end of file