parent
c90b4ecddc
commit
fe4a59f12b
1 changed files with 19 additions and 0 deletions
|
|
@ -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
|
||||
======
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue