small REPL improvements
This commit is contained in:
parent
2ca05eeb16
commit
976d5b18ed
3 changed files with 7 additions and 6 deletions
|
|
@ -1532,10 +1532,11 @@ var oldErrorCount: int
|
|||
|
||||
proc myProcess(c: PPassContext, n: PNode): PNode =
|
||||
# don't eval errornous code:
|
||||
if oldErrorCount != msgs.gErrorCounter:
|
||||
oldErrorCount = msgs.gErrorCounter
|
||||
return n
|
||||
result = eval(PEvalContext(c), n)
|
||||
if oldErrorCount == msgs.gErrorCounter:
|
||||
result = eval(PEvalContext(c), n)
|
||||
else:
|
||||
result = n
|
||||
oldErrorCount = msgs.gErrorCounter
|
||||
|
||||
const evalPass* = makePass(myOpen, nil, myProcess, myProcess)
|
||||
|
||||
|
|
|
|||
|
|
@ -91,7 +91,8 @@ proc errorSym*(c: PContext, n: PNode): PSym =
|
|||
result.typ = errorType(c)
|
||||
incl(result.flags, sfDiscardable)
|
||||
# pretend it's imported from some unknown module to prevent cascading errors:
|
||||
c.importTable.addSym(result)
|
||||
if gCmd != cmdInteractive:
|
||||
c.importTable.addSym(result)
|
||||
|
||||
type
|
||||
TOverloadIterMode* = enum
|
||||
|
|
|
|||
1
todo.txt
1
todo.txt
|
|
@ -15,7 +15,6 @@ version 0.9.4
|
|||
Bugs
|
||||
====
|
||||
|
||||
- REPL: after an error no evaluation is performed for the next line
|
||||
- simple closure iterator doesn't work
|
||||
- docgen: sometimes effects are listed twice
|
||||
- 'result' is not properly cleaned for NRVO --> use uninit checking instead
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue