mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-03 11:52:19 +00:00
Make sure FunctionKind is determined in all entry points
There are a lot of entry points for a Roc program. They should probably be all consolidated into one, but for now, when FunctionKind is needed, determine it from the environment. This fixes EXPERIMENTAL_ROC_ERASE for `roc test` etc. Also print the location of a failure when `internal_error!` is called. I think this should panic instead, and I thought it used to - does anyone know if that changed?
This commit is contained in:
parent
6869c9f2e1
commit
0e52a7e069
6 changed files with 31 additions and 25 deletions
|
@ -6,3 +6,17 @@ pub enum FunctionKind {
|
|||
/// Function values are erased, no kind is introduced.
|
||||
Erased,
|
||||
}
|
||||
|
||||
impl FunctionKind {
|
||||
pub fn from_env() -> Self {
|
||||
if cfg!(debug_assertions) {
|
||||
if std::env::var("EXPERIMENTAL_ROC_ERASE").is_ok() {
|
||||
FunctionKind::Erased
|
||||
} else {
|
||||
FunctionKind::LambdaSet
|
||||
}
|
||||
} else {
|
||||
FunctionKind::LambdaSet
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue