summaryrefslogtreecommitdiff
path: root/dhall/src/imports.rs
diff options
context:
space:
mode:
Diffstat (limited to 'dhall/src/imports.rs')
-rw-r--r--dhall/src/imports.rs12
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 {