Refactor tuple flattening in Specializer
This commit is contained in:
@@ -236,7 +236,10 @@ impl Specializer {
|
|||||||
self.cache
|
self.cache
|
||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.insert(key, (compiled_val.clone(), ret_ty.clone()));
|
.insert(key, (compiled_val.clone(), ret_ty.clone()));
|
||||||
let flat_elements = self.flatten_tuple(new_args.clone());
|
let flat_elements = match new_args.kind {
|
||||||
|
BoundKind::Tuple { elements } => elements,
|
||||||
|
_ => vec![new_args.clone()],
|
||||||
|
};
|
||||||
let flat_types = flat_elements
|
let flat_types = flat_elements
|
||||||
.iter()
|
.iter()
|
||||||
.map(|e| e.ty.original.ty.clone())
|
.map(|e| e.ty.original.ty.clone())
|
||||||
@@ -292,11 +295,4 @@ impl Specializer {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn flatten_tuple(&self, node: AnalyzedNode) -> Vec<AnalyzedNode> {
|
|
||||||
match node.kind {
|
|
||||||
BoundKind::Tuple { elements } => elements,
|
|
||||||
_ => vec![node],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user