From fa98edc78cf990f2437288af87a9180847f94ed4 Mon Sep 17 00:00:00 2001 From: Araq Date: Fri, 24 Feb 2017 15:52:52 +0100 Subject: [PATCH] another attempt to make test green again --- compiler/cgmeth.nim | 12 ++++++++++-- tests/{metatype => method}/tautonotgeneric.nim | 0 tools/nimsuggest/nimsuggest.nim | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) rename tests/{metatype => method}/tautonotgeneric.nim (100%) diff --git a/compiler/cgmeth.nim b/compiler/cgmeth.nim index 3a945ae0ac..1d7f5a6e10 100644 --- a/compiler/cgmeth.nim +++ b/compiler/cgmeth.nim @@ -60,8 +60,8 @@ type proc sameMethodBucket(a, b: PSym): MethodResult = if a.name.id != b.name.id: return if sonsLen(a.typ) != sonsLen(b.typ): - return # check for return type: - if not sameTypeOrNil(a.typ.sons[0], b.typ.sons[0]): return + return + for i in countup(1, sonsLen(a.typ) - 1): var aa = a.typ.sons[i] var bb = b.typ.sons[i] @@ -89,6 +89,14 @@ proc sameMethodBucket(a, b: PSym): MethodResult = return No else: return No + if result == Yes: + # check for return type: + if not sameTypeOrNil(a.typ.sons[0], b.typ.sons[0]): + if b.typ.sons[0] != nil and b.typ.sons[0].kind == tyExpr: + # infer 'auto' from the base to make it consistent: + b.typ.sons[0] = a.typ.sons[0] + else: + return No proc attachDispatcher(s: PSym, dispatcher: PNode) = var L = s.ast.len-1 diff --git a/tests/metatype/tautonotgeneric.nim b/tests/method/tautonotgeneric.nim similarity index 100% rename from tests/metatype/tautonotgeneric.nim rename to tests/method/tautonotgeneric.nim diff --git a/tools/nimsuggest/nimsuggest.nim b/tools/nimsuggest/nimsuggest.nim index 57d343ae40..137ac4219f 100644 --- a/tools/nimsuggest/nimsuggest.nim +++ b/tools/nimsuggest/nimsuggest.nim @@ -423,7 +423,7 @@ proc recompileFullProject(graph: ModuleGraph; cache: IdentCache) = graph.resetAllModules() GC_fullcollect() compileProject(graph, cache) - echo "recompiled!" + echo GC_getStatistics() proc mainThread(graph: ModuleGraph; cache: IdentCache) = if gLogging: