new tester; all tests categorized
This commit is contained in:
parent
51ee524109
commit
20b5f31c03
481 changed files with 794 additions and 2506 deletions
|
|
@ -1,66 +0,0 @@
|
|||
# Test the alias analysis
|
||||
|
||||
type
|
||||
TAnalysisResult* = enum
|
||||
arNo, arMaybe, arYes
|
||||
|
||||
proc isPartOf*[S, T](a: S, b: T): TAnalysisResult {.
|
||||
magic: "IsPartOf", noSideEffect.}
|
||||
## not yet exported properly.
|
||||
|
||||
template compileTimeAssert(cond: expr) =
|
||||
when not cond:
|
||||
{.compile: "is false: " & astToStr(cond).}
|
||||
|
||||
template `<|` (a, b: expr) =
|
||||
compileTimeAssert isPartOf(a, b) == arYes
|
||||
|
||||
template `!<|` (a, b: expr) =
|
||||
compileTimeAssert isPartOf(a, b) == arNo
|
||||
|
||||
template `?<|` (a, b: expr) =
|
||||
compileTimeAssert isPartOf(a, b) == arMaybe
|
||||
|
||||
type
|
||||
TA {.inheritable.} = object
|
||||
TC = object of TA
|
||||
arr: array[0..3, int]
|
||||
le, ri: ref TC
|
||||
f: string
|
||||
c: char
|
||||
se: seq[TA]
|
||||
|
||||
proc p(param1, param2: TC): TC =
|
||||
var
|
||||
local: TC
|
||||
plocal: ptr TC
|
||||
plocal2: ptr TA
|
||||
|
||||
local.arr <| local
|
||||
local.arr[0] <| local
|
||||
local.arr[2] !<| local.arr[1]
|
||||
|
||||
plocal2[] ?<| local
|
||||
|
||||
param1 ?<| param2
|
||||
|
||||
local.arr[0] !<| param1
|
||||
local.arr !<| param1
|
||||
local.le[] ?<| param1
|
||||
|
||||
param1 !<| local.arr[0]
|
||||
param1 !<| local.arr
|
||||
param1 ?<| local.le[]
|
||||
|
||||
result !<| local
|
||||
result <| result
|
||||
|
||||
var
|
||||
a, b: int
|
||||
x: TC
|
||||
|
||||
a <| a
|
||||
a !<| b
|
||||
|
||||
discard p(x, x)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue