mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-18 21:40:32 +00:00
fixes #1258
This commit is contained in:
@@ -225,6 +225,23 @@ a template. ``inject`` and ``gensym`` have no effect in ``dirty`` templates.
|
||||
|
||||
|
||||
|
||||
Limitations of the method invokation syntax
|
||||
-------------------------------------------
|
||||
|
||||
The expression ``x`` in ``x.f`` needs to be semantically checked (that means
|
||||
symbol lookup and type checking) before it can be decided that it needs to be
|
||||
rewritten to ``f(x)``. Therefore the dot syntax has some limiations when it
|
||||
is used to invoke templates/macros:
|
||||
|
||||
.. code-block:: nim
|
||||
template declareVar(name: expr): stmt =
|
||||
const name {.inject.} = 45
|
||||
|
||||
# Doesn't compile:
|
||||
unknownIdentifier.declareVar
|
||||
|
||||
|
||||
|
||||
Macros
|
||||
======
|
||||
|
||||
|
||||
Reference in New Issue
Block a user