Reuse the existing machinery, most of the changes are only needed to
handle the `result = result` node in nkReturnStmt produced by the
closure iterator transform.
Fixes#338
See https://forum.nim-lang.org/t/4062.
The summary is that there are warnings printed when compiling and that causes a deadlock, likely due to output buffers being filled up. With the `-w` flag, the compiler outputs no warnings and the compilation is allowed to finish.
* fix#7405 and #8195
* control pushInfoContext in semExprNoType,genStmts via a new hintExtendedContext; make NotesVerbosity computation more DRY
* addressed comments
We don't really want to hash the tyInferred container since that'd make
the "real" type and its inferred counterpart produce different hashes
and types for the very same type.
Fixes#8280
Using getSysSym made the compiler pick a random `and` symbol: if the
symbol table is shuffled we may end up selecting one of the wrong
overloads.
Fixes#8246
* deprecate `0c`, `0C` prefix for octal literals
Deprecates the previously allowed syntax of `0c` and `0C` as a prefix for
octal literals to bring the literals in line with the behavior of
`parseOct` from parseutils.
* add `msgKind` arg to `lexMessageLitNum` for deprecation messages
* change literal tests to check all valid integer literals
Also adds the `tinvaligintegerlit3` test to test for the (still)
invalid `0O` prefix.
* call `semExpr` in `semIs` if node is `strLit`, fixes#8129
In case the second son of the node in `semIs` is of kind `strLit`, we
now call `semExpr` to set the `typ` field of that node.
Also removes the `t2 != tyTypeDesc` check in `isOpImpl`, since the
kind of `n[2]` is already assertet with the `internalAssert`.
* reintroduce check for `t2.kind != tyTypeDesc` to fix test case
The `internalAssert` in the `isOpImpl` doesn't check
`n.sons[2].typ.kind` as I previously read, but rather
`n.sons[2].kind`. Therefore the check for `tyTypeDesc` here is
useful. Otherwise the last test case in `isopr.nim` fails.
Also removes the flag `efDetermineType` from the call to `semExpr`.