summary refs log tree commit diff stats
path: root/compiler/suggest.nim
diff options
context:
space:
mode:
authorNeelesh Chandola <neelesh.chandola@outlook.com>2019-01-09 00:14:47 +0530
committerAndreas Rumpf <rumpf_a@web.de>2019-01-08 19:44:47 +0100
commitfb26b95f815b5426e0a8aad98ca0ff018ef1f4db (patch)
tree9ef02c1e5745922ee180cb6d680cfe10c0f4129a /compiler/suggest.nim
parentd0366c519487610ff26d28175e98a9c3ef178670 (diff)
downloadNim-fb26b95f815b5426e0a8aad98ca0ff018ef1f4db.tar.gz
{.deprecated: msg.} now works for vars and lets (#10234)
Diffstat (limited to 'compiler/suggest.nim')
-rw-r--r--compiler/suggest.nim8
1 files changed, 6 insertions, 2 deletions
diff --git a/compiler/suggest.nim b/compiler/suggest.nim
index 144b86224..f3f960136 100644
--- a/compiler/suggest.nim
+++ b/compiler/suggest.nim
@@ -456,13 +456,17 @@ proc suggestSym*(conf: ConfigRef; info: TLineInfo; s: PSym; usageSym: var PSym;
 proc extractPragma(s: PSym): PNode =
   if s.kind in routineKinds:
     result = s.ast[pragmasPos]
-  elif s.kind in {skType}:
+  elif s.kind in {skType, skVar, skLet}:
     # s.ast = nkTypedef / nkPragmaExpr / [nkSym, nkPragma]
     result = s.ast[0][1]
   doAssert result == nil or result.kind == nkPragma
 
 proc warnAboutDeprecated(conf: ConfigRef; info: TLineInfo; s: PSym) =
-  let pragmaNode = if s.kind == skEnumField: extractPragma(s.owner) else: extractPragma(s)
+  var pragmaNode: PNode
+  if optOldAst in conf.options and s.kind in {skVar, skLet}:
+    pragmaNode = nil
+  else:
+    pragmaNode = if s.kind == skEnumField: extractPragma(s.owner) else: extractPragma(s)
   let name =
     if s.kind == skEnumField and sfDeprecated notin s.flags: "enum '" & s.owner.name.s & "' which contains field '" & s.name.s & "'"
     else: s.name.s