Correct lineinfo for accent quoted symbols in proc definition (#10399)
* compiler/parser: preserve lineinfo for accent quoted symbols
Previously the lineinfo for symbol $$$ in this example is:
proc `$$$`
^
After this commit:
proc `$$$`
^
* compiler/semstmts: correct lineinfo for accent quoted idents
Previously nimsuggest would highlight this as:
proc `$$$`
^~~
After this commit:
proc `$$$`
^~~
* nimsuggest/tests: add a test for accent quoted proc
Disabled by default
This commit is contained in:
parent
4bea8dd674
commit
413755fd45
3 changed files with 22 additions and 11 deletions
|
|
@ -318,16 +318,16 @@ proc semIdentDef(c: PContext, n: PNode, kind: TSymKind): PSym =
|
|||
result = semIdentWithPragma(c, kind, n, {})
|
||||
if result.owner.kind == skModule:
|
||||
incl(result.flags, sfGlobal)
|
||||
let info = case n.kind
|
||||
of nkPostfix:
|
||||
n.sons[1].info
|
||||
of nkPragmaExpr:
|
||||
if n.sons[0].kind == nkPostfix:
|
||||
n.sons[0].sons[1].info
|
||||
else:
|
||||
n.sons[0].info
|
||||
else:
|
||||
n.info
|
||||
|
||||
proc getLineInfo(n: PNode): TLineInfo =
|
||||
case n.kind
|
||||
of nkPostfix:
|
||||
getLineInfo(n.sons[1])
|
||||
of nkAccQuoted, nkPragmaExpr:
|
||||
getLineInfo(n.sons[0])
|
||||
else:
|
||||
n.info
|
||||
let info = getLineInfo(n)
|
||||
suggestSym(c.config, info, result, c.graph.usageSym)
|
||||
|
||||
proc checkNilable(c: PContext; v: PSym) =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue