This commit is contained in:
Zahary Karadjov
2014-02-20 23:33:58 +02:00
parent 0bbf6081d0
commit 1a6d05515f
2 changed files with 8 additions and 6 deletions

View File

@@ -143,10 +143,11 @@ proc discardCheck(c: PContext, result: PNode) =
while n.kind in skipForDiscardable:
n = n.lastSon
n.typ = nil
elif c.inTypeClass > 0 and result.typ.kind == tyBool:
let verdict = semConstExpr(c, result)
if verdict.intVal == 0:
localError(result.info, "type class predicate failed")
elif c.inTypeClass > 0:
if result.typ.kind == tyBool:
let verdict = semConstExpr(c, result)
if verdict.intVal == 0:
localError(result.info, "type class predicate failed")
elif result.typ.kind != tyError and gCmd != cmdInteractive:
if result.typ.kind == tyNil:
fixNilType(result)

View File

@@ -31,9 +31,10 @@ proc intval(x: int) = discard
# check real and virtual fields
type
TFoo = generic T
intval T.x
T.x
y(T)
intval T.y
proc y(x: TObj): int = 10
proc testFoo(x: TFoo) = discard