summaryrefslogtreecommitdiffstats
path: root/src/test/various_errors.t
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/various_errors.t')
-rw-r--r--src/test/various_errors.t61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/test/various_errors.t b/src/test/various_errors.t
new file mode 100644
index 0000000..48a8ece
--- /dev/null
+++ b/src/test/various_errors.t
@@ -0,0 +1,61 @@
+local $xxx ||= $yyy applying ||= on a new initialized variable is wrong
+
+$1 =~ s/xxx/yyy/ do not modify the result of a match (eg: $1)
+
+$xxx[1, 2] you must give only one argument
+
+$xxx[] you must give one argument
+
+my $_x = 'xxx' if $xxx; replace "my $foo = ... if <cond>" with "my $foo = <cond> && ..."
+
+$xxx or my $_x = 'xxx'; replace "<cond> or my $foo = ..." with "my $foo = !<cond> && ..."
+
+'' || 'xxx' <constant> || ... is the same as ...
+
+if ($xxx = '') {} are you sure you did not mean "==" instead of "="?
+
+N("xxx$yyy") don't use interpolated translated string, use %s or %d instead
+
+if ($xxx && $yyy = xxx()) {} invalid lvalue
+
+1 + 2 >> 3 missing parentheses (needed for clarity)
+
+$xxx ? $yyy = 1 : $zzz = 2; missing parentheses (needed for clarity)
+ invalid lvalue
+
+N_("xxx") . 'yyy' N_("xxx") . "yyy" is dumb since the string "xxx" will never get translated
+
+join(@l) first argument of join() must be a scalar
+
+join(',', 'foo') join('...', $foo) is the same as $foo
+
+if_($xxx) not enough parameters
+
+push @l you must give some arguments to push
+
+push $xxx, 1 push is expecting an array
+
+pop $xxx pop is expecting an array and nothing else
+
+my (@l2, $xxx) = @l; @l2 takes all the arguments, $xxx is undef in any case
+
+$bad undeclared variable $bad
+
+{ my $a } unused variable $a
+
+my $xxx; yyy($xxx); my $xxx; redeclared variable $xxx
+
+{ my $xxx; $xxx = 1 } variable $xxx assigned, but not read
+
+$a undeclared variable $a
+
+use bad; can't find package bad
+
+use pkg3 ':bad'; package pkg3 doesn't export tag :bad
+bad(); unknown function bad
+
+use pkg3 ':missing_fs'; name &f is not defined in package pkg3
+f(); name &f0 is not defined in package pkg3
+
+use pkg3 'f'; name &f is not defined in package pkg3
+f();