MCPcopy Create free account
hub / github.com/aspizu/goboscript / arg

Method arg

src/codegen/expr.rs:42–80  ·  view source on GitHub ↗
(
        &mut self,
        s: S,
        d: D,
        this_id: NodeID,
        parent_id: NodeID,
        name: &Name,
    )

Source from the content-addressed store, hash-verified

40where T: Write + Seek
41{
42 pub fn arg(
43 &mut self,
44 s: S,
45 d: D,
46 this_id: NodeID,
47 parent_id: NodeID,
48 name: &Name,
49 ) -> io::Result<()> {
50 let basename = name.basename();
51
52 if !(s
53 .proc
54 .is_some_and(|proc| proc.args.iter().any(|arg| &arg.name == basename))
55 || s.func
56 .is_some_and(|func| func.args.iter().any(|arg| &arg.name == basename)))
57 {
58 if basename == "tw_is_compiled" {
59 return self.arg_impl(this_id, parent_id, "is compiled?", true);
60 }
61 if basename == "tw_is_turbowarp" {
62 return self.arg_impl(this_id, parent_id, "is TurboWarp?", true);
63 }
64 if basename == "tw_is_forkphorus" {
65 return self.arg_impl(this_id, parent_id, "is forkphorus?", true);
66 }
67 d.report(
68 DiagnosticKind::UnrecognizedArgument(basename.clone()),
69 &name.span(),
70 );
71 return Ok(());
72 }
73
74 let qualified_name = match name.fieldname() {
75 Some(fieldname) => qualify_struct_var_name(fieldname, basename),
76 None => basename.clone(),
77 };
78
79 self.arg_impl(this_id, parent_id, &qualified_name, false)
80 }
81
82 fn arg_impl(
83 &mut self,

Callers 1

exprMethod · 0.80

Calls 6

qualify_struct_var_nameFunction · 0.85
basenameMethod · 0.80
arg_implMethod · 0.80
reportMethod · 0.80
fieldnameMethod · 0.80
spanMethod · 0.45

Tested by

no test coverage detected