Check the lexical scoping of the switch keywords.
(The actual behaviour is tested in t/op/switch.t)

__END__
# No switch; given should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
print STDOUT given;
EXPECT
Unquoted string "given" may clash with future reserved word at - line 3.
given
########
# No switch; when should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
print STDOUT when;
EXPECT
Unquoted string "when" may clash with future reserved word at - line 3.
when
########
# No switch; default should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
print STDOUT default;
EXPECT
Unquoted string "default" may clash with future reserved word at - line 3.
default
########
# No switch; break should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
print STDOUT break;
EXPECT
Unquoted string "break" may clash with future reserved word at - line 3.
break
########
# No switch; but continue is still a keyword
print STDOUT continue;
EXPECT
Can't "continue" outside a when block at - line 2.
########
# Use switch; so given is a keyword
use feature 'switch'; no warnings 'experimental::smartmatch';
given("okay\n") { print }
EXPECT
okay
########
# Use switch; so when is a keyword
use feature 'switch'; no warnings 'experimental::smartmatch';
given(1) { when(1) { print "okay" } }
EXPECT
okay
########
# Use switch; so default is a keyword
use feature 'switch'; no warnings 'experimental::smartmatch';
given(1) { default { print "okay" } }
EXPECT
okay
########
# Use switch; so break is a keyword
use feature 'switch';
break;
EXPECT
Can't "break" outside a given block at - line 3.
########
# switch out of scope; given should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
{ use feature 'switch';
  given (1) {print "Okay here\n";}
}
print STDOUT given;
EXPECT
Unquoted string "given" may clash with future reserved word at - line 6.
Okay here
given
########
# switch out of scope; when should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
{ use feature 'switch';
  given (1) { when(1) {print "Okay here\n";} }
}
print STDOUT when;
EXPECT
Unquoted string "when" may clash with future reserved word at - line 6.
Okay here
when
########
# switch out of scope; default should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
{ use feature 'switch';
  given (1) { default {print "Okay here\n";} }
}
print STDOUT default;
EXPECT
Unquoted string "default" may clash with future reserved word at - line 6.
Okay here
default
########
# switch out of scope; break should be a bareword.
use warnings; no warnings 'experimental::smartmatch';
{ use feature 'switch';
  given (1) { break }  
}
print STDOUT break;
EXPECT
Unquoted string "break" may clash with future reserved word at - line 6.
break
########
# C<no feature 'switch'> should work
use warnings; no warnings 'experimental::smartmatch';
use feature 'switch';
given (1) { when(1) {print "Okay here\n";} }
no feature 'switch';
print STDOUT when;
EXPECT
Unquoted string "when" may clash with future reserved word at - line 6.
Okay here
when
########
# C<no feature> should work too
use warnings; no warnings 'experimental::smartmatch';
use feature 'switch';
given (1) { when(1) {print "Okay here\n";} }
no feature;
print STDOUT when;
EXPECT
Unquoted string "when" may clash with future reserved word at - line 6.
Okay here
when
########
# Without the feature, no 'Unambiguous use of' warning:
use warnings; no warnings 'experimental::smartmatch';
@break = ($break = "break");
print ${break}, ${break[0]};
EXPECT
breakbreak
########
# With the feature, we get an 'Unambiguous use of' warning:
use warnings; no warnings 'experimental::smartmatch';
use feature 'switch';
@break = ($break = "break");
print ${break}, ${break[0]};
EXPECT
Ambiguous use of ${break} resolved to $break at - line 5.
Ambiguous use of ${break[...]} resolved to $break[...] at - line 5.
breakbreak
