Skip to content

Commit 25f66bc

Browse files
committed
Store Pattern in surface::Term::Let behind a pointer
1 parent e9f5908 commit 25f66bc

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>,
@@ -524,8 +524,8 @@ mod tests {
524524
#[test]
525525
#[cfg(target_pointer_width = "64")]
526526
fn term_size() {
527-
assert_eq!(std::mem::size_of::<Term<()>>(), 48);
528-
assert_eq!(std::mem::size_of::<Term<ByteRange>>(), 72);
527+
assert_eq!(std::mem::size_of::<Term<()>>(), 40);
528+
assert_eq!(std::mem::size_of::<Term<ByteRange>>(), 48);
529529
}
530530

531531
#[test]

fathom/src/surface/distillation.rs

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

256256
Term::Let(
257257
(),
258-
Pattern::Name((), def_name),
258+
self.scope.to_scope(Pattern::Name((), def_name)),
259259
Some(self.scope.to_scope(def_type)),
260260
self.scope.to_scope(def_expr),
261261
self.scope.to_scope(body_expr),
@@ -476,7 +476,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
476476

477477
Term::Let(
478478
(),
479-
Pattern::Name((), def_name),
479+
self.scope.to_scope(Pattern::Name((), def_name)),
480480
Some(self.scope.to_scope(def_type)),
481481
self.scope.to_scope(def_expr),
482482
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
@@ -121,7 +121,7 @@ LetTerm: Term<'arena, ByteRange> = {
121121
<start: @L> "let" <def_pattern: Pattern> <def_type: (":" <LetTerm>)?> "=" <def_expr: Term> ";" <body_expr: LetTerm> <end: @R> => {
122122
Term::Let(
123123
ByteRange::new(file_id, start, end),
124-
def_pattern,
124+
scope.to_scope(def_pattern),
125125
def_type.map(|def_type| scope.to_scope(def_type) as &_),
126126
scope.to_scope(def_expr),
127127
scope.to_scope(body_expr),

0 commit comments

Comments
 (0)