parent
13505c3be2
commit
6904f323aa
2 changed files with 30 additions and 28 deletions
|
|
@ -3834,8 +3834,7 @@ template `^^`(s, i: untyped): untyped =
|
||||||
template `[]`*(s: string; i: int): char = arrGet(s, i)
|
template `[]`*(s: string; i: int): char = arrGet(s, i)
|
||||||
template `[]=`*(s: string; i: int; val: char) = arrPut(s, i, val)
|
template `[]=`*(s: string; i: int; val: char) = arrPut(s, i, val)
|
||||||
|
|
||||||
when hasAlloc or defined(nimscript):
|
proc `[]`*[T, U](s: string, x: HSlice[T, U]): string {.inline.} =
|
||||||
proc `[]`*[T, U](s: string, x: HSlice[T, U]): string {.inline.} =
|
|
||||||
## Slice operation for strings.
|
## Slice operation for strings.
|
||||||
## Returns the inclusive range `[s[x.a], s[x.b]]`:
|
## Returns the inclusive range `[s[x.a], s[x.b]]`:
|
||||||
##
|
##
|
||||||
|
|
@ -3847,7 +3846,7 @@ when hasAlloc or defined(nimscript):
|
||||||
result = newString(L)
|
result = newString(L)
|
||||||
for i in 0 ..< L: result[i] = s[i + a]
|
for i in 0 ..< L: result[i] = s[i + a]
|
||||||
|
|
||||||
proc `[]=`*[T, U](s: var string, x: HSlice[T, U], b: string) =
|
proc `[]=`*[T, U](s: var string, x: HSlice[T, U], b: string) =
|
||||||
## Slice assignment for strings.
|
## Slice assignment for strings.
|
||||||
##
|
##
|
||||||
## If ``b.len`` is not exactly the number of elements that are referred to
|
## If ``b.len`` is not exactly the number of elements that are referred to
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,6 @@ proc printf(frmt: cstring) {.varargs, header: "<stdio.h>", cdecl.}
|
||||||
var x = 0
|
var x = 0
|
||||||
inc x
|
inc x
|
||||||
printf("hi %ld\n", x+4777)
|
printf("hi %ld\n", x+4777)
|
||||||
|
|
||||||
|
proc substr(a: string): string = a[0 .. 3] # This should compile. See #9762
|
||||||
|
const a = substr("foobar")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue