parent
ebb15505dd
commit
51cd3bd86f
9 changed files with 95 additions and 27 deletions
11
tests/enum/tbasicenum.nim
Normal file
11
tests/enum/tbasicenum.nim
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
discard """
|
||||
file: "tbasicenum.nim"
|
||||
output: "ABCDC"
|
||||
"""
|
||||
|
||||
type
|
||||
MyEnum = enum
|
||||
A,B,C,D
|
||||
# trick the optimizer with an seq:
|
||||
var x = @[A,B,C,D]
|
||||
echo x[0],x[1],x[2],x[3],MyEnum(2)
|
||||
|
|
@ -1,24 +1,16 @@
|
|||
discard """
|
||||
file: "tenumhole.nim"
|
||||
output: "my value A1my value Bconc2valueCabc4abc"
|
||||
output: "first0second32third64"
|
||||
"""
|
||||
|
||||
const
|
||||
strValB = "my value B"
|
||||
type Holed = enum
|
||||
hFirst = (0,"first")
|
||||
hSecond = (32,"second")
|
||||
hThird = (64,"third")
|
||||
|
||||
var x = @[0,32,64] # This is just to avoid the compiler inlining the value of the enum
|
||||
|
||||
type
|
||||
TMyEnum = enum
|
||||
valueA = (1, "my value A"),
|
||||
valueB = strValB & "conc",
|
||||
valueC,
|
||||
valueD = (4, "abc")
|
||||
|
||||
# test the new "proc body can be an expr" feature:
|
||||
proc getValue: TMyEnum = valueD
|
||||
|
||||
# trick the optimizer with a variable:
|
||||
var x = getValue()
|
||||
echo valueA, ord(valueA), valueB, ord(valueB), valueC, valueD, ord(valueD), x
|
||||
echo Holed(x[0]),ord Holed(x[0]),Holed(x[1]),ord Holed(x[1]),Holed(x[2]),ord Holed(x[2])
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
20
tests/enum/tenumoffset.nim
Normal file
20
tests/enum/tenumoffset.nim
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
discard """
|
||||
file: "tenumoffset.nim"
|
||||
output: "my value A1my value Bconc2valueCabc4abc"
|
||||
"""
|
||||
|
||||
const
|
||||
strValB = "my value B"
|
||||
|
||||
type
|
||||
TMyEnum = enum
|
||||
valueA = (1, "my value A"),
|
||||
valueB = strValB & "conc",
|
||||
valueC,
|
||||
valueD = (4, "abc")
|
||||
|
||||
proc getValue(i:int): TMyEnum = TMyEnum(i)
|
||||
|
||||
# trick the optimizer with a variable:
|
||||
var x = getValue(4)
|
||||
echo getValue(1), ord(valueA), getValue(2), ord(valueB), getValue(3), getValue(4), ord(valueD), x
|
||||
Loading…
Add table
Add a link
Reference in a new issue