[meta] Refactor itertools::{chain,enumerate,repeat_n} with std equiv

This commit is contained in:
David Mak 2024-12-18 10:43:24 +08:00
parent 1531b6cc98
commit 08b717d640
4 changed files with 11 additions and 11 deletions

View File

@ -11,7 +11,7 @@ use inkwell::{
values::{BasicValueEnum, CallSiteValue, FunctionValue, IntValue, PointerValue, StructValue}, values::{BasicValueEnum, CallSiteValue, FunctionValue, IntValue, PointerValue, StructValue},
AddressSpace, IntPredicate, OptimizationLevel, AddressSpace, IntPredicate, OptimizationLevel,
}; };
use itertools::{chain, izip, Either, Itertools}; use itertools::{izip, Either, Itertools};
use nac3parser::ast::{ use nac3parser::ast::{
self, Boolop, Cmpop, Comprehension, Constant, Expr, ExprKind, Location, Operator, StrRef, self, Boolop, Cmpop, Comprehension, Constant, Expr, ExprKind, Location, Operator, StrRef,
@ -1965,7 +1965,7 @@ pub fn gen_cmpop_expr_with_values<'ctx, G: CodeGenerator>(
} }
} }
let cmp_val = izip!(chain(once(&left), comparators.iter()), comparators.iter(), ops.iter(),) let cmp_val = izip!(once(&left).chain(comparators.iter()), comparators.iter(), ops.iter(),)
.fold(Ok(None), |prev: Result<Option<_>, String>, (lhs, rhs, op)| { .fold(Ok(None), |prev: Result<Option<_>, String>, (lhs, rhs, op)| {
let (left_ty, lhs) = lhs; let (left_ty, lhs) = lhs;
let (right_ty, rhs) = rhs; let (right_ty, rhs) = rhs;

View File

@ -6,7 +6,7 @@ use std::{
}; };
use inkwell::values::{BasicValueEnum, FloatValue, IntValue, PointerValue, StructValue}; use inkwell::values::{BasicValueEnum, FloatValue, IntValue, PointerValue, StructValue};
use itertools::{chain, izip, Itertools}; use itertools::{izip, Itertools};
use parking_lot::RwLock; use parking_lot::RwLock;
use nac3parser::ast::{Constant, Expr, Location, StrRef}; use nac3parser::ast::{Constant, Expr, Location, StrRef};
@ -452,11 +452,11 @@ pub fn parse_type_annotation<T>(
type_vars.len() type_vars.len()
)])); )]));
} }
let fields = chain( let fields = fields
fields.iter().map(|(k, v, m)| (*k, (*v, *m))), .iter()
methods.iter().map(|(k, v, _)| (*k, (*v, false))), .map(|(k, v, m)| (*k, (*v, *m)))
) .chain(methods.iter().map(|(k, v, _)| (*k, (*v, false))))
.collect(); .collect();
Ok(unifier.add_ty(TypeEnum::TObj { obj_id, fields, params: VarMap::default() })) Ok(unifier.add_ty(TypeEnum::TObj { obj_id, fields, params: VarMap::default() }))
} else { } else {
Err(HashSet::from([format!("Cannot use function name as type at {loc}")])) Err(HashSet::from([format!("Cannot use function name as type at {loc}")]))

View File

@ -1052,7 +1052,7 @@ impl TopLevelComposer {
} }
let mut result = Vec::new(); let mut result = Vec::new();
let no_defaults = args.args.len() - args.defaults.len() - 1; let no_defaults = args.args.len() - args.defaults.len() - 1;
for (idx, x) in itertools::enumerate(args.args.iter().skip(1)) { for (idx, x) in args.args.iter().skip(1).enumerate() {
let type_ann = { let type_ann = {
let Some(annotation_expr) = x.node.annotation.as_ref() else {return Err(HashSet::from([format!("type annotation needed for `{}` (at {})", x.node.arg, x.location)]));}; let Some(annotation_expr) = x.node.annotation.as_ref() else {return Err(HashSet::from([format!("type annotation needed for `{}` (at {})", x.node.arg, x.location)]));};
parse_ast_to_type_annotation_kinds( parse_ast_to_type_annotation_kinds(

View File

@ -3,13 +3,13 @@ use std::{
cell::RefCell, cell::RefCell,
collections::{HashMap, HashSet}, collections::{HashMap, HashSet},
fmt::{self, Display}, fmt::{self, Display},
iter::{repeat, zip}, iter::{repeat, repeat_n, zip},
rc::Rc, rc::Rc,
sync::{Arc, Mutex}, sync::{Arc, Mutex},
}; };
use indexmap::IndexMap; use indexmap::IndexMap;
use itertools::{repeat_n, Itertools}; use itertools::Itertools;
use nac3parser::ast::{Cmpop, Location, StrRef, Unaryop}; use nac3parser::ast::{Cmpop, Location, StrRef, Unaryop};