MCPcopy Index your code
hub / github.com/RustPython/RustPython / scan_parameter

Method scan_parameter

crates/codegen/src/symboltable.rs:1216–1246  ·  view source on GitHub ↗
(&mut self, parameter: &ast::Parameter)

Source from the content-addressed store, hash-verified

1214 }
1215
1216 fn scan_parameter(&mut self, parameter: &ast::Parameter) -> SymbolTableResult {
1217 self.check_name(
1218 parameter.name.as_str(),
1219 ExpressionContext::Store,
1220 parameter.name.range,
1221 )?;
1222
1223 let usage = if parameter.annotation.is_some() {
1224 SymbolUsage::AnnotationParameter
1225 } else {
1226 SymbolUsage::Parameter
1227 };
1228
1229 // Check for duplicate parameter names
1230 let table = self.tables.last().unwrap();
1231 if table.symbols.contains_key(parameter.name.as_str()) {
1232 return Err(SymbolTableError {
1233 error: format!(
1234 "duplicate argument '{}' in function definition",
1235 parameter.name
1236 ),
1237 location: Some(
1238 self.source_file
1239 .to_source_code()
1240 .source_location(parameter.name.range.start(), PositionEncoding::Utf8),
1241 ),
1242 });
1243 }
1244
1245 self.register_ident(&parameter.name, usage)
1246 }
1247
1248 fn scan_annotation(&mut self, annotation: &ast::Expr) -> SymbolTableResult {
1249 self.scan_annotation_inner(annotation, false)

Callers 2

scan_parametersMethod · 0.80

Calls 10

check_nameMethod · 0.80
contains_keyMethod · 0.80
source_locationMethod · 0.80
register_identMethod · 0.80
ErrClass · 0.50
SomeClass · 0.50
as_strMethod · 0.45
unwrapMethod · 0.45
lastMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected