summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/suggest.nim13
1 files changed, 10 insertions, 3 deletions
diff --git a/compiler/suggest.nim b/compiler/suggest.nim
index a5a7fcd66..1f0cbe639 100644
--- a/compiler/suggest.nim
+++ b/compiler/suggest.nim
@@ -27,9 +27,16 @@ proc SymToStr(s: PSym, isLocal: bool, section: string, li: TLineInfo): string =
   result.add(sep)
   result.add($s.kind)
   result.add(sep)
-  if not isLocal: 
-    if s.kind != skModule and s.owner != nil: 
-      result.add(s.owner.name.s)
+  if not isLocal:
+    var a: array [0..4, PSym]
+    var L = 0
+    var ow = s
+    while ow.kind != skModule and ow.owner != nil and L < len(a):
+      a[L] = ow
+      inc L
+      ow = ow.owner
+    for i in countdown(L-1, 0):
+      result.add(a[i].name.s)
       result.add('.')
   result.add(s.name.s)
   result.add(sep)