Skip to content

Commit 8dbe29a

Browse files
committed
Store Pattern in surface::Term::Let behind a pointer
1 parent 2da5be1 commit 8dbe29a

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

fathom/src/surface.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ pub enum Term<'arena, Range> {
186186
/// Let expressions.
187187
Let(
188188
Range,
189-
Pattern<'arena, Range>,
189+
&'arena Pattern<'arena, Range>,
190190
Option<&'arena Term<'arena, Range>>,
191191
&'arena Term<'arena, Range>,
192192
&'arena Term<'arena, Range>,
@@ -525,8 +525,8 @@ mod tests {
525525
#[test]
526526
#[cfg(target_pointer_width = "64")]
527527
fn term_size() {
528-
assert_eq!(std::mem::size_of::<Term<()>>(), 48);
529-
assert_eq!(std::mem::size_of::<Term<ByteRange>>(), 72);
528+
assert_eq!(std::mem::size_of::<Term<()>>(), 40);
529+
assert_eq!(std::mem::size_of::<Term<ByteRange>>(), 48);
530530
}
531531

532532
#[test]

fathom/src/surface/distillation.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
256256

257257
Term::Let(
258258
(),
259-
Pattern::Name((), def_name),
259+
self.scope.to_scope(Pattern::Name((), def_name)),
260260
Some(self.scope.to_scope(def_type)),
261261
self.scope.to_scope(def_expr),
262262
self.scope.to_scope(body_expr),
@@ -477,7 +477,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
477477

478478
Term::Let(
479479
(),
480-
Pattern::Name((), def_name),
480+
self.scope.to_scope(Pattern::Name((), def_name)),
481481
Some(self.scope.to_scope(def_type)),
482482
self.scope.to_scope(def_expr),
483483
self.scope.to_scope(body_expr),

fathom/src/surface/grammar.lalrpop

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ LetTerm: Term<'arena, ByteRange> = {
118118
<start: @L> "let" <def_pattern: Pattern> <def_type: (":" <LetTerm>)?> "=" <def_expr: Term> ";" <body_expr: LetTerm> <end: @R> => {
119119
Term::Let(
120120
ByteRange::new(file_id, start, end),
121-
def_pattern,
121+
scope.to_scope(def_pattern),
122122
def_type.map(|def_type| scope.to_scope(def_type) as &_),
123123
scope.to_scope(def_expr),
124124
scope.to_scope(body_expr),

0 commit comments

Comments
 (0)