fixes #4177
This commit is contained in:
parent
ab08ee1ce6
commit
e65c89ee28
2 changed files with 19 additions and 2 deletions
|
|
@ -43,9 +43,11 @@ proc rawHandleSelf(c: PContext; owner: PSym) =
|
||||||
if arg.name.id == c.selfName.id:
|
if arg.name.id == c.selfName.id:
|
||||||
c.p.selfSym = arg
|
c.p.selfSym = arg
|
||||||
arg.flags.incl sfIsSelf
|
arg.flags.incl sfIsSelf
|
||||||
let t = c.p.selfSym.typ.skipTypes(abstractPtrs)
|
var t = c.p.selfSym.typ.skipTypes(abstractPtrs)
|
||||||
if t.kind == tyObject:
|
while t.kind == tyObject:
|
||||||
addObjFieldsToLocalScope(c, t.n)
|
addObjFieldsToLocalScope(c, t.n)
|
||||||
|
if t.sons[0] == nil: break
|
||||||
|
t = t.sons[0].skipTypes(abstractPtrs)
|
||||||
|
|
||||||
proc pushProcCon*(c: PContext; owner: PSym) =
|
proc pushProcCon*(c: PContext; owner: PSym) =
|
||||||
rawPushProcCon(c, owner)
|
rawPushProcCon(c, owner)
|
||||||
|
|
|
||||||
15
tests/usingstmt/tthis.nim
Normal file
15
tests/usingstmt/tthis.nim
Normal 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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue