@@ -9,17 +9,38 @@ intl.use_exceptions=true
99
1010$ tr = Transliterator::create ("latin " );
1111
12- try {
13- var_dump (transliterator_transliterate ($ tr , "str " , 7 ));
14- } catch (Throwable $ e ) {
15- echo $ e ::class, ': ' , $ e ->getMessage (), PHP_EOL ;
12+ function dump_throwable (callable $ callback ): void {
13+ try {
14+ $ callback ();
15+ } catch (Throwable $ e ) {
16+ echo $ e ::class, ': ' , $ e ->getMessage (), PHP_EOL ;
17+ }
1618}
1719
18- try {
20+ //Arguments
21+ dump_throwable (function () use ($ tr ) {
22+ var_dump (transliterator_transliterate ($ tr , "str " , 7 ));
23+ });
24+
25+ dump_throwable (function () use ($ tr ) {
1926 transliterator_transliterate ($ tr , "str " , 7 , 6 );
20- } catch (Throwable $ e ) {
21- echo $ e ::class, ': ' , $ e ->getMessage (), PHP_EOL ;
22- }
27+ });
28+
29+ dump_throwable (function () use ($ tr ) {
30+ transliterator_transliterate ($ tr , "str " , 0 , -2 );
31+ });
32+
33+ dump_throwable (function () use ($ tr ) {
34+ transliterator_transliterate ($ tr , "str " , -1 );
35+ });
36+
37+ dump_throwable (function () {
38+ transliterator_transliterate ("latin " , "str " , -1 );
39+ });
40+
41+ dump_throwable (function () use ($ tr ) {
42+ $ tr ->transliterate ("str " , 7 , 6 );
43+ });
2344
2445//bad UTF-8
2546try {
3152?>
3253--EXPECT--
3354IntlException: transliterator_transliterate(): Neither "start" nor the "end" arguments can exceed the number of UTF-16 code units (in this case, 3)
34- ValueError: transliterator_transliterate(): Argument #2 ($string) must be less than or equal to argument #3 ($end)
55+ ValueError: transliterator_transliterate(): Argument #3 ($start) must be less than or equal to argument #4 ($end)
56+ ValueError: transliterator_transliterate(): Argument #4 ($end) must be greater than or equal to -1
57+ ValueError: transliterator_transliterate(): Argument #3 ($start) must be greater than or equal to 0
58+ ValueError: transliterator_transliterate(): Argument #3 ($start) must be greater than or equal to 0
59+ ValueError: Transliterator::transliterate(): Argument #2 ($start) must be less than or equal to argument #3 ($end)
3560IntlException: transliterator_transliterate(): String conversion of string to UTF-16 failed
0 commit comments