mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
76 lines
1.0 KiB
Nim
76 lines
1.0 KiB
Nim
discard """
|
|
output: '''boo
|
|
3
|
|
44 3
|
|
more body code
|
|
yes
|
|
yes
|
|
block expression works'''
|
|
"""
|
|
|
|
template x(body): untyped =
|
|
body
|
|
44
|
|
|
|
template y(val, body): untyped =
|
|
body
|
|
val
|
|
|
|
proc mana =
|
|
let foo = x:
|
|
echo "boo"
|
|
var foo2: int
|
|
foo2 = y 3:
|
|
echo "3"
|
|
echo foo, " ", foo2
|
|
|
|
mana()
|
|
let other = x:
|
|
echo "more body code"
|
|
if true:
|
|
echo "yes"
|
|
else:
|
|
echo "no"
|
|
let outer = y(5):
|
|
echo "yes"
|
|
|
|
|
|
# bug #6609
|
|
type
|
|
TextureInternalFormat = enum RED, RGB, RGBA
|
|
|
|
const channels = 4
|
|
|
|
let format =
|
|
if channels == 1:
|
|
TextureInternalFormat.RED
|
|
elif channels == 3:
|
|
TextureInternalFormat.RGB
|
|
elif channels == 4:
|
|
TextureInternalFormat.RGBA
|
|
else:
|
|
echo "Texture Format Unknown, assuming RGB" #This echo causes an error
|
|
TextureInternalFormat.RGB
|
|
|
|
# Block as expressions #3827
|
|
block:
|
|
let x = block:
|
|
var y = 2
|
|
echo "block expression works"
|
|
y*y
|
|
doAssert x == 4
|
|
|
|
|
|
# bug 10861
|
|
macro foo(a: untyped): untyped =
|
|
a
|
|
|
|
let c1 = foo:
|
|
1 + 1
|
|
|
|
const c2 = foo:
|
|
1 + 1
|
|
|
|
const c3 =
|
|
foo: 1 + 1
|