Objective.e_fn#

Objective.e_fn#

Mutex descriptor for e_str / e_fn on opt elements.

Setting one to a non-None value clears the other so the most recent assignment wins. Lets subclasses override an inherited element's e_str without inheriting a stale e_fn from the parent class.

When the assignment replaces a previously-set other form, set the _e_dirty flag on the instance. _link_pycode reads this flag to decide whether to wire codegen output: a dirty item has been user-modified at runtime (e.g. obj.e_str += '...') and must keep its current state; auto-prep would otherwise overwrite the user's intent with a stale callable from the disk cache. Codegen wiring itself bypasses the descriptor by writing _e_fn directly, so it never trips this flag.