fixes #3431, fixes #3370, fixes #3468

This commit is contained in:
Araq
2015-10-25 02:22:50 +01:00
parent 77dc0e50ff
commit aa36e73ecf
2 changed files with 52 additions and 3 deletions

View File

@@ -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