If I used RefCell<T>
my Symbol
trait would not be object safe, for example:
trait Symbol {
fn callee(self: RcCell<Self>) -> Option<RcCell<dyn Symbol>> {
None
}
}
Due to the self
parameter, it'd not be object safe, while simply self: Rc<Self>
would leave the surrounding trait as object safe.