From 5409142120cfff5ff11f81547613b199f518ccee Mon Sep 17 00:00:00 2001 From: Araq Date: Wed, 22 Jul 2015 18:49:18 +0200 Subject: [PATCH] fix recently introduced regressions --- compiler/ccgexprs.nim | 2 ++ compiler/sigmatch.nim | 7 ++----- tests/typerel/ttypedesc_as_genericparam2.nim | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index 2f4a1e0396..288ce1c99d 100644 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -1319,6 +1319,8 @@ proc genRepr(p: BProc, e: PNode, d: var TLoc) = putIntoDest(p, d, e.typ, ropecg(p.module, "#reprAny($1, $2)", [ rdLoc(a), genTypeInfo(p.module, t)])) + of tyEmpty: + localError(e.info, "'repr' doesn't support 'void' type") else: putIntoDest(p, d, e.typ, ropecg(p.module, "#reprAny($1, $2)", [addrLoc(a), genTypeInfo(p.module, t)])) diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index a44df5783e..ef1c01b7a4 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -260,7 +260,7 @@ proc describeArgs*(c: PContext, n: PNode, startIdx = 1; if i != sonsLen(n) - 1: add(result, ", ") proc typeRel*(c: var TCandidate, f, aOrig: PType, doBind = true): TTypeRelation -proc concreteType(c: TCandidate, t: PType; forAny=false): PType = +proc concreteType(c: TCandidate, t: PType): PType = case t.kind of tyArrayConstr: # make it an array @@ -269,9 +269,6 @@ proc concreteType(c: TCandidate, t: PType; forAny=false): PType = addSonSkipIntLit(result, t.sons[1]) # XXX: semantic checking for the type? of tyNil: result = nil # what should it be? - of tyEmpty: - if tfVoid in t.flags and not forAny: result = nil - else: result = t of tyTypeDesc: if c.isNoCall: result = t else: result = nil @@ -974,7 +971,7 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, doBind = true): TTypeRelation = of tyAnything: considerPreviousT: - var concrete = concreteType(c, a, forAny=true) + var concrete = concreteType(c, a) if concrete != nil and doBind: put(c.bindings, f, concrete) return isGeneric diff --git a/tests/typerel/ttypedesc_as_genericparam2.nim b/tests/typerel/ttypedesc_as_genericparam2.nim index 49d8eea3c7..0b4281269f 100644 --- a/tests/typerel/ttypedesc_as_genericparam2.nim +++ b/tests/typerel/ttypedesc_as_genericparam2.nim @@ -1,6 +1,6 @@ discard """ line: 9 - errormsg: "type mismatch: got (empty)" + errormsg: "'repr' doesn't support 'void' type" """ # bug #2879