make tests green again
This commit is contained in:
parent
5ac94d26b3
commit
74fe7a800b
19 changed files with 103 additions and 103 deletions
|
|
@ -388,13 +388,13 @@ type
|
|||
cdecl.}
|
||||
|
||||
##cp property emulators
|
||||
template defGetter(otype: typedesc, memberType: typedesc, memberName: expr, procName: expr): stmt {.immediate.} =
|
||||
template defGetter(otype: typedesc, memberType: typedesc, memberName, procName: untyped) =
|
||||
proc `get procName`*(obj: otype): memberType {.cdecl.} =
|
||||
return obj.memberName
|
||||
template defSetter(otype: typedesc, memberType: typedesc, memberName: expr, procName: expr): stmt {.immediate.} =
|
||||
template defSetter(otype: typedesc, memberType: typedesc, memberName, procName: untyped) =
|
||||
proc `set procName`*(obj: otype, value: memberType) {.cdecl.} =
|
||||
obj.memberName = value
|
||||
template defProp(otype: typedesc, memberType: typedesc, memberName: expr, procName: expr): stmt {.immediate.} =
|
||||
template defProp(otype: typedesc, memberType: typedesc, memberName, procName: untyped) =
|
||||
defGetter(otype, memberType, memberName, procName)
|
||||
defSetter(otype, memberType, memberName, procName)
|
||||
|
||||
|
|
@ -908,7 +908,7 @@ proc getShapes*(arb: PArbiter, a, b: var PShape) {.inline.} =
|
|||
|
||||
#/ A macro shortcut for defining and retrieving the shapes from an arbiter.
|
||||
#define CP_ARBITER_GET_SHAPES(arb, a, b) cpShape *a, *b; cpArbiterGetShapes(arb, &a, &b);
|
||||
template getShapes*(arb: PArbiter, name1, name2: expr): stmt {.immediate.} =
|
||||
template getShapes*(arb: PArbiter, name1, name2: untyped) =
|
||||
var name1, name2: PShape
|
||||
getShapes(arb, name1, name2)
|
||||
|
||||
|
|
@ -923,7 +923,7 @@ template getShapes*(arb: PArbiter, name1, name2: expr): stmt {.immediate.} =
|
|||
|
||||
#/ A macro shortcut for defining and retrieving the bodies from an arbiter.
|
||||
#define CP_ARBITER_GET_BODIES(arb, a, b) cpBody *a, *b; cpArbiterGetBodies(arb, &a, &b);
|
||||
template getBodies*(arb: PArbiter, name1, name2: expr): stmt {.immediate.} =
|
||||
template getBodies*(arb: PArbiter, name1, name2: untyped) =
|
||||
var name1, name2: PBOdy
|
||||
getBodies(arb, name1, name2)
|
||||
|
||||
|
|
@ -947,11 +947,11 @@ proc getDepth*(arb: PArbiter; i: cint): CpFloat {.
|
|||
cdecl, importc: "cpArbiterGetDepth", dynlib: Lib.}
|
||||
|
||||
##Shapes
|
||||
template defShapeSetter(memberType: typedesc, memberName: expr, procName: expr, activates: bool): stmt {.immediate.} =
|
||||
template defShapeSetter(memberType: typedesc, memberName: untyped, procName: untyped, activates: bool) =
|
||||
proc `set procName`*(obj: PShape, value: memberType) {.cdecl.} =
|
||||
if activates and obj.body != nil: obj.body.activate()
|
||||
obj.memberName = value
|
||||
template defShapeProp(memberType: typedesc, memberName: expr, procName: expr, activates: bool): stmt {.immediate.} =
|
||||
template defShapeProp(memberType: typedesc, memberName: untyped, procName: untyped, activates: bool) =
|
||||
defGetter(PShape, memberType, memberName, procName)
|
||||
defShapeSetter(memberType, memberName, procName, activates)
|
||||
|
||||
|
|
@ -1272,11 +1272,11 @@ proc activateBodies(constraint: PConstraint) {.inline.} =
|
|||
# cpConstraintActivateBodies(constraint); \
|
||||
# constraint->member = value; \
|
||||
# }
|
||||
template defConstraintSetter(memberType: typedesc, member: expr, name: expr): stmt {.immediate.} =
|
||||
template defConstraintSetter(memberType: typedesc, member, name: untyped) =
|
||||
proc `set name`*(constraint: PConstraint, value: memberType) {.cdecl.} =
|
||||
activateBodies(constraint)
|
||||
constraint.member = value
|
||||
template defConstraintProp(memberType: typedesc, member: expr, name: expr): stmt {.immediate.} =
|
||||
template defConstraintProp(memberType: typedesc, member, name: untyped) =
|
||||
defGetter(PConstraint, memberType, member, name)
|
||||
defConstraintSetter(memberType, member, name)
|
||||
# CP_DefineConstraintStructGetter(cpSpace*, CP_PRIVATE(space), Space)
|
||||
|
|
@ -1306,18 +1306,18 @@ proc getImpulse*(constraint: PConstraint): CpFloat {.inline.} =
|
|||
# cpConstraintActivateBodies(constraint); \
|
||||
# ((struct *)constraint)->member = value; \
|
||||
# }
|
||||
template constraintCheckCast(constraint: PConstraint, ctype: expr): stmt {.immediate.} =
|
||||
template constraintCheckCast(constraint: PConstraint, ctype: untyped) =
|
||||
assert(constraint.klass == `ctype getClass`(), "Constraint is the wrong class")
|
||||
template defCGetter(ctype: expr, memberType: typedesc, member: expr, name: expr): stmt {.immediate.} =
|
||||
template defCGetter(ctype: untyped, memberType: typedesc, member, name: untyped) =
|
||||
proc `get ctype name`*(constraint: PConstraint): memberType {.cdecl.} =
|
||||
constraintCheckCast(constraint, ctype)
|
||||
result = cast[`P ctype`](constraint).member
|
||||
template defCSetter(ctype: expr, memberType: typedesc, member: expr, name: expr): stmt {.immediate.} =
|
||||
template defCSetter(ctype: untyped, memberType: typedesc, member, name: untyped) =
|
||||
proc `set ctype name`*(constraint: PConstraint, value: memberType) {.cdecl.} =
|
||||
constraintCheckCast(constraint, ctype)
|
||||
activateBodies(constraint)
|
||||
cast[`P ctype`](constraint).member = value
|
||||
template defCProp(ctype: expr, memberType: typedesc, member: expr, name: expr): stmt {.immediate.} =
|
||||
template defCProp(ctype: untyped, memberType: typedesc, member, name: untyped) =
|
||||
defCGetter(ctype, memberType, member, name)
|
||||
defCSetter(ctype, memberType, member, name)
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ const
|
|||
ENET_VERSION_MAJOR* = 1
|
||||
ENET_VERSION_MINOR* = 3
|
||||
ENET_VERSION_PATCH* = 3
|
||||
template ENET_VERSION_CREATE(major, minor, patch: expr): expr =
|
||||
template ENET_VERSION_CREATE(major, minor, patch: untyped): untyped =
|
||||
(((major) shl 16) or ((minor) shl 8) or (patch))
|
||||
|
||||
const
|
||||
|
|
@ -277,22 +277,22 @@ when defined(Linux) or true:
|
|||
dataLength*: csize
|
||||
TENetSocketSet* = Tfd_set
|
||||
## see if these are different on win32, if not then get rid of these
|
||||
template ENET_HOST_TO_NET_16*(value: expr): expr =
|
||||
template ENET_HOST_TO_NET_16*(value: untyped): untyped =
|
||||
(htons(value))
|
||||
template ENET_HOST_TO_NET_32*(value: expr): expr =
|
||||
template ENET_HOST_TO_NET_32*(value: untyped): untyped =
|
||||
(htonl(value))
|
||||
template ENET_NET_TO_HOST_16*(value: expr): expr =
|
||||
template ENET_NET_TO_HOST_16*(value: untyped): untyped =
|
||||
(ntohs(value))
|
||||
template ENET_NET_TO_HOST_32*(value: expr): expr =
|
||||
template ENET_NET_TO_HOST_32*(value: untyped): untyped =
|
||||
(ntohl(value))
|
||||
|
||||
template ENET_SOCKETSET_EMPTY*(sockset: expr): expr =
|
||||
template ENET_SOCKETSET_EMPTY*(sockset: untyped): untyped =
|
||||
FD_ZERO(addr((sockset)))
|
||||
template ENET_SOCKETSET_ADD*(sockset, socket: expr): expr =
|
||||
template ENET_SOCKETSET_ADD*(sockset, socket: untyped): untyped =
|
||||
FD_SET(socket, addr((sockset)))
|
||||
template ENET_SOCKETSET_REMOVE*(sockset, socket: expr): expr =
|
||||
template ENET_SOCKETSET_REMOVE*(sockset, socket: untyped): untyped =
|
||||
FD_CLEAR(socket, addr((sockset)))
|
||||
template ENET_SOCKETSET_CHECK*(sockset, socket: expr): expr =
|
||||
template ENET_SOCKETSET_CHECK*(sockset, socket: untyped): untyped =
|
||||
FD_ISSET(socket, addr((sockset)))
|
||||
|
||||
when defined(Windows):
|
||||
|
|
@ -606,7 +606,7 @@ proc protocolCommandSize*(commandNumber: cuchar): csize{.
|
|||
|
||||
{.pop.}
|
||||
|
||||
from hashes import `!$`, `!&`, THash, hash
|
||||
proc hash*(x: TAddress): THash {.nimcall, noSideEffect.} =
|
||||
from hashes import `!$`, `!&`, Hash, hash
|
||||
proc hash*(x: TAddress): Hash {.nimcall, noSideEffect.} =
|
||||
result = !$(hash(x.host.int32) !& hash(x.port.int16))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
import macros, macro_dsl, estreams
|
||||
from strutils import format
|
||||
|
||||
template newLenName(): stmt {.immediate.} =
|
||||
template newLenName() =
|
||||
let lenName {.inject.} = ^("len"& $lenNames)
|
||||
inc(lenNames)
|
||||
|
||||
template defPacketImports*(): stmt {.immediate, dirty.} =
|
||||
template defPacketImports*() {.dirty.} =
|
||||
import macros, macro_dsl, estreams
|
||||
from strutils import format
|
||||
|
||||
macro defPacket*(typeNameN: expr, typeFields: expr): stmt {.immediate.} =
|
||||
macro defPacket*(typeNameN: untyped, typeFields: untyped): untyped =
|
||||
result = newNimNode(nnkStmtList)
|
||||
let
|
||||
typeName = quoted2ident(typeNameN)
|
||||
|
|
@ -60,7 +60,7 @@ macro defPacket*(typeNameN: expr, typeFields: expr): stmt {.immediate.} =
|
|||
let
|
||||
name = typeFields[i][0]
|
||||
dotName = packetID.dot(name)
|
||||
resName = newIdentNode(!"result").dot(name)
|
||||
resName = newIdentNode("result").dot(name)
|
||||
case typeFields[i][1].kind
|
||||
of nnkBracketExpr: #ex: paddedstring[32, '\0'], array[range, type]
|
||||
case $typeFields[i][1][0].ident
|
||||
|
|
@ -141,7 +141,7 @@ macro defPacket*(typeNameN: expr, typeFields: expr): stmt {.immediate.} =
|
|||
|
||||
const emptyFields = {nnkEmpty, nnkNilLit}
|
||||
var objFields = newNimNode(nnkRecList)
|
||||
for i in 0.. < len(typeFields):
|
||||
for i in 0 ..< len(typeFields):
|
||||
let fname = typeFields[i][0]
|
||||
constructorParams.add(newNimNode(nnkIdentDefs).und(
|
||||
fname,
|
||||
|
|
@ -200,7 +200,7 @@ proc iddefs*(a: string; b: NimNode): NimNode {.compileTime.} =
|
|||
proc varTy*(a: NimNode): NimNode {.compileTime.} =
|
||||
result = newNimNode(nnkVarTy).und(a)
|
||||
|
||||
macro forwardPacket*(typeName: expr, underlyingType: expr): stmt {.immediate.} =
|
||||
macro forwardPacket*(typeName: untyped, underlyingType: untyped): untyped =
|
||||
var
|
||||
packetID = ^"p"
|
||||
streamID = ^"s"
|
||||
|
|
@ -234,7 +234,7 @@ macro forwardPacket*(typeName: expr, underlyingType: expr): stmt {.immediate.} =
|
|||
echo "unknown type:", repr(underlyingtype)
|
||||
echo(repr(result))
|
||||
|
||||
template forwardPacketT*(typeName: expr; underlyingType: expr): stmt {.dirty, immediate.} =
|
||||
template forwardPacketT*(typeName: untyped; underlyingType: untyped) {.dirty.} =
|
||||
proc `read typeName`*(buffer: PBuffer): typeName =
|
||||
#discard readData(s, addr result, sizeof(result))
|
||||
var res: underlyingType
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ proc und*(a: NimNode; b: varargs[NimNode]): NimNode {.compileTime.} =
|
|||
|
||||
proc `^`*(a: string): NimNode {.compileTime.} =
|
||||
## new ident node
|
||||
result = newIdentNode(!a)
|
||||
result = newIdentNode(a)
|
||||
proc `[]`*(a, b: NimNode): NimNode {.compileTime.} =
|
||||
## new bracket expression: node[node] not to be confused with node[indx]
|
||||
result = newNimNode(nnkBracketExpr).und(a, b)
|
||||
|
|
@ -34,7 +34,7 @@ proc emptyNode*(): NimNode {.compileTime.} =
|
|||
proc dot*(left, right: NimNode): NimNode {.compileTime.} =
|
||||
result = newNimNode(nnkDotExpr).und(left, right)
|
||||
proc prefix*(a: string, b: NimNode): NimNode {.compileTime.} =
|
||||
result = newNimNode(nnkPrefix).und(newIdentNode(!a), b)
|
||||
result = newNimNode(nnkPrefix).und(newIdentNode(a), b)
|
||||
|
||||
proc quoted2ident*(a: NimNode): NimNode {.compileTime.} =
|
||||
if a.kind != nnkAccQuoted:
|
||||
|
|
@ -45,13 +45,13 @@ proc quoted2ident*(a: NimNode): NimNode {.compileTime.} =
|
|||
result = ^pname
|
||||
|
||||
|
||||
macro `?`(a: expr): expr =
|
||||
macro `?`(a: untyped): untyped =
|
||||
## Character literal ?A #=> 'A'
|
||||
result = ($a[1].ident)[0].lit
|
||||
## echo(?F,?a,?t,?t,?y)
|
||||
|
||||
when isMainModule:
|
||||
macro foo(x: stmt): stmt =
|
||||
macro foo(x: untyped) =
|
||||
result = newNimNode(nnkStmtList)
|
||||
result.add(newNimNode(nnkCall).und(!!"echo", "Hello thar".lit))
|
||||
result.add(newCall("echo", lit("3 * 45 = "), (3.lit.infix("*", 45.lit))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue