Skip to content

Commit 76560d5

Browse files
committed
Apply cargo fmt to fix CI fmt --check on Vec::get_ref changes.
1 parent fcd85ee commit 76560d5

3 files changed

Lines changed: 40 additions & 28 deletions

File tree

src/cgen/builtins.rs

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,15 @@ impl Codegen {
238238
// Vec::get_ref<T>(vec: &Vec<T>, index: int) -> Option<&T> (stack-local, no move-out)
239239
if callee == "Vec::get_ref" && args.len() == 2 {
240240
let option_name = return_type
241-
.map(|t| mangle_type_name("Option", match t {
242-
Type::Generic { params, .. } => params.as_slice(),
243-
_ => &[],
244-
}))
241+
.map(|t| {
242+
mangle_type_name(
243+
"Option",
244+
match t {
245+
Type::Generic { params, .. } => params.as_slice(),
246+
_ => &[],
247+
},
248+
)
249+
})
245250
.unwrap_or_else(|| "Option_int_".to_string());
246251
let ref_c_type = return_type
247252
.and_then(|t| {
@@ -269,16 +274,19 @@ impl Codegen {
269274
self.generate_expr(&args[1]);
270275
index_code = std::mem::replace(&mut self.output, old_output);
271276

272-
let elem_c_type = self.resolve_vec_elem_c_type(&args[0], return_type.and_then(|t| {
273-
if let Type::Generic { params, .. } = t
274-
&& params.len() == 1
275-
&& let Type::Ref { inner, .. } = &params[0]
276-
{
277-
Some(inner.as_ref())
278-
} else {
279-
None
280-
}
281-
}));
277+
let elem_c_type = self.resolve_vec_elem_c_type(
278+
&args[0],
279+
return_type.and_then(|t| {
280+
if let Type::Generic { params, .. } = t
281+
&& params.len() == 1
282+
&& let Type::Ref { inner, .. } = &params[0]
283+
{
284+
Some(inner.as_ref())
285+
} else {
286+
None
287+
}
288+
}),
289+
);
282290
let deref_vec = self.vec_ion_ptr_expr(&args[0], &vec_code);
283291

284292
let mut code = String::new();
@@ -394,9 +402,9 @@ impl Codegen {
394402
// String::len(s: &String) -> int
395403
if callee == "String::len" && args.len() == 1 {
396404
let mut code = String::new();
397-
let needs_deref = self
398-
.infer_irexpr_type(&args[0])
399-
.is_some_and(|ty| matches!(ty, Type::Ref { inner, .. } if matches!(*inner, Type::String)));
405+
let needs_deref = self.infer_irexpr_type(&args[0]).is_some_and(
406+
|ty| matches!(ty, Type::Ref { inner, .. } if matches!(*inner, Type::String)),
407+
);
400408
if needs_deref {
401409
code.push_str("((");
402410
let mut arg_code = String::new();

src/cgen/mod.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3629,9 +3629,7 @@ impl Codegen {
36293629

36303630
// Stack-local Option<&T> from Vec::get_ref is assigned directly.
36313631
let returns_heap_option = if let Some(Type::Generic { name, params }) = return_type {
3632-
name == "Option"
3633-
&& params.len() == 1
3634-
&& !matches!(params[0], Type::Ref { .. })
3632+
name == "Option" && params.len() == 1 && !matches!(params[0], Type::Ref { .. })
36353633
} else {
36363634
false
36373635
};

src/tc/mod.rs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,9 @@ impl TypeChecker {
867867
mutable: true,
868868
}))
869869
}
870-
("Vec", "Vec::len") | ("Vec", "Vec::capacity") | ("Vec", "Vec::get")
870+
("Vec", "Vec::len")
871+
| ("Vec", "Vec::capacity")
872+
| ("Vec", "Vec::get")
871873
| ("Vec", "Vec::get_ref") => {
872874
// These methods require &Vec<T>
873875
let elem_type = match receiver_type {
@@ -2472,7 +2474,8 @@ impl TypeChecker {
24722474
Type::Struct(ref name) => {
24732475
if self.is_type_param(name) {
24742476
return Err(TypeCheckError::TypeMismatch {
2475-
expected: "concrete struct value for field access".to_string(),
2477+
expected: "concrete struct value for field access"
2478+
.to_string(),
24762479
got: format!("type parameter '{}'", name),
24772480
span: acc.span,
24782481
});
@@ -2495,7 +2498,10 @@ impl TypeChecker {
24952498
})?;
24962499
field.ty.clone()
24972500
}
2498-
Type::Generic { ref name, ref params } => {
2501+
Type::Generic {
2502+
ref name,
2503+
ref params,
2504+
} => {
24992505
let decl = self.structs.get(name).ok_or_else(|| {
25002506
TypeCheckError::TypeMismatch {
25012507
expected: "known struct type".to_string(),
@@ -2534,12 +2540,13 @@ impl TypeChecker {
25342540
}
25352541
},
25362542
Type::Tuple { ref elements } => {
2537-
let index: usize =
2538-
acc.field.parse().map_err(|_| TypeCheckError::TypeMismatch {
2543+
let index: usize = acc.field.parse().map_err(|_| {
2544+
TypeCheckError::TypeMismatch {
25392545
expected: "numeric tuple field index".to_string(),
25402546
got: acc.field.clone(),
25412547
span: acc.span,
2542-
})?;
2548+
}
2549+
})?;
25432550
if index >= elements.len() {
25442551
return Err(TypeCheckError::TypeMismatch {
25452552
expected: format!(
@@ -2561,8 +2568,7 @@ impl TypeChecker {
25612568
}
25622569
};
25632570
if let Type::Struct(ref struct_name) = *inner
2564-
&& let Some(target) =
2565-
self.lookup_field_target(struct_name, &acc.field)
2571+
&& let Some(target) = self.lookup_field_target(struct_name, &acc.field)
25662572
{
25672573
self.record_reference(acc.field_span, target);
25682574
}

0 commit comments

Comments
 (0)