mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 22:10:33 +00:00
Merge remote-tracking branch 'upstream/devel' into devel
This commit is contained in:
@@ -756,6 +756,9 @@ proc semOverloadedCallAnalyseEffects(c: PContext, n: PNode, nOrig: PNode,
|
||||
else:
|
||||
if callee.kind in skIterators and callee.id == c.p.owner.id:
|
||||
localError(n.info, errRecursiveDependencyX, callee.name.s)
|
||||
# error correction, prevents endless for loop elimination in transf.
|
||||
# See bug #2051:
|
||||
result.sons[0] = newSymNode(errorSym(c, n))
|
||||
if sfNoSideEffect notin callee.flags:
|
||||
if {sfImportc, sfSideEffect} * callee.flags != {}:
|
||||
incl(c.p.owner.flags, sfSideEffect)
|
||||
|
||||
@@ -492,7 +492,8 @@ proc transformFor(c: PTransf, n: PNode): PTransNode =
|
||||
var newC = newTransCon(getCurrOwner(c))
|
||||
newC.forStmt = n
|
||||
newC.forLoopBody = loopBody
|
||||
internalAssert iter.kind == skIterator
|
||||
# this can fail for 'nimsuggest' and 'check':
|
||||
if iter.kind != skIterator: return result
|
||||
# generate access statements for the parameters (unless they are constant)
|
||||
pushTransCon(c, newC)
|
||||
for i in countup(1, sonsLen(call) - 1):
|
||||
|
||||
@@ -735,14 +735,6 @@ regular expressions:
|
||||
return tkUnknown
|
||||
|
||||
|
||||
Term rewriting macros
|
||||
---------------------
|
||||
|
||||
Term rewriting macros can be used to enhance the compilation process
|
||||
with user defined optimizations; see this `document <trmacros.html>`_ for
|
||||
further information.
|
||||
|
||||
|
||||
Building your first macro
|
||||
-------------------------
|
||||
|
||||
|
||||
@@ -1455,7 +1455,8 @@ template `>%` *(x, y: expr): expr {.immediate.} = y <% x
|
||||
|
||||
proc `$`*(x: int): string {.magic: "IntToStr", noSideEffect.}
|
||||
## The stringify operator for an integer argument. Returns `x`
|
||||
## converted to a decimal string.
|
||||
## converted to a decimal string. ``$`` is Nim's general way of
|
||||
## spelling `toString`:idx:.
|
||||
|
||||
proc `$`*(x: int64): string {.magic: "Int64ToStr", noSideEffect.}
|
||||
## The stringify operator for an integer argument. Returns `x`
|
||||
|
||||
@@ -30,14 +30,16 @@ proc reprStrAux(result: var string, s: string) =
|
||||
add result, "nil"
|
||||
return
|
||||
add result, reprPointer(cast[pointer](s)) & "\""
|
||||
for c in items(s):
|
||||
for i in 0.. <s.len:
|
||||
let c = s[i]
|
||||
case c
|
||||
of '"': add result, "\\\""
|
||||
of '\\': add result, "\\\\" # BUGFIX: forgotten
|
||||
of '\10': add result, "\\10\"\n\"" # " \n " # better readability
|
||||
of '\128' .. '\255', '\0'..'\9', '\11'..'\31':
|
||||
add result, "\\" & reprInt(ord(c))
|
||||
else: result.add(c)
|
||||
else:
|
||||
result.add(c)
|
||||
add result, "\""
|
||||
|
||||
proc reprStr(s: string): string {.compilerRtl.} =
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 93 KiB |
BIN
web/assets/images/bg.png
Normal file
BIN
web/assets/images/bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 146 KiB |
@@ -8,7 +8,7 @@ body {
|
||||
min-width:1030px;
|
||||
margin:0;
|
||||
font:13pt "arial";
|
||||
background:#152534 url("images/bg.jpg") no-repeat center top;
|
||||
background:#152534 url("images/bg.png") no-repeat center top;
|
||||
color:rgba(0,0,0,.8); }
|
||||
|
||||
pre {
|
||||
@@ -555,4 +555,4 @@ pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
||||
#body table.docutils {
|
||||
border-collapse: collapse;
|
||||
text-align: left;
|
||||
border-spacing: 0px; }
|
||||
border-spacing: 0px; }
|
||||
|
||||
Reference in New Issue
Block a user