summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/perl/t/lib/warnings/class
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/perl/t/lib/warnings/class')
-rw-r--r--gnu/usr.bin/perl/t/lib/warnings/class43
1 files changed, 43 insertions, 0 deletions
diff --git a/gnu/usr.bin/perl/t/lib/warnings/class b/gnu/usr.bin/perl/t/lib/warnings/class
new file mode 100644
index 00000000000..4cd8de1a92c
--- /dev/null
+++ b/gnu/usr.bin/perl/t/lib/warnings/class
@@ -0,0 +1,43 @@
+class.c warnings from 'class' feature
+__END__
+# experimental warnings
+use strict;
+use feature 'class';
+class C {
+ method m {}
+}
+EXPECT
+class is experimental at - line 4.
+method is experimental at - line 5.
+########
+# constructor warnings
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+class C { }
+C->new();
+eval { C->new('foo') }; # suppress error
+EXPECT
+Odd number of arguments passed to "C" constructor at - line 7.
+########
+# field shadowing warning
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+class C {
+ field $x;
+ field $x;
+}
+EXPECT
+"field" variable $x masks earlier declaration in same scope at - line 7.
+########
+# odd number of elements in field init
+use v5.36;
+use feature 'class';
+no warnings 'experimental::class';
+class C {
+ field %h = (1, 2, 3);
+}
+C->new;
+EXPECT
+Odd number of elements in hash field initialization at - line 6.