Resolve base type fields in [](TAny, string)

This commit is contained in:
Stephen Sugden 2015-05-03 00:16:22 +02:00
commit 7fb5932b9b

View file

@ -339,6 +339,8 @@ proc `[]`*(x: TAny, fieldName: string): TAny =
if n != nil: if n != nil:
result.value = x.value +!! n.offset result.value = x.value +!! n.offset
result.rawType = n.typ result.rawType = n.typ
elif x.rawType.kind == tyObject and x.rawType.base != nil:
return `[]`(TAny(value: x.value, rawType: x.rawType.base), fieldName)
else: else:
raise newException(ValueError, "invalid field name: " & fieldName) raise newException(ValueError, "invalid field name: " & fieldName)