parent
ebb15505dd
commit
51cd3bd86f
9 changed files with 95 additions and 27 deletions
10
tests/js/tbasicenum.nim
Normal file
10
tests/js/tbasicenum.nim
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
discard """
|
||||
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)
|
||||
12
tests/js/tenumhole.nim
Normal file
12
tests/js/tenumhole.nim
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
discard """
|
||||
output: "first0second32third64"
|
||||
"""
|
||||
|
||||
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
|
||||
|
||||
echo Holed(x[0]),ord Holed(x[0]),Holed(x[1]),ord Holed(x[1]),Holed(x[2]),ord Holed(x[2])
|
||||
12
tests/js/tenumnegkey.nim
Normal file
12
tests/js/tenumnegkey.nim
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
discard """
|
||||
output: "first-12second32third64"
|
||||
"""
|
||||
|
||||
type Holed = enum
|
||||
hFirst = (-12,"first")
|
||||
hSecond = (32,"second")
|
||||
hThird = (64,"third")
|
||||
|
||||
var x = @[-12,32,64] # This is just to avoid the compiler inlining the value of the enum
|
||||
|
||||
echo Holed(x[0]),ord Holed(x[0]),Holed(x[1]),ord Holed(x[1]),Holed(x[2]),ord Holed(x[2])
|
||||
19
tests/js/tenumoffset.nim
Normal file
19
tests/js/tenumoffset.nim
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
discard """
|
||||
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