Inheritance 继承类型编译程序中未声明的字段

Inheritance 继承类型编译程序中未声明的字段,inheritance,compiler-errors,nimrod,nim-lang,Inheritance,Compiler Errors,Nimrod,Nim Lang,我尝试编译以下代码: type TPerson = object of TObject name*: string age: int TStudent = object of TPerson id: int var student: TStudent person: TPerson student = TStudent(name: "Anton", age: 5, id: 2) student = TStudent(name: "Anton")

我尝试编译以下代码:

type
  TPerson = object of TObject
    name*: string 
    age: int

  TStudent = object of TPerson
    id: int

var
  student: TStudent
  person: TPerson

student = TStudent(name: "Anton", age: 5, id: 2)
student = TStudent(name: "Anton")
echo student.name
但我得到了以下错误:

错误:未声明的字段:“id”

id
如何不声明?代码示例直接来自教程。语言中是否发生了教程中未反映的变化


此外,如果我尝试运行以下代码:

type
  TPerson = object of TObject
    name*: string 
    age: int

  TStudent = object of TPerson
    id: int

var
  student: TStudent
  person: TPerson

student = TStudent(name: "Anton", age: 5, id: 2)
student = TStudent(name: "Anton")
echo student.name
我得到以下错误:

SIGSEGV:非法存储访问。(是否尝试从零开始读取?)


为什么?

我担心您可能使用的是上一个稳定版本(0.9.2版于2013年5月发布)或旧的git签出,您强调的是编译器中的错误。现在使用git版本,您的第一个和最后一个示例都可以正常工作。在过去的几个月中,已经修复了与语言中的对象继承相关的几个bug(、和)


如果您决定为自己构建一个git版本(这一点都不可怕,尽管有时语言会出现倒退),请注意,因为网站可能还没有更新。