idetools improvements

This commit is contained in:
Araq 2012-08-03 17:33:44 +02:00
commit 79aaf213d6
10 changed files with 53 additions and 35 deletions

View file

@ -39,7 +39,14 @@ proc considerAcc*(n: PNode): PIdent =
proc errorSym*(n: PNode): PSym =
## creates an error symbol to avoid cascading errors (for IDE support)
result = newSym(skUnknown, considerAcc(n), getCurrOwner())
var m = n
# ensure that 'considerAcc' can't fail:
if m.kind == nkDotExpr: m = m.sons[1]
let ident = if m.kind in {nkIdent, nkSym, nkAccQuoted}:
considerAcc(m)
else:
getIdent("err:" & renderTree(m))
result = newSym(skUnknown, ident, getCurrOwner())
result.info = n.info
type