summaryrefslogtreecommitdiff
path: root/dhall/src/imports.rs
diff options
context:
space:
mode:
authorNadrieril2019-04-11 20:45:43 +0200
committerNadrieril2019-04-11 20:45:43 +0200
commitd9a2a77a19e56edd8eb96eba002e39bc7be3bde3 (patch)
treea2cb1badcaad84b94c08ae6643b81a6b8481559a /dhall/src/imports.rs
parentd17d553a39aa3bffdfc19b7fe4801b85d6bd80f7 (diff)
Thread lifetimes through other newtypes
Closes #55
Diffstat (limited to '')
-rw-r--r--dhall/src/imports.rs21
1 files changed, 11 insertions, 10 deletions
diff --git a/dhall/src/imports.rs b/dhall/src/imports.rs
index 6b6e2e7..cc9654a 100644
--- a/dhall/src/imports.rs
+++ b/dhall/src/imports.rs
@@ -22,7 +22,7 @@ pub enum ImportRoot {
fn resolve_import(
import: &Import,
root: &ImportRoot,
-) -> Result<Normalized, ImportError> {
+) -> Result<Normalized<'static>, ImportError> {
use self::ImportRoot::*;
use dhall_core::FilePrefix::*;
use dhall_core::ImportLocation::*;
@@ -45,7 +45,7 @@ fn resolve_import(
}
}
-fn load_import(f: &Path) -> Result<Normalized, Error> {
+fn load_import(f: &Path) -> Result<Normalized<'static>, Error> {
Ok(Parsed::parse_file(f)?.resolve()?.typecheck()?.normalize())
}
@@ -53,14 +53,15 @@ fn resolve_expr<'a>(
Parsed(expr, root, marker): Parsed<'a>,
allow_imports: bool,
) -> Result<Resolved<'a>, ImportError> {
- let resolve = |import: &Import| -> Result<Normalized, ImportError> {
- if allow_imports {
- let expr = resolve_import(import, &root)?;
- Ok(expr)
- } else {
- Err(ImportError::UnexpectedImport(import.clone()))
- }
- };
+ let resolve =
+ |import: &Import| -> Result<Normalized<'static>, ImportError> {
+ if allow_imports {
+ let expr = resolve_import(import, &root)?;
+ Ok(expr)
+ } else {
+ Err(ImportError::UnexpectedImport(import.clone()))
+ }
+ };
let expr = expr.as_ref().traverse_embed(&resolve)?;
Ok(Resolved(rc(expr), marker))
}