summary refs log tree commit diff stats
path: root/tests/generics/timports.nim
blob: 6b71cb6d3b44921315b8d708d66969ee88ac43c7 (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
discard """
  output: '''
317
TEST2
5 5 5
false
'''
"""

import mbind_bracket, mclosed_sym, mdotlookup, mmodule_same_as_proc


block tbind_bracket:
  # bug #2599
  # also test that `[]` can be passed now as a first class construct:

  template takeBracket(x, a, i: untyped) =
    echo x(a, i)

  var a: array[10, int]
  a[8] = 317

  takeBracket(`[]`, a, 8)

  let reg = newRegistry[UUIDObject]()
  reg.register(UUIDObject())


block tclosed_sym:
  # bug #2664
  proc same(r:R, d:int) = echo "TEST1"
  doIt(Data[int](d:123), R())

import strutils, unicode # ambiguous `strip`

block tdotlookup:
  foo(7)
  # bug #1444
  fn(4)
  doAssert doStrip(123) == "123"
  # bug #14254
  doAssert baz2[float](1'i8) == 1
  # bug #21883
  proc abc[T: not not int](x: T): T =
    var x = x
    x.set("hello", "world")
    result = x
  doAssert abc(5) == 10
  block: # ensure normal call is consistent with dot call 
    proc T(x: int): float = x.float
    proc foo[T](x: int) =
      doAssert typeof(T(x)) is typeof(x.T)
    foo[uint](123)

block tmodule_same_as_proc:
  # bug #1965
  proc test[T](t: T) =
    mmodule_same_as_proc"a"
  test(0)