mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-03 16:44:33 +00:00
Replace Mark:: functions with consts
This commit is contained in:
parent
f04d8f5b03
commit
b715d3e2f8
3 changed files with 16 additions and 27 deletions
|
@ -73,7 +73,7 @@ pub fn run(
|
|||
let mut pools = Pools::default();
|
||||
let state = State {
|
||||
vars_by_symbol: vars_by_symbol.clone(),
|
||||
mark: Mark::none().next(),
|
||||
mark: Mark::NONE.next(),
|
||||
};
|
||||
let rank = Rank::toplevel();
|
||||
|
||||
|
@ -661,7 +661,7 @@ fn register(subs: &mut Subs, rank: Rank, pools: &mut Pools, content: Content) ->
|
|||
let var = subs.fresh(Descriptor {
|
||||
content,
|
||||
rank,
|
||||
mark: Mark::none(),
|
||||
mark: Mark::NONE,
|
||||
copy: None,
|
||||
});
|
||||
|
||||
|
|
35
src/subs.rs
35
src/subs.rs
|
@ -9,20 +9,9 @@ use std::sync::atomic::{AtomicUsize, Ordering};
|
|||
pub struct Mark(i32);
|
||||
|
||||
impl Mark {
|
||||
#[inline(always)]
|
||||
pub fn none() -> Mark {
|
||||
Mark(2)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
pub fn occurs() -> Mark {
|
||||
Mark(1)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
pub fn get_var_names() -> Mark {
|
||||
Mark(0)
|
||||
}
|
||||
pub const NONE: Mark = Mark(2);
|
||||
pub const OCCURS: Mark = Mark(1);
|
||||
pub const GET_VAR_NAMES: Mark = Mark(1);
|
||||
|
||||
#[inline(always)]
|
||||
pub fn next(self) -> Mark {
|
||||
|
@ -32,11 +21,11 @@ impl Mark {
|
|||
|
||||
impl fmt::Debug for Mark {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
if self == &Mark::none() {
|
||||
if self == &Mark::NONE {
|
||||
write!(f, "none")
|
||||
} else if self == &Mark::occurs() {
|
||||
} else if self == &Mark::OCCURS {
|
||||
write!(f, "occurs")
|
||||
} else if self == &Mark::get_var_names() {
|
||||
} else if self == &Mark::GET_VAR_NAMES {
|
||||
write!(f, "get_var_names")
|
||||
} else {
|
||||
write!(f, "Mark({})", self.0)
|
||||
|
@ -251,7 +240,7 @@ impl Subs {
|
|||
Descriptor {
|
||||
content: content.clone(),
|
||||
rank: Rank::NONE,
|
||||
mark: Mark::none(),
|
||||
mark: Mark::NONE,
|
||||
copy: None,
|
||||
},
|
||||
);
|
||||
|
@ -343,7 +332,7 @@ impl From<Content> for Descriptor {
|
|||
Descriptor {
|
||||
content,
|
||||
rank: Rank::NONE,
|
||||
mark: Mark::none(),
|
||||
mark: Mark::NONE,
|
||||
copy: None,
|
||||
}
|
||||
}
|
||||
|
@ -436,10 +425,10 @@ fn get_var_names(
|
|||
use self::Content::*;
|
||||
let desc = subs.get(var);
|
||||
|
||||
if desc.mark == Mark::get_var_names() {
|
||||
if desc.mark == Mark::GET_VAR_NAMES {
|
||||
taken_names
|
||||
} else {
|
||||
subs.set_mark(var, Mark::get_var_names());
|
||||
subs.set_mark(var, Mark::GET_VAR_NAMES);
|
||||
|
||||
match desc.content {
|
||||
Error(_) | FlexVar(None) => taken_names,
|
||||
|
@ -534,10 +523,10 @@ where
|
|||
fn var_to_err_type(subs: &mut Subs, state: &mut NameState, var: Variable) -> ErrorType {
|
||||
let desc = subs.get(var);
|
||||
|
||||
if desc.mark == Mark::occurs() {
|
||||
if desc.mark == Mark::OCCURS {
|
||||
ErrorType::Infinite
|
||||
} else {
|
||||
subs.set_mark(var, Mark::occurs());
|
||||
subs.set_mark(var, Mark::OCCURS);
|
||||
|
||||
let err_type = content_to_err_type(subs, state, var, desc.content);
|
||||
|
||||
|
|
|
@ -442,7 +442,7 @@ fn merge(subs: &mut Subs, ctx: &Context, content: Content) {
|
|||
let desc = Descriptor {
|
||||
content,
|
||||
rank,
|
||||
mark: Mark::none(),
|
||||
mark: Mark::NONE,
|
||||
copy: None,
|
||||
};
|
||||
|
||||
|
@ -463,7 +463,7 @@ fn fresh(subs: &mut Subs, pool: &mut Pool, ctx: &Context, content: Content) -> V
|
|||
Descriptor {
|
||||
content,
|
||||
rank: ctx.first_desc.rank.min(ctx.second_desc.rank),
|
||||
mark: Mark::none(),
|
||||
mark: Mark::NONE,
|
||||
copy: None,
|
||||
},
|
||||
pool,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue