multi-methods need to be explicitly enabled (#10856)
* multi-methods need to be explicitly enabled * update changelog, manual and tutorial
This commit is contained in:
parent
9e28d52c2f
commit
afeca3d9fe
8 changed files with 36 additions and 7 deletions
|
|
@ -13,7 +13,7 @@ Advanced commands:
|
|||
//genDepend generate a DOT file containing the
|
||||
module dependency graph
|
||||
//dump dump all defined conditionals and search paths
|
||||
see also: --dump.format:json (useful with: ` | jq`)
|
||||
see also: --dump.format:json (useful with: ` | jq`)
|
||||
//check checks the project for syntax and semantic
|
||||
|
||||
Runtime checks (see -x):
|
||||
|
|
@ -78,7 +78,8 @@ Advanced options:
|
|||
--tlsEmulation:on|off turn thread local storage emulation on|off
|
||||
--taintMode:on|off turn taint mode on|off
|
||||
--implicitStatic:on|off turn implicit compile time evaluation on|off
|
||||
--patterns:on|off turn pattern matching on|off
|
||||
--patterns:on|off turn term rewriting macros on|off
|
||||
--multimethods:on|off turn multi-methods on|off
|
||||
--memTracker:on|off turn memory tracker on|off
|
||||
--hotCodeReloading:on|off
|
||||
turn support for hot code reloading on|off
|
||||
|
|
|
|||
|
|
@ -3716,6 +3716,9 @@ The ``[]`` subscript operator for arrays/openarrays/sequences can be overloaded.
|
|||
Multi-methods
|
||||
=============
|
||||
|
||||
**Note:** Starting from Nim 0.20, to use multi-methods one must explicitly pass
|
||||
``--multimethods:on`` when compiling.
|
||||
|
||||
Procedures always use static dispatch. Multi-methods use dynamic
|
||||
dispatch. For dynamic dispatch to work on an object it should be a reference
|
||||
type as well.
|
||||
|
|
@ -6222,7 +6225,7 @@ Predicate Meaning
|
|||
=================== =====================================================
|
||||
|
||||
Predicates that share their name with a keyword have to be escaped with
|
||||
backticks: `` `const` ``.
|
||||
backticks.
|
||||
The ``alias`` and ``noalias`` predicates refer not only to the matching AST,
|
||||
but also to every other bound parameter; syntactically they need to occur after
|
||||
the ordinary AST predicates:
|
||||
|
|
|
|||
|
|
@ -308,6 +308,9 @@ Note that in the example the constructors ``newLit`` and ``newPlus`` are procs
|
|||
because it makes more sense for them to use static binding, but ``eval`` is a
|
||||
method because it requires dynamic binding.
|
||||
|
||||
**Note:** Starting from Nim 0.20, to use multi-methods one must explicitly pass
|
||||
``--multimethods:on`` when compiling.
|
||||
|
||||
In a multi-method all parameters that have an object type are used for the
|
||||
dispatching:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue