trait Hierarchical
[T
<: Hierarchical
[T
]] { val parents
: List
[Hierarchical
[_]] = Nil
var children
: List
[Hierarchical
[T
]] = List
() }
extends Hierarchical
[NonRootNode
] {}
}
assert(root.parents.isEmpty)
val child
= new NonRootNode
(List
(root
)) assert(child.parents.size == 1)
assert(child.parents.contains(root))
println("Success...")
}
dHJhaXQgSGllcmFyY2hpY2FsW1QgPDogSGllcmFyY2hpY2FsW1RdXSB7CiAgdmFsIHBhcmVudHM6IExpc3RbSGllcmFyY2hpY2FsW19dXSA9IE5pbAogIHZhciBjaGlsZHJlbjogTGlzdFtIaWVyYXJjaGljYWxbVF1dID0gTGlzdCgpCn0KCmNsYXNzIE5vblJvb3ROb2RlKG92ZXJyaWRlIHZhbCBwYXJlbnRzOiBMaXN0W0hpZXJhcmNoaWNhbFtfXV0pIAogIGV4dGVuZHMgSGllcmFyY2hpY2FsW05vblJvb3ROb2RlXSB7fQoKY2xhc3MgUm9vdCBleHRlbmRzIEhpZXJhcmNoaWNhbFtOb25Sb290Tm9kZV0gewogIGZpbmFsIG92ZXJyaWRlIHZhbCBwYXJlbnRzID0gTmlsCn0KCm9iamVjdCBNYWluIGV4dGVuZHMgQXBwIHsKICB2YWwgcm9vdCA9IG5ldyBSb290CiAgYXNzZXJ0KHJvb3QucGFyZW50cy5pc0VtcHR5KQogIHZhbCBjaGlsZCA9IG5ldyBOb25Sb290Tm9kZShMaXN0KHJvb3QpKQogIGFzc2VydChjaGlsZC5wYXJlbnRzLnNpemUgPT0gMSkKICBhc3NlcnQoY2hpbGQucGFyZW50cy5jb250YWlucyhyb290KSkKICBwcmludGxuKCJTdWNjZXNzLi4uIikKfQ==