Skip to content
Browse files

Merge branch 'master' of https://github.com/perl6/roast

  • Loading branch information...
2 parents 1d6525f + ff70090 commit 03ecd397760ae7e94a1a3f4250531e3d35db5ad8 @Mouq Mouq committed Feb 28, 2014
View
2 S02-lexical-conventions/comments.t
@@ -79,7 +79,7 @@ use Test;
>>> 1, '#`<<<...>>>';
}
-#?rakudo todo 'nom regression'
+#?rakudo todo 'RT #121305'
{
eval_lives_ok( q{{
my $var = \#`((( comment ))) 12;
View
7 S02-lexical-conventions/unicode-whitespace.t
@@ -2,7 +2,7 @@ use v6;
use Test;
-plan 52;
+plan 50;
sub try_eval($str) { try EVAL $str }
@@ -57,10 +57,6 @@ my @x = <a b c>; sub y (@z) { @z[1] }; y(@x)
'), "b", "SPACE");
is(try_eval('
-my…@x… =…<a…b…c>;…sub…y…(@z)…{…@z[1]…};…y(@x)
-'), "b", "NEXT LINE (NEL)");
-
-is(try_eval('
my…@x… =…<a…b…c>;…sub…y…(@z)…{…@z[1]…};…y(@x)
'), "b", "NEXT LINE (NEL)");
@@ -144,7 +140,6 @@ is(try_eval('foo\ .lc'), 'a', 'long dot with SPACE');
multi foo($x) { $x }
$_ = 'b';
-
# L<S02/"Unicode Semantics"/"Unicode horizontal whitespace">
is(try_eval('foo\ .lc'), 'a', 'long dot with CHARACTER TABULATION');
View
9 S02-names-vars/names.t
@@ -69,11 +69,14 @@ eval_dies_ok '::.^methods', ':: is not a valid package';
'dies when calling non-existent sub in existing package';
# RT #74520
class TestA { };
- dies_ok { EVAL 'TestA::b(3, :foo)'},
+ dies_ok { TestA::frobnosticate(3, :foo) },
'calling non-existing function in foreign class dies';;
- #?rakudo todo 'nom regression'
+
+ # Same, but check resulting exception message
+ try { TestA::frobnosticate(3, :foo)};
+
#?niecza todo
- ok "$!" ~~ / ' TestA::b' /, 'error message mentions function name';
+ ok ~$! ~~ / 'frobnosticate' /, 'error message mentions function name';
}
# RT #71194
View
10 S02-types/lazy-lists.t
@@ -15,7 +15,7 @@ use v6;
use Test;
-plan 19;
+plan 20;
#?pugs emit unless $?PUGS_BACKEND eq "BACKEND_PERL5" {
@@ -143,4 +143,12 @@ sub make-lazy-list($num) { gather { take $_ for 0..^$num; $was-lazy = 0 } };
ok $was-lazy, "first argument of X is lazy";
}
+{
+ $was-lazy = 1;
+ my @one := make-lazy-list(10);
+ my @two = <a b c d e f>;
+ my @res = (@one X~ @two)[^20];
+ ok $was-lazy, "first argument of X~ is lazy";
+}
+
# vim: ft=perl6
View
1 S02-types/lists.t
@@ -168,7 +168,6 @@ plan 28;
is $rt66304, (1, 2, 4), 'List is not changed by attempted assignment';
}
-# nom regression bug
#?niecza skip 'Excess arguments to CORE List.new'
#?pugs skip 'Must only use named arguments to new() constructor'
{
View
3 S02-types/multi_dimensional_array.t
@@ -83,8 +83,7 @@ is(+$multi2, 2, 'the multi2 has 2 elements');
is(+$array, 3, 'multi2[0] has 3 elements');
is(+$multi2[0], 3, '+$multi2[0] works');
}
-#?rakudo todo 'nom regression'
-isa_ok($multi2[0], List);
+isa_ok($multi2[0], Parcel);
# slice
View
6 S02-types/unicode.t
@@ -8,15 +8,18 @@ plan 16;
# LATIN CAPITAL LETTER A, COMBINING GRAVE ACCENT
my Str $u = "\x[0041,0300]";
is $u.codes, 2, 'combining À is two codes';
+#?rakudo skip 'graphs NYI'
is $u.graphs, 1, 'combining À is one graph';
is "foo\r\nbar".codes, 8, 'CRLF is 2 codes';
+#?rakudo skip 'graphs NYI'
is "foo\r\nbar".graphs, 7, 'CRLF is 1 graph';
-# Speculation, .chars is unspecced, also use Bytes etc.
+#?rakudo todo "RT #65170"
is $u.chars, 1, '.chars defaults to .graphs';
# RT #65170
#?pugs todo
+#?rakudo todo "RT #65170"
{
my $rt65170;
@@ -34,6 +37,7 @@ is $u.chars, 1, '.chars defaults to .graphs';
E0]";
#?pugs 9 todo ''
+#?rakudo 9 skip 'Bytes/Codes/Graphs NYI'
is EVAL('substr $u, 3.as(Bytes), 1.as(Bytes)'), "\x[41]", 'substr with Bytes as units - utf8';
is EVAL('substr $u, 3.as(Codes), 1.as(Codes)'), "\x[0300]", 'substr with Codes as units - utf8';
is EVAL('substr $u, 4.as(Graphs), 1.as(Graphs)'), "\x[E0]", 'substr with Graphs as units - utf8';
View
5 S03-metaops/cross.t
@@ -91,10 +91,8 @@ eval_dies_ok '@result Xcmp @expected Xcmp <1 2>',
# those on the RHS
ok ( ? all $a, $b X!=:= $c, $d ), 'X!=:= (1)';
ok ( ? all $a, $a X!=:= $c, $d ), 'X!=:= (2)';
- #?rakudo todo 'huh?'
ok ( ! all $a, $b X!=:= $c, $b ), 'X!=:= (3)';
$c := $b;
- #?rakudo todo 'huh?'
ok ( ? one $a, $b X=:= $c, $d ), 'one X=:=';
}
@@ -107,9 +105,8 @@ is (<a b> X <c d> X < e f>).join(','),
'a,c,e,a,c,f,a,d,e,a,d,f,b,c,e,b,c,f,b,d,e,b,d,f',
'cross works with three lists';
-#?rakudo todo 'RT 74072'
#?niecza todo
-is ([1,2] X~ <a b>), '1 2a1 2b', '[] does not flatten';
+is ([1,2] X~ <a b>), '1 2a 1 2b', '[] does not flatten';
is (1,2 X ( <a b> X "x")).join, '1a1x1b1x2a2x2b2x',
'Nested X works';
View
53 S03-metaops/hyper.t
@@ -2,7 +2,7 @@ use v6;
use Test;
-plan 281;
+plan 257;
=begin pod
@@ -273,32 +273,20 @@ my @e;
{ # distribution for unary prefix
my @r;
- @r = ([1, 2], [3, [4, 5]]);
+ @r = ([1, 2], [3, [4, 5]]).deepmap: -*;
my @e = ([-1, -2], [-3, [-4, -5]]);
is(~@r, ~@e, "distribution for unary prefix");
is_deeply(@r, @e, "distribution for unary prefix, deep comparison");
-
- @r = -<< ([1, 2], [3, [4, 5]]);
- @e = ([-1, -2], [-3, [-4, -5]]);
- is(~@r, ~@e, "distribution for unary prefix, ASCII");
- is_deeply(@r, @e, "distribution for unary prefix, ASCII, deep comparison");
};
{ # distribution for unary postfix autoincrement
my @r;
@r = ([1, 2], [3, [4, 5]]);
- @r»++;
+ @r.deepmap: *++;
my @e = ([2, 3], [4, [5, 6]]);
#?pugs todo
is(~@r, ~@e, "distribution for unary postfix autoincr");
is_deeply(@r, @e, "distribution for unary postfix autoincr, deep comparison");
-
- @r = ([1, 2], [3, [4, 5]]);
- @r>>++;
- @e = ([2, 3], [4, [5, 6]]);
- #?pugs todo
- is(~@r, ~@e, "distribution for unary postfix autoincr, ASCII");
- is_deeply(@r, @e, "distribution for unary postfix autoincr, ASCII, deep comparison");
};
#?DOES 3
@@ -638,21 +626,21 @@ my @e;
{
my @a = (1, { a => 2, b => 3 }, 4);
- my @r = -<<@a;
+ my @r = @a.deepmap(-*);
is +@r, 3, 'hash in array - result array is the correct length';
is @r[0], -1, 'hash in array - correct result from -<<';
is @r[1]<a>, -2, 'hash in array - correct result from -<<';
is @r[1]<b>, -3, 'hash in array - correct result from -<<';
is @r[2], -4, 'hash in array - correct result from -<<';
- @r = ++<<@a;
+ @r = @a.deepmap(++*);
is +@r, 3, 'hash in array - result array is the correct length';
is @r[0], 2, 'hash in array - correct result from ++<<';
is @r[1]<a>, 3, 'hash in array - correct result from ++<<';
is @r[1]<b>, 4, 'hash in array - correct result from ++<<';
is @r[2], 5, 'hash in array - correct result from ++<<';
- @r = @a>>--;
+ @r = @a.deepmap(*--);
is +@r, 3, 'hash in array - result array is the correct length';
is @r[0], 2, 'hash in array - correct result from ++<<';
is @r[1]<a>, 3, 'hash in array - correct result from ++<<';
@@ -665,35 +653,6 @@ my @e;
is @a[2], 4, 'hash in array - correct result from ++<<';
}
-{
- my @a = (1, { a => 2, b => 3 }, 4);
- my @r =@a;
- is +@r, 3, 'hash in array - result array is the correct length';
- is @r[0], -1, 'hash in array - correct result from -«';
- is @r[1]<a>, -2, 'hash in array - correct result from -«';
- is @r[1]<b>, -3, 'hash in array - correct result from -«';
- is @r[2], -4, 'hash in array - correct result from -«';
-
- @r = ++«@a;
- is +@r, 3, 'hash in array - result array is the correct length';
- is @r[0], 2, 'hash in array - correct result from ++«';
- is @r[1]<a>, 3, 'hash in array - correct result from ++«';
- is @r[1]<b>, 4, 'hash in array - correct result from ++«';
- is @r[2], 5, 'hash in array - correct result from ++«';
-
- @r = @a»--;
- is +@r, 3, 'hash in array - result array is the correct length';
- is @r[0], 2, 'hash in array - correct result from ++«';
- is @r[1]<a>, 3, 'hash in array - correct result from ++«';
- is @r[1]<b>, 4, 'hash in array - correct result from ++«';
- is @r[2], 5, 'hash in array - correct result from ++«';
- is +@a, 3, 'hash in array - result array is the correct length';
- is @a[0], 1, 'hash in array - correct result from ++«';
- is @a[1]<a>, 2, 'hash in array - correct result from ++«';
- is @a[1]<b>, 3, 'hash in array - correct result from ++«';
- is @a[2], 4, 'hash in array - correct result from ++«';
-}
-
# test non-UTF-8 input
#?niecza skip 'nonsensical test'
#?pugs skip 'EVAL(Buf)'
View
2 S03-metaops/reduce.t
@@ -379,7 +379,7 @@ ok ([+]) == 0, 'argumentless [+] parses';
# RT #67064
#?niecza skip "reduce is not supposed to flatten?"
{
- is(([X~] [<a b>] xx 3), <aaa aab aba abb baa bab bba bbb>, 'reduce with X');
+ is(([X~] <a b>, <a b>, <a b>), <aaa aab aba abb baa bab bba bbb>, 'reduce with X');
}
done;
View
4 S03-metaops/zip.t
@@ -53,8 +53,8 @@ is (2, 10, * Z* 3, 4, 5, *).munch(5),
#?niecza todo
{
- is join(',', [Z+] [1, 2], [20, 10], [100, 200]),
- '121,212', '[Z+] with three arrays';
+ is join(',', [Z+] (1, 2), (20, 10), (100, 200)),
+ '121,212', '[Z+] with three lists';
}
# RT #75818
View
4 S03-operators/comparison.t
@@ -53,15 +53,15 @@ is("a\0" cmp "a", Order::More, 'a\0 cmp a is more');
{
class Blue {
method Numeric() { 3; }
+ method Real() { 3; }
}
my $a = Blue.new;
ok +$a == 3, '+$a == 3 (just checking)';
ok $a == 3, '$a == 3';
ok $a != 4, '$a != 4';
nok $a != 3, 'not true that $a != 3';
-
- #?rakudo 4 todo 'nom regression'
+
lives_ok { $a < 5 }, '$a < 5 lives okay';
lives_ok { $a <= 5 }, '$a <= 5 lives okay';
lives_ok { $a > 5 }, '$a > 5 lives okay';
View
10 S03-operators/increment.t
@@ -2,7 +2,7 @@ use v6;
use Test;
-plan 31;
+plan 32;
#L<S03/Autoincrement precedence>
@@ -17,14 +17,14 @@ Verify that autoincrement/autodecrement work properly.
my $a = Mu;
is($a++, 0, 'Mu++ == 0');
- #?rakudo todo 'nom regression'
#?niecza todo '#88'
$a = Mu;
- nok(defined($a--), 'Mu-- is undefined');
+ is $a--, 0 , 'postincrement (& decrement) returns 0 the first time';
- $a = 'x';
- is($a++, 'x', 'magical ++ should not be numified');
+ $a = 'z';
+ is($a++, 'z', 'magical ++ should not be numified');
isa_ok($a, "Str", "it isa Str");
+ is $a, 'aa', 'magical ++ is carrying properly';
}
my %a = ('a' => 1);
View
40 S05-mass/charsets.t
@@ -2,55 +2,49 @@ use v6;
use Test;
-=begin pod
-
-tests over character sets. currently limited to ascii.
-
-=end pod
-
# L<S05/Extensible metasyntax (C<< <...> >>)/"The special named assertions include">
plan 16;
#?niecza skip 'Tests not completing under niecza'
{
- my $ascii-chars = [~] chr(0)..chr(0xFF);
+ my $latin-chars = [~] chr(0)..chr(0xFF);
- is $ascii-chars.comb(/<ident>/).join(" "), "ABCDEFGHIJKLMNOPQRSTUVWXYZ _ abcdefghijklmnopqrstuvwxyz ª µ º ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö øùúûüýþÿ", 'ident chars';
+ is $latin-chars.comb(/<ident>/).join(" "), "ABCDEFGHIJKLMNOPQRSTUVWXYZ _ abcdefghijklmnopqrstuvwxyz ª µ º ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö øùúûüýþÿ", 'ident chars';
- is $ascii-chars.comb(/<alpha>/).join, "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'alpha chars';
+ is $latin-chars.comb(/<alpha>/).join, "ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'alpha chars';
- is $ascii-chars.comb(/<space>/)>>.ord.join(","), ((9..13,32,133,160).join(",")), 'space chars';
+ is $latin-chars.comb(/<space>/)>>.ord.join(","), ((9..13,32,133,160).join(",")), 'space chars';
- is $ascii-chars.comb(/<digit>/).join, "0123456789", 'digit chars';
+ is $latin-chars.comb(/<digit>/).join, "0123456789", 'digit chars';
- is $ascii-chars.comb(/<alnum>/).join, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'alnum chars';
+ is $latin-chars.comb(/<alnum>/).join, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'alnum chars';
#?rakudo.parrot todo 'blank characters'
- is $ascii-chars.comb(/<blank>/)>>.ord.join(","), '9,32,160', 'blank chars';
+ is $latin-chars.comb(/<blank>/)>>.ord.join(","), '9,32,160', 'blank chars';
- is $ascii-chars.comb(/<cntrl>/)>>.ord.join(","), ((0..31, 127..159).join(",")), 'cntrl chars';
+ is $latin-chars.comb(/<cntrl>/)>>.ord.join(","), ((0..31, 127..159).join(",")), 'cntrl chars';
#?rakudo.parrot todo 'lower characters'
- is $ascii-chars.comb(/<lower>/).join, "abcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'lower chars';
+ is $latin-chars.comb(/<lower>/).join, "abcdefghijklmnopqrstuvwxyzµßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'lower chars';
# unicode 6.0 reclassifies § and ¶ as punctuation characters, so actual results may vary depending on
# on unicode version bundled with jdk, icu etc.
#?rakudo.parrot todo 'punct characters'
#?rakudo.jvm todo 'unicode 6.0 punct characters'
- is $ascii-chars.comb(/<punct>/).join, q<!"#%&'()*,-./:;?@[\]_{}¡§«¶·»¿>, 'punct chars';
+ is $latin-chars.comb(/<punct>/).join, q<!"#%&'()*,-./:;?@[\]_{}¡§«¶·»¿>, 'punct chars';
#?rakudo.parrot todo 'unicode 6.0 punct characters'
#?rakudo.jvm todo 'unicode 6.0 punct characters'
- is $ascii-chars.comb(/<:Punctuation>/).join, q<!"#%&'()*,-./:;?@[\]_{}¡§«¶·»¿>, ':Punctuation chars';
+ is $latin-chars.comb(/<:Punctuation>/).join, q<!"#%&'()*,-./:;?@[\]_{}¡§«¶·»¿>, ':Punctuation chars';
- is $ascii-chars.comb(/<upper>/).join, "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ", 'upper chars';
+ is $latin-chars.comb(/<upper>/).join, "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ", 'upper chars';
- is $ascii-chars.comb(/<xdigit>/).join, "0123456789ABCDEFabcdef", 'xdigit chars';
+ is $latin-chars.comb(/<xdigit>/).join, "0123456789ABCDEFabcdef", 'xdigit chars';
- is $ascii-chars.comb(/<:Letter>/).join, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'unicode Letter chars';
+ is $latin-chars.comb(/<:Letter>/).join, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ", 'unicode Letter chars';
- is $ascii-chars.comb(/<+ xdigit - lower >/).join, "0123456789ABCDEF", 'combined builtin classes';
- is $ascii-chars.comb(/<+ :HexDigit - :Upper >/).join, "0123456789abcdef", 'combined unicode classes';
- is $ascii-chars.comb(/<+ :HexDigit - lower >/).join, "0123456789ABCDEF", 'combined unicode and builtins';
+ is $latin-chars.comb(/<+ xdigit - lower >/).join, "0123456789ABCDEF", 'combined builtin classes';
+ is $latin-chars.comb(/<+ :HexDigit - :Upper >/).join, "0123456789abcdef", 'combined unicode classes';
+ is $latin-chars.comb(/<+ :HexDigit - lower >/).join, "0123456789ABCDEF", 'combined unicode and builtins';
}
View
83 S05-mass/rx.t
@@ -87,7 +87,7 @@ ok 'xyabghij' ~~ /[ab::cd | gh::ij]/, 'group cut in group';
ok 'xyabghij' !~~ /[ab:::cd | gh:::ij]/, 'rule cut in group';
#### [ ab | abc ]: de xyzabcde n no backtrack into group
-#?rakudo todo 'nom regression'
+#?rakudo todo 'RT #121307'
#?niecza todo ''
ok 'xyzabcde' !~~ /[ ab | abc ]: de/, 'no backtrack into group';
@@ -338,7 +338,7 @@ ok 'abcdef' ~~ /^<[a]>?/, 'anchored optional character class';
ok 'abcdef' ~~ /<-[e]>?/, 'negated optional character class';
#### <-[dcb]>**{3} abcdef n repeated negated character class
-#?rakudo skip 'nom regression'
+#?rakudo skip 'RT #121306'
ok 'abcdef' !~~ /<-[dcb]>**{3}/, 'repeated negated character class';
#### ^<-[e]> abcdef y anchored negated character class
@@ -1112,20 +1112,20 @@ ok "\x000a\x000b\x000c\x000d\x0085" !~~ /^ \h+ $/, '0-255 horizontal whitespace
#### ^ \v+ $ \x0009\x0020\x00a0 n 0-255 vertical whitespace (\v)
ok "\x0009\x0020\x00a0" !~~ /^ \v+ $/, '0-255 vertical whitespace (\v)';
-#### ^ \s+ $ \x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 y unicode whitespace (\s)
+#### ^ \s+ $ \x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 y unicode whitespace (\s)
#?pugs todo
-ok "\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /^ \s+ $/, 'unicode whitespace (\s)';
+ok "\x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /^ \s+ $/, 'unicode whitespace (\s)';
-#### ^ \h+ $ \x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 y unicode whitespace (\h)
+#### ^ \h+ $ \x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 y unicode whitespace (\h)
#?pugs todo
-ok "\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /^ \h+ $/, 'unicode whitespace (\h)';
+ok "\x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /^ \h+ $/, 'unicode whitespace (\h)';
-#### ^ \V+ $ \x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 y unicode whitespace (\V)
+#### ^ \V+ $ \x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 y unicode whitespace (\V)
#?pugs todo
-ok "\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /^ \V+ $/, 'unicode whitespace (\V)';
+ok "\x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /^ \V+ $/, 'unicode whitespace (\V)';
-#### ^ \v+ $ \x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 n unicode whitespace (\v)
-ok "\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" !~~ /^ \v+ $/, 'unicode whitespace (\v)';
+#### ^ \v+ $ \x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000 n unicode whitespace (\v)
+ok "\x1680\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" !~~ /^ \v+ $/, 'unicode whitespace (\v)';
#### c \t d abc\tdef y horizontal tab (\t)
#?pugs todo
@@ -2650,135 +2650,132 @@ ok "abc\ndef\n-==\nghi" ~~ /\-<!wb>/, '\W\W nonword boundary';
#### <upper> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<upper>: <A @ 45>/ <upper>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<upper>/) && matchcheck($/, q/mob<upper>: <A @ 45>/), '<upper>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<upper>/) && matchcheck($/, q/mob<upper>: <A @ 45>/), '<upper>';
#### <+upper> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <A @ 45>/ <+upper>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+upper>/) && matchcheck($/, q/mob: <A @ 45>/), '<+upper>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+upper>/) && matchcheck($/, q/mob: <A @ 45>/), '<+upper>';
#### <+upper>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <ABCDEFGHIJ @ 45>/ <+upper>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+upper>+/) && matchcheck($/, q/mob: <ABCDEFGHIJ @ 45>/), '<+upper>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+upper>+/) && matchcheck($/, q/mob: <ABCDEFGHIJ @ 45>/), '<+upper>+';
#### <lower> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<lower>: <a @ 55>/ <lower>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<lower>/) && matchcheck($/, q/mob<lower>: <a @ 55>/), '<lower>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<lower>/) && matchcheck($/, q/mob<lower>: <a @ 55>/), '<lower>';
#### <+lower> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <a @ 55>/ <+lower>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+lower>/) && matchcheck($/, q/mob: <a @ 55>/), '<+lower>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+lower>/) && matchcheck($/, q/mob: <a @ 55>/), '<+lower>';
#### <+lower>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <abcdefghij @ 55>/ <+lower>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+lower>+/) && matchcheck($/, q/mob: <abcdefghij @ 55>/), '<+lower>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+lower>+/) && matchcheck($/, q/mob: <abcdefghij @ 55>/), '<+lower>+';
#### <alpha> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<alpha>: <A @ 45>/ <alpha>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<alpha>/) && matchcheck($/, q/mob<alpha>: <A @ 45>/), '<alpha>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<alpha>/) && matchcheck($/, q/mob<alpha>: <A @ 45>/), '<alpha>';
#### <+alpha> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <A @ 45>/ <+alpha>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alpha>/) && matchcheck($/, q/mob: <A @ 45>/), '<+alpha>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alpha>/) && matchcheck($/, q/mob: <A @ 45>/), '<+alpha>';
#### <+alpha>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <ABCDEFGHIJabcdefghij @ 45>/ <+alpha>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alpha>+/) && matchcheck($/, q/mob: <ABCDEFGHIJabcdefghij @ 45>/), '<+alpha>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alpha>+/) && matchcheck($/, q/mob: <ABCDEFGHIJabcdefghij @ 45>/), '<+alpha>+';
#### <digit> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<digit>: <0 @ 35>/ <digit>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<digit>/) && matchcheck($/, q/mob<digit>: <0 @ 35>/), '<digit>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<digit>/) && matchcheck($/, q/mob<digit>: <0 @ 35>/), '<digit>';
#### <+digit> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <0 @ 35>/ <+digit>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+digit>/) && matchcheck($/, q/mob: <0 @ 35>/), '<+digit>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+digit>/) && matchcheck($/, q/mob: <0 @ 35>/), '<+digit>';
#### <+digit>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <0123456789 @ 35>/ <+digit>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+digit>+/) && matchcheck($/, q/mob: <0123456789 @ 35>/), '<+digit>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+digit>+/) && matchcheck($/, q/mob: <0123456789 @ 35>/), '<+digit>+';
#### <xdigit> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<xdigit>: <0 @ 35>/ <xdigit>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<xdigit>/) && matchcheck($/, q/mob<xdigit>: <0 @ 35>/), '<xdigit>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<xdigit>/) && matchcheck($/, q/mob<xdigit>: <0 @ 35>/), '<xdigit>';
#### <+xdigit> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <0 @ 35>/ <+xdigit>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+xdigit>/) && matchcheck($/, q/mob: <0 @ 35>/), '<+xdigit>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+xdigit>/) && matchcheck($/, q/mob: <0 @ 35>/), '<+xdigit>';
#### <+xdigit>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <0123456789ABCDEF @ 35>/ <+xdigit>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+xdigit>+/) && matchcheck($/, q/mob: <0123456789ABCDEF @ 35>/), '<+xdigit>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+xdigit>+/) && matchcheck($/, q/mob: <0123456789ABCDEF @ 35>/), '<+xdigit>+';
#### <space> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<space>: <\t @ 0>/ <space>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<space>/) && matchcheck($/, q/mob<space>: <\t @ 0>/), '<space>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<space>/) && matchcheck($/, q/mob<space>: <\t @ 0>/), '<space>';
#### <+space> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <\t @ 0>/ <+space>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+space>/) && matchcheck($/, q/mob: <\t @ 0>/), '<+space>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+space>/) && matchcheck($/, q/mob: <\t @ 0>/), '<+space>';
#### <+space>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <\t\n\r @ 0>/ <+space>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+space>+/) && matchcheck($/, q/mob: <\t\n\r @ 0>/), '<+space>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+space>+/) && matchcheck($/, q/mob: <\t\n\r @ 0>/), '<+space>+';
#### <blank> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<blank>: <\t @ 0>/ <blank>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<blank>/) && matchcheck($/, q/mob<blank>: <\t @ 0>/), '<blank>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<blank>/) && matchcheck($/, q/mob<blank>: <\t @ 0>/), '<blank>';
#### <+blank> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <\t @ 0>/ <+blank>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+blank>/) && matchcheck($/, q/mob: <\t @ 0>/), '<+blank>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+blank>/) && matchcheck($/, q/mob: <\t @ 0>/), '<+blank>';
#### <+blank>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <\t @ 0>/ <+blank>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+blank>+/) && matchcheck($/, q/mob: <\t @ 0>/), '<+blank>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+blank>+/) && matchcheck($/, q/mob: <\t @ 0>/), '<+blank>+';
#?niecza 3 todo "Unable to resolve method cntrl in class Cursor"
#### <cntrl> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<cntrl>: <\t @ 0>/ <cntrl>
-#?rakudo todo '<cntrl>'
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<cntrl>/) && matchcheck($/, q/mob<cntrl>: <\t @ 0>/), '<cntrl>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<cntrl>/) && matchcheck($/, q/mob<cntrl>: <\t @ 0>/), '<cntrl>';
#### <+cntrl> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <\t @ 0>/ <+cntrl>
-#?rakudo todo '<cntrl>'
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+cntrl>/) && matchcheck($/, q/mob: <\t @ 0>/), '<+cntrl>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+cntrl>/) && matchcheck($/, q/mob: <\t @ 0>/), '<+cntrl>';
#### <+cntrl>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <\t\n\r @ 0>/ <+cntrl>+
-#?rakudo todo '<cntrl>'
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+cntrl>+/) && matchcheck($/, q/mob: <\t\n\r @ 0>/), '<+cntrl>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+cntrl>+/) && matchcheck($/, q/mob: <\t\n\r @ 0>/), '<+cntrl>+';
#### <punct> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<punct>: <! @ 4>/ <punct>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<punct>/) && matchcheck($/, q/mob<punct>: <! @ 4>/), '<punct>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<punct>/) && matchcheck($/, q/mob<punct>: <! @ 4>/), '<punct>';
#### <+punct> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <! @ 4>/ <+punct>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+punct>/) && matchcheck($/, q/mob: <! @ 4>/), '<+punct>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+punct>/) && matchcheck($/, q/mob: <! @ 4>/), '<+punct>';
#### <+punct>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <!"#$%&/ <+punct>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+punct>+/) && matchcheck($/, q/mob: <!"#$%&/), '<+punct>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+punct>+/) && matchcheck($/, q/mob: <!"#$%&/), '<+punct>+';
#### <alnum> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob<alnum>: <0 @ 35>/ <alnum>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<alnum>/) && matchcheck($/, q/mob<alnum>: <0 @ 35>/), '<alnum>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<alnum>/) && matchcheck($/, q/mob<alnum>: <0 @ 35>/), '<alnum>';
#### <+alnum> \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <0 @ 35>/ <+alnum>
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alnum>/) && matchcheck($/, q/mob: <0 @ 35>/), '<+alnum>';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alnum>/) && matchcheck($/, q/mob: <0 @ 35>/), '<+alnum>';
#### <+alnum>+ \t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij /mob: <0123456789ABCDEFGHIJabcdefghij @ 35>/ <+alnum>+
#?pugs todo
-ok ('\t\n\r !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alnum>+/) && matchcheck($/, q/mob: <0123456789ABCDEFGHIJabcdefghij @ 35>/), '<+alnum>+';
+ok ("\t\n\r"~' !"#$%&\'()*+,-./:;<=>?@[\]^`_{|}0123456789ABCDEFGHIJabcdefghij' ~~ /<+alnum>+/) && matchcheck($/, q/mob: <0123456789ABCDEFGHIJabcdefghij @ 35>/), '<+alnum>+';
#### <+alnum+[_]> ident_1 y union of character classes
#?pugs todo
View
20 S11-modules/import.t
@@ -1,6 +1,8 @@
use v6;
use Test;
-plan 14;
+BEGIN { @*INC.push('t/spec/packages/') };
+use Test::Util;
+plan 22;
# L<S11/Importing without loading>
@@ -84,4 +86,20 @@ plan 14;
}
+#?niecza skip 'is export not available for variables'
+{
+ module G {
+ our $gee is export = 42;
+ }
+ import G;
+ is $gee, 42, 'can import an our-scoped variable';
+
+ throws_like 'module H { my $eidge is export = 42 }', X::Comp::Trait::Scope,
+ type => 'is',
+ subtype => 'export',
+ declaring => 'variable',
+ scope => 'my',
+ supported => ['our'];
+}
+
# vim: ft=perl6
View
2 S14-roles/basic.t
@@ -96,7 +96,7 @@ eval_dies_ok '0 but RT66178', '"but" with non-existent role dies';
try { EVAL 'class AnotherAnimal does NonExistentRole { }; 1' };
my $err = "$!";
- #?rakudo todo 'nom regression'
+ #?rakudo todo 'RT #121308'
ok $err ~~ /NonExistentRole/,
'... and the error message mentions the role';
}
View
5 S32-exceptions/misc.t
@@ -139,6 +139,11 @@ throws_like q[/ /], X::Syntax::Regex::NullRegex;
throws_like q[/ a | /], X::Syntax::Regex::NullRegex;
throws_like q[/ a || /], X::Syntax::Regex::NullRegex;
throws_like q[/ a & /], X::Syntax::Regex::NullRegex;
+# RT 67554
+throws_like q{/ [] /}, X::Syntax::Regex::NullRegex;
+throws_like q{/ | /}, X::Syntax::Regex::NullRegex;
+# RT #82142
+throws_like q{s//b/}, X::Syntax::Regex::NullRegex;
throws_like 'sub f($a?, $b) { }', X::Parameter::WrongOrder,

0 comments on commit 03ecd39

Please sign in to comment.
Something went wrong with that request. Please try again.