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 fa6b290..a3e3477 100644 (file)
@@ -7,7 +7,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan (tests => 33);
+plan (tests => 41);
 
 use utf8;
 use open qw( :utf8 :std );
@@ -84,10 +84,36 @@ ok $::{"участники"}, "non-const sub declarations generate the right glo
 ok *{$::{"участники"}}{CODE};
 is *{$::{"участники"}}{CODE}->(), 1;
 
-TODO: {
-    our $TODO = "our isn't clean in this branch";
-    our $問 = 10;
-    is $問, 10;
-    is $main::問, 10;
-    is ${"main::\345\225\217"}, undef;
+sub 原 () { 1 }
+
+is grep({ $_ eq "\x{539f}"     } keys %::), 1, "Constant subs generate the right glob.";
+is grep({ $_ eq "\345\216\237" } keys %::), 0;
+
+#These should probably go elsewhere.
+eval q{ sub wròng1 (_$); wròng1(1,2) };
+like( $@, qr/Malformed prototype for main::wròng1/, 'Malformed prototype croak is clean.' );
+
+eval q{ sub ча::ики ($__); ча::ики(1,2) };
+like( $@, qr/Malformed prototype for ча::ики/ );
+
+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