diff --git a/src/protocol/parser/pass_definitions.rs b/src/protocol/parser/pass_definitions.rs index fa5d495991b9892f9ffaf71abd3045ce444a3ba8..74ceba8ad07b0c8073a3f030854c00d27b93894a 100644 --- a/src/protocol/parser/pass_definitions.rs +++ b/src/protocol/parser/pass_definitions.rs @@ -292,7 +292,7 @@ impl PassDefinitions { Ok(()) } - + fn visit_component_definition( &mut self, module: &Module, iter: &mut TokenIter, ctx: &mut PassCtx ) -> Result<(), ParseError> { @@ -1663,8 +1663,14 @@ impl PassDefinitions { // TODO: Once we start generating bytecode this is unnecessary let procedure_id = proc_def.this; let method = match proc_def.source { - ProcedureSource::FuncUserDefined => Method::UserFunction, - ProcedureSource::CompUserDefined => Method::UserComponent, + // Bit of a hack, at this point the source is not yet known, except if it is a + // builtin. So we check for the "kind" + ProcedureSource::FuncUserDefined | ProcedureSource::CompUserDefined => { + match proc_def.kind { + ProcedureKind::Function => Method::UserFunction, + ProcedureKind::Component => Method::UserComponent, + } + }, ProcedureSource::FuncGet => Method::Get, ProcedureSource::FuncPut => Method::Put, ProcedureSource::FuncFires => Method::Fires,