| Index: runtime/vm/kernel.cc
|
| diff --git a/runtime/vm/kernel.cc b/runtime/vm/kernel.cc
|
| index 48dcbdeeb7b13cbe35a67e1a0ae8b3ec0d6494ec..cd5af0f0c2bd42475214a440f9a6bec24464439a 100644
|
| --- a/runtime/vm/kernel.cc
|
| +++ b/runtime/vm/kernel.cc
|
| @@ -18,6 +18,70 @@ void VisitList(List<T>* list, Visitor* visitor) {
|
| }
|
|
|
|
|
| +CanonicalName::CanonicalName() : is_referenced_(false) {}
|
| +
|
| +
|
| +CanonicalName* CanonicalName::NewRoot() {
|
| + return new CanonicalName();
|
| +}
|
| +
|
| +
|
| +void CanonicalName::LinkTo(LinkedNode* new_target) {
|
| + ASSERT(new_target != NULL);
|
| + if (definition_ == new_target) return;
|
| + ASSERT(definition_ == NULL);
|
| + ASSERT(new_target->canonical_name_ == NULL);
|
| + definition_ = new_target;
|
| + new_target->canonical_name_ = this;
|
| +}
|
| +
|
| +
|
| +void CanonicalName::Unlink() {
|
| + if (definition_ == NULL) return;
|
| + ASSERT(definition_->canonical_name_ == this);
|
| + definition_->canonical_name_ = NULL;
|
| + definition_ = NULL;
|
| +}
|
| +
|
| +
|
| +CanonicalName* CanonicalName::AddChild(String* name) {
|
| + CanonicalName* child = new CanonicalName();
|
| + child->parent_ = this;
|
| + child->name_ = name;
|
| + return child;
|
| +}
|
| +
|
| +
|
| +Library* CanonicalName::AsLibrary() {
|
| + return Library::Cast(definition());
|
| +}
|
| +
|
| +
|
| +Class* CanonicalName::AsClass() {
|
| + return Class::Cast(definition());
|
| +}
|
| +
|
| +
|
| +Member* CanonicalName::AsMember() {
|
| + return Member::Cast(definition());
|
| +}
|
| +
|
| +
|
| +Field* CanonicalName::AsField() {
|
| + return Field::Cast(definition());
|
| +}
|
| +
|
| +
|
| +Constructor* CanonicalName::AsConstructor() {
|
| + return Constructor::Cast(definition());
|
| +}
|
| +
|
| +
|
| +Procedure* CanonicalName::AsProcedure() {
|
| + return Procedure::Cast(definition());
|
| +}
|
| +
|
| +
|
| Node::~Node() {}
|
|
|
|
|
| @@ -29,6 +93,9 @@ void TreeNode::AcceptVisitor(Visitor* visitor) {
|
| }
|
|
|
|
|
| +LinkedNode::~LinkedNode() {}
|
| +
|
| +
|
| Library::~Library() {}
|
|
|
|
|
|
|