TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

Rust: RefCellで囲んだFnMutはDerefMutが実装されていない

現象

f: RefCell<dyn FnMut()>>

とした時に

f.borrow_mut()() // この形式では呼べない

とは呼べず、

(&mut *f.borrow_mut())();

と呼ばなくてはいけない

調査

rust - why DerefMut is not implemented for `std::cell::RefMut<'_, [..]>` which wraps FnMut? - Stack Overflow
この記事によると上記のf.borrow_mut()()では呼べないとありました。
Cannot borrow as mutable despite DerefMut · Issue #51886 · rust-lang/rust · GitHub
このバグに関係しているかもとのことでした。