diff options
Diffstat (limited to '')
-rw-r--r-- | dhall/src/imports.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/dhall/src/imports.rs b/dhall/src/imports.rs index e42bfec..b5546b2 100644 --- a/dhall/src/imports.rs +++ b/dhall/src/imports.rs @@ -21,7 +21,7 @@ pub enum ImportRoot { fn resolve_import( import: &Import, root: &ImportRoot, -) -> Result<Resolved, ImportError> { +) -> Result<Normalized, ImportError> { use self::ImportRoot::*; use dhall_core::FilePrefix::*; use dhall_core::ImportLocation::*; @@ -44,24 +44,24 @@ fn resolve_import( } } -fn load_import(f: &Path) -> Result<Resolved, Error> { - Ok(Parsed::parse_file(f)?.resolve()?) +fn load_import(f: &Path) -> Result<Normalized, Error> { + Ok(Parsed::parse_file(f)?.resolve()?.typecheck()?.normalize()) } fn resolve_expr( Parsed(expr, root): Parsed, allow_imports: bool, ) -> Result<Resolved, ImportError> { - let resolve = |import: &Import| -> Result<SubExpr<X, X>, ImportError> { + let resolve = |import: &Import| -> Result<Normalized, ImportError> { if allow_imports { let expr = resolve_import(import, &root)?; - Ok(expr.0) + Ok(expr) } else { Err(ImportError::UnexpectedImport(import.clone())) } }; let expr = expr.as_ref().traverse_embed(&resolve)?; - Ok(Resolved(expr.squash_embed())) + Ok(Resolved(rc(expr))) } impl Parsed { |