Skip to content

Commit 9cf5aa5

Browse files
committed
Replace FileRange with ByteRange in surface
1 parent 835b58a commit 9cf5aa5

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

fathom/src/core/pretty.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
//! use codespan_reporting::term::termcolor::{BufferedStandardStream, ColorChoice};
1212
//! use fathom::core::pretty::Context;
1313
//! use fathom::core::Module;
14+
//! use fathom::files::FileId;
1415
//! use fathom::source::StringInterner;
1516
//!
1617
//! // These are created for demonstration

fathom/src/source.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,10 @@ impl FileRange {
260260
self.file_id
261261
}
262262

263+
pub const fn byte_range(&self) -> ByteRange {
264+
self.byte_range
265+
}
266+
263267
pub const fn start(&self) -> BytePos {
264268
self.byte_range.start
265269
}

fathom/src/surface/elaboration.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2036,6 +2036,7 @@ impl<'interner, 'arena> Context<'interner, 'arena> {
20362036
format,
20372037
pred,
20382038
} => {
2039+
let label_range = self.file_range(*label_range);
20392040
let format = self.check(format, &format_type);
20402041
let format_value = self.eval_env().eval(&format);
20412042
let r#type = self.elim_env().format_repr(&format_value);
@@ -2050,10 +2051,7 @@ impl<'interner, 'arena> Context<'interner, 'arena> {
20502051
// in preparation for checking the the next format field.
20512052
let cond_expr = self.check(pred, &self.bool_type.clone());
20522053

2053-
let field_span = Span::merge(
2054-
&self.file_range(*label_range).into(),
2055-
&cond_expr.span(),
2056-
);
2054+
let field_span = Span::merge(&label_range.into(), &cond_expr.span());
20572055
formats.push(core::Term::FormatCond(
20582056
field_span,
20592057
*label,
@@ -2068,6 +2066,7 @@ impl<'interner, 'arena> Context<'interner, 'arena> {
20682066
r#type,
20692067
expr,
20702068
} => {
2069+
let label_range = self.file_range(*label_range);
20712070
let (expr, r#type, type_value) = match r#type {
20722071
Some(r#type) => {
20732072
let r#type = self.check(r#type, &universe);
@@ -2081,8 +2080,7 @@ impl<'interner, 'arena> Context<'interner, 'arena> {
20812080
}
20822081
};
20832082

2084-
let field_span =
2085-
Span::merge(&self.file_range(*label_range).into(), &expr.span());
2083+
let field_span = Span::merge(&label_range.into(), &expr.span());
20862084
let format = core::Term::FunApp(
20872085
field_span,
20882086
Plicity::Explicit,
@@ -2129,7 +2127,7 @@ impl<'interner, 'arena> Context<'interner, 'arena> {
21292127
let (expr, r#type) = self.synth_and_insert_implicit_apps(scrutinee_expr);
21302128

21312129
Scrutinee {
2132-
range: self.file_range(scrutinee_expr.range()),
2130+
range: scrutinee_expr.range(),
21332131
expr: self.scope.to_scope(expr),
21342132
r#type,
21352133
}
@@ -2342,7 +2340,7 @@ impl<'interner, 'arena> Context<'interner, 'arena> {
23422340
// TODO: this should be admitted if the scrutinee type is uninhabited
23432341
self.push_message(Message::NonExhaustiveMatchExpr {
23442342
match_expr_range: self.file_range(match_info.range),
2345-
scrutinee_expr_range: match_info.scrutinee.range,
2343+
scrutinee_expr_range: self.file_range(match_info.scrutinee.range),
23462344
});
23472345
}
23482346
core::Term::Prim(
@@ -2387,7 +2385,7 @@ enum CheckedPattern {
23872385

23882386
/// Scrutinee of a match expression
23892387
struct Scrutinee<'arena> {
2390-
range: FileRange,
2388+
range: ByteRange,
23912389
expr: &'arena core::Term<'arena>,
23922390
r#type: ArcValue<'arena>,
23932391
}

0 commit comments

Comments
 (0)