mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-06 11:54:11 +00:00
50
tests/system/tstatic.nim
Normal file
50
tests/system/tstatic.nim
Normal file
@@ -0,0 +1,50 @@
|
||||
discard """
|
||||
targets: "c cpp js"
|
||||
"""
|
||||
|
||||
import std/strutils
|
||||
|
||||
# bug #6133
|
||||
template main() =
|
||||
block:
|
||||
block:
|
||||
proc foo(q: string, a: int): int =
|
||||
result = q.len
|
||||
|
||||
proc foo(q: static[string]): int =
|
||||
result = foo(q, 5)
|
||||
|
||||
doAssert foo("123") == 3
|
||||
|
||||
block:
|
||||
type E = enum A
|
||||
|
||||
if false:
|
||||
var e = A
|
||||
discard $e
|
||||
|
||||
proc foo(a: string): int =
|
||||
len(a) # 16640
|
||||
|
||||
proc foo(a: static[bool]): int {.used.} =
|
||||
discard
|
||||
|
||||
doAssert foo("") == 0
|
||||
|
||||
block:
|
||||
proc foo(a: string): int =
|
||||
len(a)
|
||||
|
||||
proc foo(a: static[bool]): int {.used.} =
|
||||
discard
|
||||
|
||||
doAssert foo("abc") == 3
|
||||
|
||||
block:
|
||||
proc parseInt(f: static[bool]): int {.used.} = discard
|
||||
|
||||
doAssert "123".parseInt == 123
|
||||
|
||||
|
||||
static: main()
|
||||
main()
|
||||
Reference in New Issue
Block a user