Skip to content

Commit 79877ae

Browse files
soutaroclaude
andcommitted
Address PR #697 review feedback
- Rename ParameterKind variants to full names (e.g. Req -> RequiredPositional) - Merge two let-else bindings into one in rdx_definition_signatures - Make collect_method_signatures private - Change Signature#initialize from keyword arguments to positional arguments Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 253d8fd commit 79877ae

3 files changed

Lines changed: 25 additions & 31 deletions

File tree

ext/rubydex/signature.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ VALUE cForwardParameter;
1616

1717
static VALUE parameter_class_for_kind(ParameterKind kind) {
1818
switch (kind) {
19-
case ParameterKind_Req: return cPositionalParameter;
20-
case ParameterKind_Opt: return cOptionalPositionalParameter;
21-
case ParameterKind_Rest: return cRestPositionalParameter;
22-
case ParameterKind_Keyreq: return cKeywordParameter;
23-
case ParameterKind_Key: return cOptionalKeywordParameter;
24-
case ParameterKind_Keyrest: return cRestKeywordParameter;
25-
case ParameterKind_Block: return cBlockParameter;
26-
case ParameterKind_Forward: return cForwardParameter;
19+
case ParameterKind_RequiredPositional: return cPositionalParameter;
20+
case ParameterKind_OptionalPositional: return cOptionalPositionalParameter;
21+
case ParameterKind_Rest: return cRestPositionalParameter;
22+
case ParameterKind_RequiredKeyword: return cKeywordParameter;
23+
case ParameterKind_OptionalKeyword: return cOptionalKeywordParameter;
24+
case ParameterKind_RestKeyword: return cRestKeywordParameter;
25+
case ParameterKind_Block: return cBlockParameter;
26+
case ParameterKind_Forward: return cForwardParameter;
2727
default: rb_raise(rb_eRuntimeError, "Unknown ParameterKind: %d", kind);
2828
}
2929
}
@@ -62,10 +62,8 @@ VALUE rdxi_signatures_to_ruby(SignatureArray *arr, VALUE graph_obj, VALUE defaul
6262
rb_ary_push(parameters, param);
6363
}
6464

65-
VALUE sig_kwargs = rb_hash_new();
66-
rb_hash_aset(sig_kwargs, ID2SYM(rb_intern("parameters")), parameters);
67-
rb_hash_aset(sig_kwargs, ID2SYM(rb_intern("method_definition")), method_def);
68-
VALUE signature = rb_class_new_instance_kw(1, &sig_kwargs, cSignature, RB_PASS_KEYWORDS);
65+
VALUE sig_argv[] = {parameters, method_def};
66+
VALUE signature = rb_class_new_instance(2, sig_argv, cSignature);
6967

7068
rb_ary_push(signatures, signature);
7169
}

lib/rubydex/signature.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ def initialize(name, location)
2222
#: MethodDefinition
2323
attr_reader :method_definition
2424

25-
#: (parameters: Array[Parameter], method_definition: MethodDefinition) -> void
26-
def initialize(parameters:, method_definition:)
25+
#: (Array[Parameter], MethodDefinition) -> void
26+
def initialize(parameters, method_definition)
2727
@parameters = parameters
2828
@method_definition = method_definition
2929
end

rust/rubydex-sys/src/definition_api.rs

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -355,24 +355,24 @@ pub unsafe extern "C" fn rdx_definition_name_location(pointer: GraphPointer, def
355355
#[repr(C)]
356356
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
357357
pub enum ParameterKind {
358-
Req = 0,
359-
Opt = 1,
358+
RequiredPositional = 0,
359+
OptionalPositional = 1,
360360
Rest = 2,
361-
Keyreq = 3,
362-
Key = 4,
363-
Keyrest = 5,
361+
RequiredKeyword = 3,
362+
OptionalKeyword = 4,
363+
RestKeyword = 5,
364364
Block = 6,
365365
Forward = 7,
366366
}
367367

368368
fn map_parameter_kind(param: &Parameter) -> ParameterKind {
369369
match param {
370-
Parameter::RequiredPositional(_) | Parameter::Post(_) => ParameterKind::Req,
371-
Parameter::OptionalPositional(_) => ParameterKind::Opt,
370+
Parameter::RequiredPositional(_) | Parameter::Post(_) => ParameterKind::RequiredPositional,
371+
Parameter::OptionalPositional(_) => ParameterKind::OptionalPositional,
372372
Parameter::RestPositional(_) => ParameterKind::Rest,
373-
Parameter::RequiredKeyword(_) => ParameterKind::Keyreq,
374-
Parameter::OptionalKeyword(_) => ParameterKind::Key,
375-
Parameter::RestKeyword(_) => ParameterKind::Keyrest,
373+
Parameter::RequiredKeyword(_) => ParameterKind::RequiredKeyword,
374+
Parameter::OptionalKeyword(_) => ParameterKind::OptionalKeyword,
375+
Parameter::RestKeyword(_) => ParameterKind::RestKeyword,
376376
Parameter::Block(_) => ParameterKind::Block,
377377
Parameter::Forward(_) => ParameterKind::Forward,
378378
}
@@ -415,11 +415,7 @@ pub struct SignatureArray {
415415
pub unsafe extern "C" fn rdx_definition_signatures(pointer: GraphPointer, definition_id: u64) -> *mut SignatureArray {
416416
with_graph(pointer, |graph| {
417417
let def_id = DefinitionId::new(definition_id);
418-
let Some(defn) = graph.definitions().get(&def_id) else {
419-
panic!("Definition not found: {definition_id:?}");
420-
};
421-
422-
let Definition::Method(method_def) = defn else {
418+
let Some(Definition::Method(method_def)) = graph.definitions().get(&def_id) else {
423419
return ptr::null_mut();
424420
};
425421

@@ -435,8 +431,8 @@ pub unsafe extern "C" fn rdx_definition_signatures(pointer: GraphPointer, defini
435431
})
436432
}
437433

438-
/// Helper: build signature entries from a MethodDefinition and append them to the output vector.
439-
pub(crate) fn collect_method_signatures(
434+
/// Helper: build signature entries from a `MethodDefinition` and append them to the output vector.
435+
fn collect_method_signatures(
440436
graph: &rubydex::model::graph::Graph,
441437
method_def: &rubydex::model::definitions::MethodDefinition,
442438
definition_id: u64,

0 commit comments

Comments
 (0)