blob: fcd5054ef468581e7b9c6c54b0988fd116f96a96 (
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
|
discard """
errormsg: "type mismatch: got (Bar[system.int])"
nimout: '''
t3330.nim(40, 4) Error: type mismatch: got (Bar[system.int])
but expected one of:
proc test(foo: Foo[int])
t3330.nim(25, 8) Hint: Non-matching candidates for add(k, string, T)
proc add(x: var string; y: string)
proc add(x: var string; y: char)
proc add(result: var string; x: int64)
proc add(x: var string; y: cstring)
proc add(result: var string; x: float)
proc add[T](x: var seq[T]; y: openArray[T])
proc add[T](x: var seq[T]; y: T)
t3330.nim(25, 8) template/generic instantiation from here
t3330.nim(32, 6) Foo: 'bar.value' cannot be assigned to
t3330.nim(25, 8) template/generic instantiation from here
t3330.nim(33, 6) Foo: 'bar.x' cannot be assigned to
'''
"""
type
Foo[T] = concept k
add(k, string, T)
Bar[T] = object
value: T
x: string
proc add[T](bar: Bar[T], x: string, val: T) =
bar.value = val
bar.x = x
proc test(foo: Foo[int]) =
foo.add("test", 42)
echo(foo.x)
var bar = Bar[int]()
bar.test()
|