Skip to content

Commit 94859a3

Browse files
committed
Examples compilation now returns first chars of failing code
This closes #2048. Also fixes an error in traps.
1 parent e794ebb commit 94859a3

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

doc/Language/traps.pod6

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ You can purposefully assign C<Nil> as a default value:
5959
6060
=begin code
6161
my %h is default(Nil) = a => Nil;
62-
dd %h; # OUTPUT: «Hash %h = {:a(Nil)}␤»
62+
say %h; # OUTPUT: «Hash %h = {:a(Nil)}␤»
6363
=end code
6464
6565
Or bind a value to C<Nil> if that is the result you want:
6666
67-
=begin code
67+
=begin code :preamble<my @a = 1,2,3,4;>
6868
@a[3] := Nil;
6969
say @a; # OUTPUT: «[4 8 (Any) Nil]␤»
7070
=end code

xt/examples-compilation.t

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ for @examples -> $eg {
7676

7777
# #1355 - don't like .WHAT in examples
7878
if ! $eg<ok-test>.contains('WHAT') && $eg<contents>.contains('.WHAT') {
79-
flunk "$eg<file> chunk $eg<count>" ~ ' uses .WHAT: try .^name instead';
79+
flunk "$eg<file> chunk starting with «" ~ starts-with($eg<contents>) ~ '» uses .WHAT: try .^name instead';
8080
next;
8181
}
8282
if ! $eg<ok-test>.contains('dd') && $eg<contents> ~~ / << 'dd' >> / {
83-
flunk "$eg<file> chunk $eg<count>" ~ ' uses dd: try say instead';
83+
flunk "$eg<file> chunk starting with «" ~ starts-with($eg<contents>) ~ '» uses dd: try say instead';
8484
next;
8585
}
8686

@@ -104,7 +104,7 @@ for @examples -> $eg {
104104
$code ~= "\{}\n" if $eg<method> eq "True";
105105
$code ~= "\n}}";
106106

107-
my $msg = "$eg<file> chunk $eg<count> starts with “" ~ ($eg<contents>.lines)[0].substr(0,10).trim ~ "” compiles";
107+
my $msg = "$eg<file> chunk $eg<count> starts with “" ~ starts-with($eg<contents>) ~ "” compiles";
108108

109109
my $status;
110110
{
@@ -122,3 +122,7 @@ for @examples -> $eg {
122122
pass $msg;
123123
}
124124
}
125+
126+
sub starts-with( Str $chunk ) {
127+
($chunk.lines)[0].substr(0,10).trim
128+
}

0 commit comments

Comments
 (0)