summaryrefslogtreecommitdiff
path: root/dhall/src/semantics/resolve/resolve.rs
diff options
context:
space:
mode:
authorNadrieril2020-12-07 14:32:06 +0000
committerNadrieril2020-12-07 19:34:39 +0000
commitc1fe26d45c831eec015ad5c015236fce1928613a (patch)
treebdba83d6854005d4de29fc38427967989367da6f /dhall/src/semantics/resolve/resolve.rs
parent8c5b3ff15f2125e9d731fc199e194e1993c36b37 (diff)
Pass import results via the global context
Diffstat (limited to 'dhall/src/semantics/resolve/resolve.rs')
-rw-r--r--dhall/src/semantics/resolve/resolve.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/dhall/src/semantics/resolve/resolve.rs b/dhall/src/semantics/resolve/resolve.rs
index db162ef..011ed45 100644
--- a/dhall/src/semantics/resolve/resolve.rs
+++ b/dhall/src/semantics/resolve/resolve.rs
@@ -348,7 +348,7 @@ fn desugar(expr: &Expr) -> Cow<'_, Expr> {
fn traverse_resolve_expr<'cx>(
name_env: &mut NameEnv,
expr: &Expr,
- f: &mut impl FnMut(Import, Span) -> Result<Typed<'cx>, Error>,
+ f: &mut impl FnMut(Import, Span) -> Result<ImportId<'cx>, Error>,
) -> Result<Hir<'cx>, Error> {
let expr = desugar(expr);
Ok(match expr.kind() {
@@ -387,8 +387,8 @@ fn traverse_resolve_expr<'cx>(
ExprKind::Import(import) => {
// TODO: evaluate import headers
let import = import.traverse_ref(|_| Ok::<_, Error>(()))?;
- let imported = f(import, expr.span())?;
- HirKind::Import(imported.hir, imported.ty)
+ let import_id = f(import, expr.span())?;
+ HirKind::Import(import_id)
}
kind => HirKind::Expr(kind),
};
@@ -463,8 +463,7 @@ fn resolve_with_env<'cx>(
let import_id =
env.cx().push_import(base_location.clone(), import, span);
fetch_import(env, import_id)?;
- // TODO: store import id in Hir
- Ok(env.cx()[import_id].unwrap_result().clone())
+ Ok(import_id)
},
)?;
Ok(Resolved(resolved))