diff options
author | Nadrieril | 2020-12-07 14:32:06 +0000 |
---|---|---|
committer | Nadrieril | 2020-12-07 19:34:39 +0000 |
commit | c1fe26d45c831eec015ad5c015236fce1928613a (patch) | |
tree | bdba83d6854005d4de29fc38427967989367da6f /dhall/src/semantics/resolve/resolve.rs | |
parent | 8c5b3ff15f2125e9d731fc199e194e1993c36b37 (diff) |
Pass import results via the global context
Diffstat (limited to '')
-rw-r--r-- | dhall/src/semantics/resolve/resolve.rs | 9 |
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)) |