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

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

View File

@@ -339,6 +339,8 @@ proc `[]`*(x: TAny, fieldName: string): TAny =
if n != nil:
result.value = x.value +!! n.offset
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:
raise newException(ValueError, "invalid field name: " & fieldName)