diff options
author | Araq <rumpf_a@web.de> | 2012-10-19 13:24:42 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-10-19 13:24:42 +0200 |
commit | b20663ce192ff8012b2d73113a5d506b8526ec62 (patch) | |
tree | 6fa10af32f8dd3ad8c594a41a8355231f1857933 /compiler/ccgexprs.nim | |
parent | 0df0012bdac2a987c47c6698e99b1e6645a05811 (diff) | |
download | Nim-b20663ce192ff8012b2d73113a5d506b8526ec62.tar.gz |
fixes #232
Diffstat (limited to 'compiler/ccgexprs.nim')
-rwxr-xr-x | compiler/ccgexprs.nim | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/ccgexprs.nim b/compiler/ccgexprs.nim index d6666d88b..72d95c4c7 100755 --- a/compiler/ccgexprs.nim +++ b/compiler/ccgexprs.nim @@ -1036,6 +1036,9 @@ proc genOf(p: BProc, x: PNode, typ: PType, d: var TLoc) = while (t.kind == tyObject) and (t.sons[0] != nil): app(r, ".Sup") t = skipTypes(t.sons[0], typedescInst) + if isObjLackingTypeField(t): + GlobalError(x.info, errGenerated, + "no 'of' operator available for pure objects") if nilCheck != nil: r = ropecg(p.module, "(($1) && #isObj($2.m_type, $3))", [nilCheck, r, genTypeInfo(p.module, dest)]) @@ -1597,7 +1600,7 @@ proc upConv(p: BProc, n: PNode, d: var TLoc) = var a: TLoc initLocExpr(p, n.sons[0], a) var dest = skipTypes(n.typ, abstractPtrs) - if optObjCheck in p.options and not isPureObject(dest): + if optObjCheck in p.options and not isObjLackingTypeField(dest): var r = rdLoc(a) var nilCheck: PRope = nil var t = skipTypes(a.t, abstractInst) |