Skip to content

Commit e7dc7c7

Browse files
committed
Move string interning types into source module
This seems like an appropriate grouping and reduces some clutter from the top level module.
1 parent ac51c20 commit e7dc7c7

File tree

14 files changed

+25
-34
lines changed

14 files changed

+25
-34
lines changed

fathom/src/core.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
//! Core language.
22
33
use crate::env::{Index, Level};
4-
use crate::source::Span;
5-
use crate::StringId;
4+
use crate::source::{Span, StringId};
65

76
pub mod binary;
87
pub mod prim;

fathom/src/core/prim.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ use std::sync::Arc;
66
use crate::core::semantics::{ArcValue, Elim, ElimEnv, Value};
77
use crate::core::{self, Const, Prim, UIntStyle};
88
use crate::env::{self, SharedEnv, UniqueEnv};
9-
use crate::source::Span;
10-
use crate::source::Spanned;
11-
use crate::{StringId, StringInterner};
9+
use crate::source::{Span, Spanned, StringId, StringInterner};
1210

1311
/// Environment of primitives
1412
pub struct Env<'arena> {

fathom/src/core/semantics.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ use std::sync::Arc;
88
use crate::alloc::SliceVec;
99
use crate::core::{prim, Const, LocalInfo, Prim, Term};
1010
use crate::env::{EnvLen, Index, Level, SharedEnv, SliceEnv};
11-
use crate::source::{Span, Spanned};
12-
use crate::StringId;
11+
use crate::source::{Span, Spanned, StringId};
1312

1413
/// Atomically reference counted values. We use reference counting to increase
1514
/// the amount of sharing we can achieve during evaluation.

fathom/src/driver.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ use std::path::Path;
77

88
use crate::core::binary;
99
use crate::core::binary::{BufferError, ReadError};
10-
use crate::source::{ByteRange, FileId, Span};
10+
use crate::source::{ByteRange, FileId, Span, StringInterner};
1111
use crate::surface::{self, elaboration};
12-
use crate::{StringInterner, BUG_REPORT_URL};
12+
use crate::BUG_REPORT_URL;
1313

1414
#[derive(Debug, Copy, Clone)]
1515
pub enum Status {

fathom/src/lib.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,3 @@ pub const BUG_REPORT_URL: &str = concat!(env!("CARGO_PKG_REPOSITORY"), "/issues/
1919

2020
// Public exports
2121
pub use driver::{Driver, Status};
22-
23-
/// Interned strings.
24-
pub type StringId = string_interner::symbol::SymbolU16;
25-
26-
/// String interner.
27-
pub type StringInterner = string_interner::StringInterner<
28-
string_interner::backend::BucketBackend<StringId>,
29-
std::hash::BuildHasherDefault<fxhash::FxHasher32>,
30-
>;

fathom/src/source.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1+
//! Types related to source files.
2+
13
use std::ops::{Deref, DerefMut};
24

3-
///! Types related to source files.
5+
// Interned strings.
6+
pub type StringId = string_interner::symbol::SymbolU16;
7+
8+
/// String interner.
9+
pub type StringInterner = string_interner::StringInterner<
10+
string_interner::backend::BucketBackend<StringId>,
11+
std::hash::BuildHasherDefault<fxhash::FxHasher32>,
12+
>;
413

514
/// File id.
615
pub type FileId = usize; // TODO: use wrapper struct

fathom/src/surface.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ use codespan_reporting::diagnostic::{Diagnostic, Label};
77
use lalrpop_util::lalrpop_mod;
88
use scoped_arena::Scope;
99

10-
use crate::source::{ByteRange, FileId};
11-
use crate::{StringId, StringInterner};
10+
use crate::source::{ByteRange, FileId, StringId, StringInterner};
1211

1312
lalrpop_mod!(
1413
#[allow(clippy::all)]

fathom/src/surface/distillation.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ use scoped_arena::Scope;
44
use std::cell::RefCell;
55

66
use crate::alloc::SliceVec;
7+
use crate::core;
78
use crate::core::{Const, UIntStyle};
89
use crate::env::{self, EnvLen, Index, Level, UniqueEnv};
9-
use crate::source::Span;
10+
use crate::source::{Span, StringId, StringInterner};
1011
use crate::surface::elaboration::MetaSource;
1112
use crate::surface::{
1213
BinOp, ExprField, FormatField, Item, ItemDef, Module, Pattern, Term, TypeField,
1314
};
14-
use crate::{core, StringId, StringInterner};
1515

1616
/// Distillation context.
1717
pub struct Context<'interner, 'arena, 'env> {

fathom/src/surface/elaboration.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,9 @@ use crate::alloc::SliceVec;
2929
use crate::core::semantics::{self, ArcValue, Head, Telescope, Value};
3030
use crate::core::{self, prim, Const, Prim, UIntStyle};
3131
use crate::env::{self, EnvLen, Level, SharedEnv, UniqueEnv};
32-
use crate::source::{ByteRange, Span, Spanned};
32+
use crate::source::{ByteRange, Span, Spanned, StringId, StringInterner};
3333
use crate::surface::elaboration::reporting::Message;
3434
use crate::surface::{distillation, pretty, BinOp, FormatField, Item, Module, Pattern, Term};
35-
use crate::{StringId, StringInterner};
3635

3736
mod order;
3837
mod reporting;

fathom/src/surface/elaboration/order.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,9 @@
2020
2121
use fxhash::{FxHashMap, FxHashSet};
2222

23-
use crate::source::ByteRange;
23+
use crate::source::{ByteRange, StringId};
2424
use crate::surface::elaboration::reporting::Message;
2525
use crate::surface::{elaboration, FormatField, Item, Module, Pattern, Term};
26-
use crate::StringId;
2726

2827
enum Error {
2928
CycleDetected,

0 commit comments

Comments
 (0)