diff --git a/argparse/parser.mbt b/argparse/parser.mbt index b752af54d..295ba52d5 100644 --- a/argparse/parser.mbt +++ b/argparse/parser.mbt @@ -161,16 +161,13 @@ fn group_usage_expr( if group.name != name { continue } - let members = [] - for member_name in group.args { - if args.search_by(arg => arg.name == member_name) is Some(idx) { - let item = args[idx] - if item.hidden { - continue - } - members.push(arg_usage_token_for_group(item)) - } - } + let members = [ + for member_name in group.args if args.search_by(arg => { + arg.name == member_name + }) + is Some(idx) && + !args[idx].hidden => arg_usage_token_for_group(args[idx]) + ] if members.length() == 0 { return None } diff --git a/argparse/parser_lookup.mbt b/argparse/parser_lookup.mbt index 28be90016..de9acb22a 100644 --- a/argparse/parser_lookup.mbt +++ b/argparse/parser_lookup.mbt @@ -98,10 +98,7 @@ fn resolve_help_target( ///| fn split_long(arg : String) -> (String, String?) { - let parts = [] - for part in arg.split("=") { - parts.push(part.to_string()) - } + let parts = [ for part in arg.split("=") => part.to_string() ] if parts.length() <= 1 { let name = match parts[0].strip_prefix("--") { Some(view) => view.to_string() diff --git a/env/env_native.mbt b/env/env_native.mbt index e806e57af..b3bbfb9e6 100644 --- a/env/env_native.mbt +++ b/env/env_native.mbt @@ -17,12 +17,9 @@ fn get_cli_args_ffi() -> FixedArray[Bytes] = "$moonbit.get_cli_args" ///| fn get_cli_args_internal() -> Array[String] { - let tmp = get_cli_args_ffi() - let res = Array::new(capacity=tmp.length()) - for t in tmp { - res.push(utf8_bytes_to_mbt_string(t)) - } - res + [ + for t in get_cli_args_ffi() => utf8_bytes_to_mbt_string(t) + ] } ///| diff --git a/hashset/hashset.mbt b/hashset/hashset.mbt index 4ba3437dd..dae10c266 100644 --- a/hashset/hashset.mbt +++ b/hashset/hashset.mbt @@ -672,13 +672,11 @@ pub fn[K] HashSet::copy(self : HashSet[K]) -> HashSet[K] { ///| /// ToJson implementation for hashset pub impl[X : ToJson] ToJson for HashSet[X] with to_json(self) { - let res = Array::new(capacity=self.size) - for entry in self.entries { - if entry is Some({ key, .. }) { - res.push(key.to_json()) - } - } - Json::array(res) + Json::array( + [ + for entry in self.entries if entry is Some({ key, .. }) => key.to_json() + ], + ) } ///| diff --git a/set/linked_hash_set.mbt b/set/linked_hash_set.mbt index b067d816e..ab00fe969 100644 --- a/set/linked_hash_set.mbt +++ b/set/linked_hash_set.mbt @@ -594,11 +594,7 @@ pub fn[K : Hash + Eq] Set::intersection( ///| pub impl[X : ToJson] ToJson for Set[X] with to_json(self) { - let res = Array::new(capacity=self.size) - for v in self { - res.push(v.to_json()) - } - Json::array(res) + Json::array([ for v in self => v.to_json() ]) } ///|