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

@ -116,7 +116,7 @@ type class matches
``array`` any array type
``set`` any set type
``seq`` any seq type
``auto`` any type
``any`` any type
================== ===================================================
Furthermore, every generic type automatically creates a type class of the same
@ -163,15 +163,6 @@ module to illustrate this:
Alternatively, the ``distinct`` type modifier can be applied to the type class
to allow each param matching the type class to bind to a different type.
If a proc param doesn't have a type specified, Nim will use the
``distinct auto`` type class (also known as ``any``). Note this behavior is
deprecated for procs; templates, however, support them:
.. code-block:: nim
# allow any combination of param types
proc concat(a, b): string = $a & $b # deprecated
proc concat(a, b: any): string = $a & $b # preferred
Procs written with the implicitly generic style will often need to refer to the
type parameters of the matched generic type. They can be easily accessed using
the dot syntax: