This commit is contained in:
Arne Döring 2019-10-23 10:29:12 +02:00 • committed by Andreas Rumpf
commit fe4a59f12b

View file

@ -5085,6 +5085,25 @@ The problem here is that the compiler already decided that ``something()`` as
an iterator is not callable in this context before ``toSeq`` gets its
chance to convert it into a sequence.
It is also not possible to use fully qualified identifiers with module
symbol in method call syntax. The order in which the dot operator
binds to symbols prohibits this.
.. code-block:: nim
:test: "nim c $1"
:status: 1
import sequtils
var myItems = @[1,3,3,7]
let N1 = count(myItems, 3) # OK
let N2 = sequtils.count(myItems, 3) # fully qualified, OK
let N3 = myItems.count(3) # OK
let N4 = myItems.sequtils.count(3) # illegal, `myItems.sequtils` can't be resolved
This means that when for some reason a procedure needs a
disambiguation through the module name, the call needs to be
written in function call syntax.
Macros
======