MCPcopy Index your code
hub / github.com/endbasic/endbasic / declare_user_callable

Method declare_user_callable

core/src/compiler/syms.rs:200–215  ·  view source on GitHub ↗

Defines a new user-defined `vref` callable with `md` metadata.

(
        &mut self,
        vref: &VarRef,
        md: Rc<CallableMetadata>,
    )

Source from the content-addressed store, hash-verified

198
199 /// Defines a new user-defined `vref` callable with `md` metadata.
200 pub(crate) fn declare_user_callable(
201 &mut self,
202 vref: &VarRef,
203 md: Rc<CallableMetadata>,
204 ) -> Result<()> {
205 let key = SymbolKey::from(&vref.name);
206 if self.globals.get(&key).is_some() {
207 return Err(Error::AlreadyDefined(vref.clone()));
208 }
209 if let Some(previous_md) = self.user_callables.insert(key.clone(), md.clone())
210 && previous_md != md
211 {
212 return Err(Error::AlreadyDefined(vref.clone()));
213 }
214 Ok(())
215 }
216
217 /// Gets a callable by its name `key`.
218 pub(crate) fn get_callable(&self, key: &SymbolKey) -> Option<Rc<CallableMetadata>> {

Calls 2

getMethod · 0.45
insertMethod · 0.45