mirror of
https://github.com/nim-lang/Nim.git
synced 2026-08-09 00:30:58 +00:00
59 lines
979 B
Nim
59 lines
979 B
Nim
discard """
|
|
output: '''
|
|
Hello
|
|
1
|
|
'''
|
|
"""
|
|
|
|
|
|
block t8357:
|
|
type T = ref int
|
|
|
|
let r = new(string)
|
|
r[] = "Hello"
|
|
echo r[]
|
|
|
|
|
|
block t8683:
|
|
proc foo[T](bar: proc (x, y: T): int = system.cmp, baz: int) =
|
|
echo "1"
|
|
proc foo[T](bar: proc (x, y: T): int = system.cmp) =
|
|
echo "2"
|
|
|
|
foo[int](baz = 5)
|
|
|
|
|
|
block tnestprc:
|
|
proc Add3(x: int): int =
|
|
proc add(x, y: int): int {.noconv.} =
|
|
result = x + y
|
|
result = add(x, 3)
|
|
doAssert Add3(7) == 10
|
|
|
|
block:
|
|
type A = object
|
|
c: int
|
|
type H = proc(): lent A {.nimcall.}
|
|
const u = A(c: 0)
|
|
proc e(T: typedesc): lent A = u
|
|
proc y(T: typedesc): H =
|
|
proc(): lent A {.nimcall.} = T.e
|
|
discard y(int)
|
|
|
|
block:
|
|
type A = object
|
|
c: int
|
|
type H = proc(): lent A {.nimcall.}
|
|
let u = A(c: 0)
|
|
proc y(_: int | int): H =
|
|
proc(): lent A {.nimcall.} = u
|
|
discard y(0)
|
|
|
|
block:
|
|
type A = object
|
|
c: int
|
|
type H = proc(): lent A {.nimcall.}
|
|
let u = A()
|
|
let _: H = proc(): lent A {.nimcall.} = u
|
|
|