diff options
author | Nadrieril | 2019-04-11 20:45:43 +0200 |
---|---|---|
committer | Nadrieril | 2019-04-11 20:45:43 +0200 |
commit | d9a2a77a19e56edd8eb96eba002e39bc7be3bde3 (patch) | |
tree | a2cb1badcaad84b94c08ae6643b81a6b8481559a /dhall/src/imports.rs | |
parent | d17d553a39aa3bffdfc19b7fe4801b85d6bd80f7 (diff) |
Thread lifetimes through other newtypes
Closes #55
Diffstat (limited to 'dhall/src/imports.rs')
-rw-r--r-- | dhall/src/imports.rs | 21 |
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)) } |