mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-25 04:15:09 +00:00
makes tests green
This commit is contained in:
@@ -57,7 +57,7 @@ proc addHandler*(handler: var EventHandler, fn: proc(e: EventArgs) {.closure.})
|
||||
|
||||
proc removeHandler*(handler: var EventHandler, fn: proc(e: EventArgs) {.closure.}) =
|
||||
## Removes the callback from the specified event handler.
|
||||
for i in countup(0, len(handler.handlers) -1):
|
||||
for i in countup(0, len(handler.handlers)-1):
|
||||
if fn == handler.handlers[i]:
|
||||
handler.handlers.del(i)
|
||||
break
|
||||
|
||||
@@ -143,7 +143,7 @@ proc main() =
|
||||
# Create long-lived array, filling half of it
|
||||
echo(" Creating a long-lived array of " & $kArraySize & " doubles")
|
||||
newSeq(myarray, kArraySize)
|
||||
for i in 0..kArraySize div 2 -1:
|
||||
for i in 0..kArraySize div 2 - 1:
|
||||
myarray[i] = 1.0 / toFloat(i)
|
||||
|
||||
PrintDiagnostics()
|
||||
|
||||
@@ -69,7 +69,7 @@ proc cmp[T:int8|int16|int32|int64|int] (a,b: T): T {.inline.} =
|
||||
template binSearchImpl *(docmp: expr) {.immediate.} =
|
||||
var bFound = false
|
||||
result = 0
|
||||
var H = haystack.len -1
|
||||
var H = haystack.len - 1
|
||||
while result <= H :
|
||||
var I {.inject.} = (result + H) shr 1
|
||||
var SW = docmp
|
||||
@@ -90,7 +90,7 @@ proc DeleteItem[T,D] (n: PNode[T,D], x: int): PNode[T,D] {.inline.} =
|
||||
return n
|
||||
dec(n.count)
|
||||
if n.count > 0 :
|
||||
for i in countup(x, n.count -1) : n.slots[i] = n.slots[i + 1]
|
||||
for i in countup(x, n.count - 1) : n.slots[i] = n.slots[i + 1]
|
||||
n.slots[n.count] = nil
|
||||
case n.count
|
||||
of cLen1 : setLen(n.slots, cLen1)
|
||||
@@ -121,7 +121,7 @@ proc internalDelete[T,D] (ANode: PNode[T,D], key: T, Avalue: var D): PNode[T,D]
|
||||
if x == 0 :
|
||||
n = n.left
|
||||
else :
|
||||
x = (-x) -1
|
||||
x = (-x) - 1
|
||||
if x < n.count :
|
||||
n = n.slots[x].node
|
||||
else :
|
||||
@@ -132,10 +132,10 @@ proc internalDelete[T,D] (ANode: PNode[T,D], key: T, Avalue: var D): PNode[T,D]
|
||||
Avalue = n.slots[x].value
|
||||
var n2 = DeleteItem(n, x)
|
||||
dec(h)
|
||||
while (n2 != n) and (h >=0) :
|
||||
while (n2 != n) and (h >= 0) :
|
||||
n = n2
|
||||
var w = addr Path[h]
|
||||
x = w.Xi -1
|
||||
x = w.Xi - 1
|
||||
if x >= 0 :
|
||||
if (n == nil) and isClean(w.Nd, x) :
|
||||
n = w.Nd
|
||||
@@ -160,7 +160,7 @@ proc internalFind[T,D] (n: PNode[T,D], key: T): ref TItem[T,D] {.inline.} =
|
||||
if x == 0 :
|
||||
wn = wn.left
|
||||
else :
|
||||
x = (-x) -1
|
||||
x = (-x) - 1
|
||||
if x < wn.count :
|
||||
wn = wn.slots[x].node
|
||||
else :
|
||||
@@ -199,7 +199,7 @@ proc traceTree[T,D](root: PNode[T,D]) =
|
||||
if n.left != nil:
|
||||
traceln(space)
|
||||
write stdout, "left: "
|
||||
doTrace(n.left, level +1)
|
||||
doTrace(n.left, level+1)
|
||||
for i, el in n.slots :
|
||||
if el != nil and not isClean(el):
|
||||
traceln(space)
|
||||
@@ -208,7 +208,7 @@ proc traceTree[T,D](root: PNode[T,D]) =
|
||||
write stdout, "error "
|
||||
else:
|
||||
traceEl(el)
|
||||
if el.node != nil: doTrace(el.node, level +1)
|
||||
if el.node != nil: doTrace(el.node, level+1)
|
||||
else : write stdout, " empty "
|
||||
elif i < n.count :
|
||||
traceln(space)
|
||||
@@ -217,7 +217,7 @@ proc traceTree[T,D](root: PNode[T,D]) =
|
||||
when T is string :
|
||||
if el.key != nil: write stdout, el.key
|
||||
else : write stdout, el.key
|
||||
if el.node != nil: doTrace(el.node, level +1)
|
||||
if el.node != nil: doTrace(el.node, level+1)
|
||||
else : write stdout, " empty "
|
||||
writeLine stdout,""
|
||||
|
||||
@@ -245,25 +245,25 @@ proc SplitPage[T,D](n, left: PNode[T,D], xi: int, Akey:var T, Avalue:var D): PNo
|
||||
result.slots.newSeq(cLenCenter)
|
||||
result.count = cCenter
|
||||
if x == cCenter:
|
||||
for i in 0..cCenter -1: shallowCopy(it1[i], left.slots[i])
|
||||
for i in 0..cCenter -1: shallowCopy(result.slots[i], left.slots[cCenter + i])
|
||||
for i in 0..cCenter-1: shallowCopy(it1[i], left.slots[i])
|
||||
for i in 0..cCenter-1: shallowCopy(result.slots[i], left.slots[cCenter + i])
|
||||
result.left = n
|
||||
else :
|
||||
if x < cCenter :
|
||||
for i in 0..x-1: shallowCopy(it1[i], left.slots[i])
|
||||
it1[x] = setItem(Akey, Avalue, n)
|
||||
for i in x+1 .. cCenter -1: shallowCopy(it1[i], left.slots[i-1])
|
||||
var w = left.slots[cCenter -1]
|
||||
for i in x+1 .. cCenter-1: shallowCopy(it1[i], left.slots[i-1])
|
||||
var w = left.slots[cCenter-1]
|
||||
Akey = w.key
|
||||
Avalue = w.value
|
||||
result.left = w.node
|
||||
for i in 0..cCenter -1: shallowCopy(result.slots[i], left.slots[cCenter + i])
|
||||
for i in 0..cCenter-1: shallowCopy(result.slots[i], left.slots[cCenter + i])
|
||||
else :
|
||||
for i in 0..cCenter -1: shallowCopy(it1[i], left.slots[i])
|
||||
for i in 0..cCenter-1: shallowCopy(it1[i], left.slots[i])
|
||||
x = x - (cCenter + 1)
|
||||
for i in 0..x-1: shallowCopy(result.slots[i], left.slots[cCenter + i + 1])
|
||||
result.slots[x] = setItem(Akey, Avalue, n)
|
||||
for i in x+1 .. cCenter -1: shallowCopy(result.slots[i], left.slots[cCenter + i])
|
||||
for i in x+1 .. cCenter-1: shallowCopy(result.slots[i], left.slots[cCenter + i])
|
||||
var w = left.slots[cCenter]
|
||||
Akey = w.key
|
||||
Avalue = w.value
|
||||
@@ -290,7 +290,7 @@ proc internalPut[T,D](ANode: ref TNode[T,D], Akey: T, Avalue: D, Oldvalue: var D
|
||||
if x == 0 :
|
||||
n = n.left
|
||||
else :
|
||||
x = (-x) -1
|
||||
x = (-x)-1
|
||||
if x < n.count :
|
||||
n = n.slots[x].node
|
||||
else :
|
||||
|
||||
@@ -277,7 +277,7 @@ when isMainModule:
|
||||
s.flush
|
||||
|
||||
defPacket(Y, tuple[z: int8])
|
||||
proc `$`(z: Y): string = result = "Y("& $z.z &")"
|
||||
proc `$`(z: Y): string = result = "Y(" & $z.z & ")"
|
||||
defPacket(TestPkt, tuple[x: seq[Y]])
|
||||
var test = newTestPkt()
|
||||
test.x.add([newY(5), newY(4), newY(3), newY(2), newY(1)])
|
||||
|
||||
@@ -66,7 +66,7 @@ proc handlePackets*(server: PServer; buf: PBuffer) =
|
||||
proc updateFileProgress*() =
|
||||
let progress = currentFileTransfer.pos / currentFileTransfer.fullLen
|
||||
downloadProgress.bg.setSize(vec2f(progress * 100, 20))
|
||||
downloadProgress.setString($currentFileTransfer.pos &'/'& $currentFileTransfer.fullLen)
|
||||
downloadProgress.setString($currentFileTransfer.pos & '/' & $currentFileTransfer.fullLen)
|
||||
|
||||
## HFileTransfer
|
||||
proc handleFilePartRecv*(serv: PServer; buffer: PBuffer) {.procvar.} =
|
||||
|
||||
@@ -573,13 +573,13 @@ proc importItem(data: PJsonNode; errors: var seq[string]): PItemRecord =
|
||||
elif data[2]["bullet"].kind == JObject:
|
||||
result.bullet = importBullet(data[2]["bullet"], errors)
|
||||
else:
|
||||
errors.add "UNKNOWN BULLET TYPE for item "& result.name
|
||||
errors.add "UNKNOWN BULLET TYPE for item " & result.name
|
||||
of "ammo":
|
||||
result.kind = Ammo
|
||||
of "utility":
|
||||
nil
|
||||
else:
|
||||
errors.add "Invalid item type \""& data[1].str &"\" for item "& result.name
|
||||
errors.add "Invalid item type \""&data[1].str&"\" for item "&result.name
|
||||
|
||||
proc importBullet(data: PJsonNode; errors: var seq[string]): PBulletRecord =
|
||||
new(result)
|
||||
|
||||
@@ -146,7 +146,7 @@ task "download", "download game assets":
|
||||
|
||||
task "zip-lib", "zip up the libs dir":
|
||||
var z: TZipArchive
|
||||
if not z.open("libs-"& getDateStr() &".zip", fmReadWrite):
|
||||
if not z.open("libs-" & getDateStr() & ".zip", fmReadWrite):
|
||||
quit "Could not open zip"
|
||||
for file in walkDirRec("libs", {pcFile, pcDir}):
|
||||
echo "adding file ", file
|
||||
|
||||
@@ -764,7 +764,7 @@ proc match*(s: string, pattern: TPeg, matches: var openarray[string],
|
||||
## returned.
|
||||
var c: TCaptures
|
||||
c.origStart = start
|
||||
result = rawMatch(s, pattern, start, c) == len(s) -start
|
||||
result = rawMatch(s, pattern, start, c) == len(s)-start
|
||||
if result:
|
||||
for i in 0..c.ml-1:
|
||||
matches[i] = substr(s, c.matches[i][0], c.matches[i][1])
|
||||
|
||||
@@ -10,14 +10,14 @@ import strutils
|
||||
import os
|
||||
|
||||
type
|
||||
TMessageReceivedEventArgs = object of TEventArgs
|
||||
TMessageReceivedEventArgs = object of EventArgs
|
||||
Nick*: string
|
||||
Message*: string
|
||||
TIRC = object
|
||||
EventEmitter: TEventEmitter
|
||||
MessageReceivedHandler*: TEventHandler
|
||||
Socket: TSocket
|
||||
Thread: TThread[TIRC]
|
||||
EventEmitter: EventEmitter
|
||||
MessageReceivedHandler*: EventHandler
|
||||
Socket: Socket
|
||||
Thread: Thread[TIRC]
|
||||
|
||||
proc initIRC*(): TIRC =
|
||||
result.Socket = socket()
|
||||
@@ -49,8 +49,8 @@ proc handleData(irc: TIRC) {.thread.} =
|
||||
return
|
||||
|
||||
proc Connect*(irc: var TIRC, nick: string, host: string, port: int = 6667) =
|
||||
connect(irc.Socket ,host ,TPort(port),TDomain.AF_INET)
|
||||
send(irc.Socket,"USER " & nick & " " & nick & " " & nick & " " & nick &"\r\L")
|
||||
connect(irc.Socket, host, TPort(port), TDomain.AF_INET)
|
||||
send(irc.Socket,"USER " & nick & " " & nick & " " & nick & " " & nick & "\r\L")
|
||||
send(irc.Socket,"NICK " & nick & "\r\L")
|
||||
var thread: TThread[TIRC]
|
||||
createThread(thread, handleData, irc)
|
||||
|
||||
@@ -33,6 +33,10 @@ News
|
||||
|
||||
``echo $ foo`` continues to be parsed as ``(echo) $ (foo)``.
|
||||
|
||||
This also means that ``-1`` is always parsed as prefix operator so
|
||||
code like ``0..kArraySize div 2 -1`` needs to be changed to
|
||||
``0..kArraySize div 2 - 1``.
|
||||
|
||||
|
||||
Iterator changes
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Reference in New Issue
Block a user