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

Method qualify_name

src/codegen/sb3.rs:166–210  ·  view source on GitHub ↗
(&self, d: D, name: &Name)

Source from the content-addressed store, hash-verified

164 }
165
166 pub fn qualify_name(&self, d: D, name: &Name) -> Option<QualifiedName> {
167 let basename = name.basename();
168 let fieldname = name.fieldname().cloned();
169 if let Some(list) = self.get_list(basename) {
170 return self.qualify_field(
171 d,
172 &name.span(),
173 list.name.clone(),
174 fieldname,
175 &list.type_,
176 QualifiedName::List,
177 );
178 }
179 if let Some(var) = self.get_local_var(basename) {
180 let qualified_var_name = qualify_local_var_name(
181 self.proc
182 .map(|proc| &proc.name)
183 .unwrap_or_else(|| &self.func.unwrap().name),
184 &var.name,
185 );
186 return self.qualify_field(
187 d,
188 &name.span(),
189 qualified_var_name,
190 fieldname,
191 &var.type_,
192 QualifiedName::Var,
193 );
194 }
195 if let Some(var) = self.get_var(basename) {
196 return self.qualify_field(
197 d,
198 &name.span(),
199 var.name.clone(),
200 fieldname,
201 &var.type_,
202 QualifiedName::Var,
203 );
204 }
205 d.report(
206 DiagnosticKind::UnrecognizedVariable(basename.clone()),
207 &name.span(),
208 );
209 None
210 }
211}
212
213impl Stmt {

Callers 9

set_varMethod · 0.80
change_varMethod · 0.80
showMethod · 0.80
add_to_listMethod · 0.80
delete_list_indexMethod · 0.80
delete_listMethod · 0.80
list_insertMethod · 0.80
name_inputMethod · 0.80
bin_opMethod · 0.80

Calls 9

qualify_local_var_nameFunction · 0.85
basenameMethod · 0.80
fieldnameMethod · 0.80
qualify_fieldMethod · 0.80
get_local_varMethod · 0.80
reportMethod · 0.80
get_listMethod · 0.45
spanMethod · 0.45
get_varMethod · 0.45

Tested by

no test coverage detected