Skip to content

Commit 80adc27

Browse files
authored
Merge pull request #4530 from ASuciuX/chore/remove-boxing-of-symbolicexpression
Chore: Remove `Box`ing of `SymbolicExpression`s
2 parents 0e9cf5d + 462356c commit 80adc27

File tree

6 files changed

+96
-99
lines changed

6 files changed

+96
-99
lines changed

clarity/src/vm/ast/parser/v1.rs

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ pub fn parse_lexed(input: Vec<(LexItem, u32, u32)>) -> ParseResult<Vec<PreSymbol
525525
if let Some((list, start_line, start_column, parse_context)) = parse_stack.pop() {
526526
match parse_context {
527527
ParseContext::CollectList => {
528-
let checked_list: ParseResult<Box<[PreSymbolicExpression]>> = list
528+
let checked_list: ParseResult<Vec<PreSymbolicExpression>> = list
529529
.into_iter()
530530
.map(|i| match i {
531531
ParseStackItem::Expression(e) => Ok(e),
@@ -601,8 +601,7 @@ pub fn parse_lexed(input: Vec<(LexItem, u32, u32)>) -> ParseResult<Vec<PreSymbol
601601
_ => unreachable!("More than four modulos of four."),
602602
}?;
603603
}
604-
let mut pre_expr =
605-
PreSymbolicExpression::tuple(checked_list.into_boxed_slice());
604+
let mut pre_expr = PreSymbolicExpression::tuple(checked_list);
606605
pre_expr.set_span(start_line, start_column, line_pos, column_pos);
607606
handle_expression(&mut parse_stack, &mut output_list, pre_expr);
608607
}
@@ -772,7 +771,7 @@ mod test {
772771
start_column: u32,
773772
end_line: u32,
774773
end_column: u32,
775-
x: Box<[PreSymbolicExpression]>,
774+
x: Vec<PreSymbolicExpression>,
776775
) -> PreSymbolicExpression {
777776
let mut e = PreSymbolicExpression::list(x);
778777
e.set_span(start_line, start_column, end_line, end_column);
@@ -784,7 +783,7 @@ mod test {
784783
start_column: u32,
785784
end_line: u32,
786785
end_column: u32,
787-
x: Box<[PreSymbolicExpression]>,
786+
x: Vec<PreSymbolicExpression>,
788787
) -> PreSymbolicExpression {
789788
let mut e = PreSymbolicExpression::tuple(x);
790789
e.set_span(start_line, start_column, end_line, end_column);
@@ -808,84 +807,84 @@ mod test {
808807
3,
809808
6,
810809
11,
811-
Box::new([
810+
vec![
812811
make_atom("let", 1, 4, 1, 6),
813812
make_list(
814813
1,
815814
8,
816815
1,
817816
20,
818-
Box::new([
817+
vec![
819818
make_list(
820819
1,
821820
9,
822821
1,
823822
13,
824-
Box::new([
823+
vec![
825824
make_atom("x", 1, 10, 1, 10),
826825
make_atom_value(Value::Int(1), 1, 12, 1, 12),
827-
]),
826+
],
828827
),
829828
make_list(
830829
1,
831830
15,
832831
1,
833832
19,
834-
Box::new([
833+
vec![
835834
make_atom("y", 1, 16, 1, 16),
836835
make_atom_value(Value::Int(2), 1, 18, 1, 18),
837-
]),
836+
],
838837
),
839-
]),
838+
],
840839
),
841840
make_list(
842841
2,
843842
5,
844843
6,
845844
10,
846-
Box::new([
845+
vec![
847846
make_atom("+", 2, 6, 2, 6),
848847
make_atom("x", 2, 8, 2, 8),
849848
make_list(
850849
4,
851850
9,
852851
5,
853852
16,
854-
Box::new([
853+
vec![
855854
make_atom("let", 4, 10, 4, 12),
856855
make_list(
857856
4,
858857
14,
859858
4,
860859
20,
861-
Box::new([make_list(
860+
vec![make_list(
862861
4,
863862
15,
864863
4,
865864
19,
866-
Box::new([
865+
vec![
867866
make_atom("x", 4, 16, 4, 16),
868867
make_atom_value(Value::Int(3), 4, 18, 4, 18),
869-
]),
870-
)]),
868+
],
869+
)],
871870
),
872871
make_list(
873872
5,
874873
9,
875874
5,
876875
15,
877-
Box::new([
876+
vec![
878877
make_atom("+", 5, 10, 5, 10),
879878
make_atom("x", 5, 12, 5, 12),
880879
make_atom("y", 5, 14, 5, 14),
881-
]),
880+
],
882881
),
883-
]),
882+
],
884883
),
885884
make_atom("x", 6, 9, 6, 9),
886-
]),
885+
],
887886
),
888-
]),
887+
],
889888
),
890889
make_atom("x", 6, 13, 6, 13),
891890
make_atom("y", 6, 15, 6, 15),
@@ -907,11 +906,11 @@ mod test {
907906
9,
908907
2,
909908
17,
910-
Box::new([
909+
vec![
911910
make_atom("-", 2, 10, 2, 10),
912911
make_atom_value(Value::Int(12), 2, 12, 2, 13),
913912
make_atom_value(Value::Int(34), 2, 15, 2, 16),
914-
]),
913+
],
915914
),
916915
];
917916

@@ -931,10 +930,10 @@ mod test {
931930
1,
932931
1,
933932
11,
934-
Box::new([
933+
vec![
935934
make_atom("id", 1, 2, 1, 3),
936935
make_atom_value(Value::Int(1337), 1, 6, 1, 9),
937-
]),
936+
],
938937
)];
939938
let parsed = ast::parser::v1::parse(input);
940939
assert_eq!(Ok(program), parsed, "Should match expected tuple literal");

clarity/src/vm/ast/parser/v2/mod.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ impl<'a> Parser<'a> {
236236
span.end_line = token.span.end_line;
237237
span.end_column = token.span.end_column;
238238
let out_nodes: Vec<_> = std::mem::take(nodes);
239-
let mut e = PreSymbolicExpression::list(out_nodes.into_boxed_slice());
239+
let mut e = PreSymbolicExpression::list(out_nodes);
240240
e.copy_span(span);
241241
Ok(Some(e))
242242
}
@@ -253,7 +253,7 @@ impl<'a> Parser<'a> {
253253
span.end_line = token.span.end_line;
254254
span.end_column = token.span.end_column;
255255
let out_nodes: Vec<_> = std::mem::take(nodes);
256-
let mut e = PreSymbolicExpression::list(out_nodes.into_boxed_slice());
256+
let mut e = PreSymbolicExpression::list(out_nodes);
257257
e.copy_span(span);
258258
Ok(Some(e))
259259
}
@@ -301,8 +301,7 @@ impl<'a> Parser<'a> {
301301
open_tuple.span.clone(),
302302
)?;
303303
let out_nodes: Vec<_> = open_tuple.nodes.drain(..).collect();
304-
let mut e =
305-
PreSymbolicExpression::tuple(out_nodes.into_boxed_slice());
304+
let mut e = PreSymbolicExpression::tuple(out_nodes);
306305
let span_before_eof = &self.tokens[self.tokens.len() - 2].span;
307306
open_tuple.span.end_line = span_before_eof.end_line;
308307
open_tuple.span.end_column = span_before_eof.end_column;
@@ -341,7 +340,7 @@ impl<'a> Parser<'a> {
341340
placeholder.copy_span(&token.span);
342341
open_tuple.nodes.push(placeholder); // Placeholder value
343342
let out_nodes: Vec<_> = open_tuple.nodes.drain(..).collect();
344-
let mut e = PreSymbolicExpression::tuple(out_nodes.into_boxed_slice());
343+
let mut e = PreSymbolicExpression::tuple(out_nodes);
345344
let span_before_eof = &self.tokens[self.tokens.len() - 2].span;
346345
open_tuple.span.end_line = span_before_eof.end_line;
347346
open_tuple.span.end_column = span_before_eof.end_column;
@@ -386,8 +385,7 @@ impl<'a> Parser<'a> {
386385
placeholder.copy_span(&eof_span);
387386
open_tuple.nodes.push(placeholder); // Placeholder value
388387
let out_nodes: Vec<_> = open_tuple.nodes.drain(..).collect();
389-
let mut e =
390-
PreSymbolicExpression::tuple(out_nodes.into_boxed_slice());
388+
let mut e = PreSymbolicExpression::tuple(out_nodes);
391389
open_tuple.span.end_line =
392390
open_tuple.diagnostic_token.span.end_line;
393391
open_tuple.span.end_column =
@@ -422,7 +420,7 @@ impl<'a> Parser<'a> {
422420
open_tuple.span.end_column = token.span.end_column;
423421
self.next_token();
424422
let out_nodes: Vec<_> = open_tuple.nodes.drain(..).collect();
425-
let mut e = PreSymbolicExpression::tuple(out_nodes.into_boxed_slice());
423+
let mut e = PreSymbolicExpression::tuple(out_nodes);
426424
e.copy_span(&open_tuple.span);
427425
return Ok(Some(e));
428426
}
@@ -440,7 +438,7 @@ impl<'a> Parser<'a> {
440438
open_tuple.span.end_column = token.span.end_column;
441439
self.next_token();
442440
let out_nodes: Vec<_> = open_tuple.nodes.drain(..).collect();
443-
let mut e = PreSymbolicExpression::tuple(out_nodes.into_boxed_slice());
441+
let mut e = PreSymbolicExpression::tuple(out_nodes);
444442
e.copy_span(&open_tuple.span);
445443
return Ok(Some(e));
446444
}
@@ -479,7 +477,7 @@ impl<'a> Parser<'a> {
479477
open_tuple.span.end_column = token.span.end_column;
480478
self.next_token();
481479
let out_nodes: Vec<_> = open_tuple.nodes.drain(..).collect();
482-
let mut e = PreSymbolicExpression::tuple(out_nodes.into_boxed_slice());
480+
let mut e = PreSymbolicExpression::tuple(out_nodes);
483481
e.copy_span(&open_tuple.span);
484482
return Ok(SetupTupleResult::Closed(e));
485483
}
@@ -496,7 +494,7 @@ impl<'a> Parser<'a> {
496494
open_tuple.span.end_column = token.span.end_column;
497495
self.next_token();
498496
let out_nodes: Vec<_> = open_tuple.nodes.drain(..).collect();
499-
let mut e = PreSymbolicExpression::tuple(out_nodes.into_boxed_slice());
497+
let mut e = PreSymbolicExpression::tuple(out_nodes);
500498
e.copy_span(&open_tuple.span);
501499
return Ok(SetupTupleResult::Closed(e));
502500
}

0 commit comments

Comments
 (0)