summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-10-25 02:22:50 +0100
committerAraq <rumpf_a@web.de>2015-10-25 02:22:50 +0100
commitaa36e73ecf1e09367a5e94de6c3af488449eb4f6 (patch)
treec135ef199ca93b5564930460b529455d5d6a5a20 /compiler
parent77dc0e50ff8da88a567281dde86216150126f54e (diff)
downloadNim-aa36e73ecf1e09367a5e94de6c3af488449eb4f6.tar.gz
fixes #3431, fixes #3370, fixes #3468
Diffstat (limited to 'compiler')
-rw-r--r--compiler/cgmeth.nim7
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/cgmeth.nim b/compiler/cgmeth.nim
index 9642e9122..3c2c51b76 100644
--- a/compiler/cgmeth.nim
+++ b/compiler/cgmeth.nim
@@ -66,15 +66,16 @@ proc sameMethodBucket(a, b: PSym): MethodResult =
         bb = bb.lastSon
       else:
         break
-    if sameType(aa, bb): discard
+    if sameType(aa, bb):
+      if aa.kind == tyObject and result != Invalid: result = Yes
     elif aa.kind == tyObject and bb.kind == tyObject:
       let diff = inheritanceDiff(bb, aa)
-      if diff < 0: discard "Ok"
+      if diff < 0:
+        if result != Invalid: result = Yes
       elif diff != high(int):
         result = Invalid
     else:
       return No
-  if result != Invalid: result = Yes
 
 proc attachDispatcher(s: PSym, dispatcher: PNode) =
   var L = s.ast.len-1