This commit is contained in:
Andreas Rumpf
2016-05-28 22:40:28 +02:00
parent ab08ee1ce6
commit e65c89ee28
2 changed files with 19 additions and 2 deletions

View File

@@ -43,9 +43,11 @@ proc rawHandleSelf(c: PContext; owner: PSym) =
if arg.name.id == c.selfName.id:
c.p.selfSym = arg
arg.flags.incl sfIsSelf
let t = c.p.selfSym.typ.skipTypes(abstractPtrs)
if t.kind == tyObject:
var t = c.p.selfSym.typ.skipTypes(abstractPtrs)
while t.kind == tyObject:
addObjFieldsToLocalScope(c, t.n)
if t.sons[0] == nil: break
t = t.sons[0].skipTypes(abstractPtrs)
proc pushProcCon*(c: PContext; owner: PSym) =
rawPushProcCon(c, owner)

15
tests/usingstmt/tthis.nim Normal file
View File

@@ -0,0 +1,15 @@
# bug #4177
type
Parent = object of RootObj
parentField: int
Child = object of Parent
childField: int
{.this: self.}
proc sumFields(self: Child): int =
result = parentField + childField # Error: undeclared identifier: 'parentField'
proc sumFieldsWorks(self: Child): int =
result = self.parentField + childField