clarify the meaning of the 'auto' metatype; 'auto' is now bind-multiple; fixes #3224

This commit is contained in:
Araq 2015-09-14 20:25:52 +02:00
commit 0aa908c86c
7 changed files with 91 additions and 55 deletions

View file

@ -7,7 +7,7 @@ type
proc getTypeName(t: typedesc): string = t.name
proc foo(T: typedesc[float], a: expr): string =
proc foo(T: typedesc[float], a: auto): string =
result = "float " & $(a.len > 5)
proc foo(T: typedesc[TFoo], a: int): string =

View file

@ -0,0 +1,20 @@
discard """
output: '''10
10.0
1.0hiho'''
"""
# bug #3224
proc f(x: auto): auto =
result = $(x+10)
proc f(x, y: auto): auto =
result = $(x+y)
echo f(0) # prints 10
echo f(0.0) # prints 10.0
proc `+`(a, b: string): string = a & b
echo f(0.7, 0.3), f("hi", "ho")