@@ -273,7 +273,7 @@ out (result)
273273 auto slen = s.length;
274274 while (slen > 0 && s[slen- 1 ] == 0 ) -- slen;
275275 assert (strlen(result) == slen);
276- assert (memcmp( result, s.ptr, slen) == 0 );
276+ assert (result[ 0 .. slen] == s[ 0 .. slen] );
277277 }
278278}
279279body
299299 copy[0 .. s.length] = s[];
300300 copy[s.length] = 0 ;
301301
302- return assumeUnique (copy).ptr ;
302+ return & assumeUnique(copy)[ 0 ] ;
303303}
304304
305305/+ + Ditto +/
@@ -318,7 +318,7 @@ immutable(char)* toStringz(in string s) @trusted pure nothrow
318318 // unreadable. Otherwise, it's definitely pointing to valid
319319 // memory.
320320 if ((cast (size_t ) p & 3 ) && * p == 0 )
321- return s.ptr ;
321+ return &s[ 0 ] ;
322322 return toStringz (cast (const char []) s);
323323}
324324
@@ -394,15 +394,16 @@ ptrdiff_t indexOf(Range)(Range s, in dchar c,
394394 {
395395 static if (Char.sizeof == 1 && isSomeString! Range )
396396 {
397- import core.stdc.string : memchr;
398397 if (std.ascii.isASCII (c) && ! __ctfe)
399398 { // Plain old ASCII
400- auto trustedmemchr () @trusted { return cast (Char* )memchr(s.ptr, c, s.length); }
401- const p = trustedmemchr();
402- if (p)
403- return p - s.ptr;
404- else
405- return - 1 ;
399+ static ptrdiff_t trustedmemchr (Range s, char c) @trusted
400+ {
401+ import core.stdc.string : memchr;
402+ const p = cast (const (Char)* )memchr(s.ptr, c, s.length);
403+ return p ? p - s.ptr : - 1 ;
404+ }
405+
406+ return trustedmemchr (s, cast (char )c);
406407 }
407408 }
408409
@@ -730,7 +731,7 @@ ptrdiff_t indexOf(Range, Char)(Range s, const(Char)[] sub,
730731 ((a, b) => toLower(a) == toLower(b))
731732 (s, sub);
732733 }
733- return balance.empty ? - 1 : balance.ptr - s.ptr;
734+ return () @trusted { return balance.empty ? - 1 : balance.ptr - s.ptr; } () ;
734735 }
735736 else
736737 {
@@ -6246,11 +6247,11 @@ char[] soundex(const(char)[] str, char[] buffer = null)
62466247 @safe pure nothrow
62476248in
62486249{
6249- assert (! buffer.ptr || buffer.length >= 4 );
6250+ assert (buffer is null || buffer.length >= 4 );
62506251}
62516252out (result)
62526253{
6253- if (result.ptr )
6254+ if (result ! is null )
62546255 {
62556256 assert (result.length == 4 );
62566257 assert (result[0 ] >= ' A' && result[0 ] <= ' Z' );
@@ -6263,7 +6264,7 @@ body
62636264 char [4 ] result = soundexer(str);
62646265 if (result[0 ] == 0 )
62656266 return null ;
6266- if (! buffer.ptr )
6267+ if (buffer is null )
62676268 buffer = new char [4 ];
62686269 buffer[] = result[];
62696270 return buffer;
0 commit comments