summary refs log tree commit diff stats
path: root/tests/importalls/m1.nim
blob: b6ccbf5da2a34c6c176796e7ad1717ef3e03d8cf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import ./m2
import ./m3 {.all.} as m3
from ./m3 as m3Bis import nil

doAssert m3h2 == 2
export m3h2

export m3Bis.m3p1

const foo0* = 2
const foo1 = bar1

const foo1Aux = 2
export foo1Aux

doAssert not declared(bar2)
doAssert not compiles(bar2)

var foo2 = 2
let foo3 = 2

type Foo4 = enum
  kg1, kg2

type Foo4b {.pure.} = enum
  foo4b1, foo4b2

type Foo5 = object
  z1: string
  z2: Foo4
  z3: int
  z4*: int

proc `z3`*(a: Foo5): auto =
  a.z3 * 10

proc foo6(): auto = 2
proc foo6b*(): auto = 2
template foo7: untyped = 2
macro foo8(): untyped = discard
template foo9(a: int) = discard

block:
  template foo10: untyped = 2
  type Foo11 = enum
    kg1b, kg2b
  proc foo12(): auto = 2

proc initFoo5*(z3: int): Foo5 = Foo5(z3: z3)

func foo13(): auto = 2
iterator foo14a(): int = discard
iterator foo14b*(): int = discard
iterator foo14c(): int {.closure.} = discard
iterator foo14d(): int {.inline.} = discard

# fwd declare
proc foo15(): int
proc foo15(): int = 2

proc foo16*(): int
proc foo16(): int = 2

proc foo17*(): int
proc foo17*(): int = 2

# other
type A1 = distinct int
type A2 = distinct int
converter foo18(x: A1): A2 = discard