summary refs log tree commit diff stats
path: root/tests/misc/tvarious.nim
blob: 8124b3fc70ae6976ed3a9be33e08abcd5b6d0e1a (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
# Test various aspects

# bug #572
var a=12345678901'u64

var x = (x: 42, y: (a: 8, z: 10))
echo x.y

import
  mvarious

type
  PA = ref TA
  PB = ref TB

  TB = object
    a: PA

  TA = object
    b: TB
    x: int

proc getPA(): PA =
  var
    b: bool
  b = not false
  return nil

# bug #501
proc f(): int = 54

var
  global: int

var
  s: string
  i: int
  r: TA

r.b.a.x = 0
global = global + 1
exportme()
write(stdout, "Hallo wie heißt du? ")
write(stdout, getPA().x)
s = readLine(stdin)
i = 0
while i < s.len:
  if s[i] == 'c': write(stdout, "'c' in deinem Namen gefunden\n")
  i = i + 1

write(stdout, "Du heißt " & s)

# bug #544

# yay, fails again
type Bar [T; I:range] = array[I, T]
proc foo*[T; I:range](a, b: Bar[T, I]): Bar[T, I] =
  when len(a) != 3:
    # Error: constant expression expected
    {.fatal:"Dimensions have to be 3".}
  #...
block:
  var a, b: Bar[int, range[0..2]]
  discard foo(a, b)

# bug #1788

echo "hello" & char(ord(' ')) & "world"