Skip to content

Commit 481b91b

Browse files
committed
Clean up implicit function elaboration
1 parent 039be03 commit 481b91b

File tree

6 files changed

+164
-179
lines changed

6 files changed

+164
-179
lines changed

fathom/src/surface.rs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ pub struct ItemDef<'arena, Range> {
6868
/// The label that identifies this definition
6969
label: (Range, StringId),
7070
/// Parameter patterns
71-
params: &'arena [FunParam<'arena, Range>],
71+
params: &'arena [Param<'arena, Range>],
7272
/// An optional type annotation for the defined expression
7373
r#type: Option<&'arena Term<'arena, Range>>,
7474
/// The defined expression
@@ -212,20 +212,20 @@ pub enum Term<'arena, Range> {
212212
/// Dependent function types.
213213
FunType(
214214
Range,
215-
&'arena [FunParam<'arena, Range>],
215+
&'arena [Param<'arena, Range>],
216216
&'arena Term<'arena, Range>,
217217
),
218218
/// Function literals.
219219
FunLiteral(
220220
Range,
221-
&'arena [FunParam<'arena, Range>],
221+
&'arena [Param<'arena, Range>],
222222
&'arena Term<'arena, Range>,
223223
),
224224
/// Applications.
225225
App(
226226
Range,
227227
&'arena Term<'arena, Range>,
228-
&'arena [AppArg<'arena, Range>],
228+
&'arena [Arg<'arena, Range>],
229229
),
230230
/// Dependent record types.
231231
RecordType(Range, &'arena [TypeField<'arena, Range>]),
@@ -333,15 +333,14 @@ impl<'arena> Term<'arena, ByteRange> {
333333
}
334334

335335
#[derive(Debug, Clone)]
336-
pub struct FunParam<'arena, Range> {
336+
pub struct Param<'arena, Range> {
337337
pub plicity: Plicity,
338338
pub pattern: Pattern<Range>,
339339
pub r#type: Option<Term<'arena, Range>>,
340340
}
341341

342342
#[derive(Debug, Clone)]
343-
344-
pub struct AppArg<'arena, Range> {
343+
pub struct Arg<'arena, Range> {
345344
pub plicity: Plicity,
346345
pub term: Term<'arena, Range>,
347346
}

fathom/src/surface/distillation.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ use scoped_arena::Scope;
66

77
use crate::alloc::SliceVec;
88
use crate::core;
9-
use crate::core::{Const, UIntStyle};
9+
use crate::core::{Const, Plicity, UIntStyle};
1010
use crate::env::{self, EnvLen, Index, Level, UniqueEnv};
1111
use crate::source::{Span, StringId, StringInterner};
1212
use crate::surface::elaboration::MetaSource;
1313
use crate::surface::{
14-
AppArg, BinOp, ExprField, FormatField, FunParam, Item, ItemDef, Module, Pattern, Plicity, Term,
15-
TypeField,
14+
Arg, BinOp, ExprField, FormatField, Item, ItemDef, Module, Param, Pattern, Term, TypeField,
1615
};
1716

1817
/// Distillation context.
@@ -275,7 +274,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
275274
let body_expr = self.check(body_expr);
276275
self.truncate_local(initial_local_len);
277276

278-
let params = params.into_iter().map(|(plicity, name)| FunParam {
277+
let params = params.into_iter().map(|(plicity, name)| Param {
279278
plicity,
280279
pattern: Pattern::Name((), name),
281280
r#type: None,
@@ -427,7 +426,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
427426
core::LocalInfo::Def => {}
428427
core::LocalInfo::Param => {
429428
let var = self.local_len().level_to_index(var).unwrap();
430-
args.push(AppArg {
429+
args.push(Arg {
431430
plicity: Plicity::Explicit,
432431
term: self.check(&core::Term::LocalVar(Span::Empty, var)),
433432
});
@@ -478,7 +477,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
478477
let param_type = self.check(param_type);
479478
let param_name = self.freshen_name(*param_name, next_body_type);
480479
let param_name = self.push_local(param_name);
481-
params.push(FunParam {
480+
params.push(Param {
482481
plicity: *plicity,
483482
pattern: Pattern::Name((), param_name),
484483
r#type: Some(param_type),
@@ -531,7 +530,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
531530
let body_expr = self.synth(body_expr);
532531
self.truncate_local(initial_local_len);
533532

534-
let params = params.into_iter().map(|(plicity, name)| FunParam {
533+
let params = params.into_iter().map(|(plicity, name)| Param {
535534
plicity,
536535
pattern: Pattern::Name((), name),
537536
r#type: None,
@@ -557,7 +556,7 @@ impl<'interner, 'arena, 'env> Context<'interner, 'arena, 'env> {
557556

558557
while let core::Term::FunApp(_, plicity, next_head_expr, arg_expr) = head_expr {
559558
head_expr = next_head_expr;
560-
args.push(AppArg {
559+
args.push(Arg {
561560
plicity: *plicity,
562561
term: self.check(arg_expr),
563562
});

0 commit comments

Comments
 (0)