From aa867b21f57f9bef2ec2b9d8450736f9111189ee Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Sat, 15 Feb 2020 19:44:40 +0000 Subject: Introduce proper Type struct --- dhall/src/semantics/hir.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'dhall/src/semantics/hir.rs') diff --git a/dhall/src/semantics/hir.rs b/dhall/src/semantics/hir.rs index c8258ff..d0a8a96 100644 --- a/dhall/src/semantics/hir.rs +++ b/dhall/src/semantics/hir.rs @@ -1,6 +1,6 @@ #![allow(dead_code)] use crate::error::TypeError; -use crate::semantics::{type_with, NameEnv, NzEnv, TyEnv, TyExpr, Value}; +use crate::semantics::{type_with, NameEnv, NzEnv, TyEnv, TyExpr, Type, Value}; use crate::syntax::{Expr, ExprKind, Span, V}; use crate::{NormalizedExpr, ToExprOptions}; @@ -79,6 +79,10 @@ impl Hir { pub fn eval(&self, env: impl Into) -> Value { Value::new_thunk(env.into(), self.clone()) } + /// Evaluate to a Type. + pub fn eval_to_type(&self, env: impl Into) -> Type { + self.eval(env).into() + } /// Eval a closed Hir (i.e. without free variables). It will actually get evaluated only as /// needed on demand. pub fn eval_closed_expr(&self) -> Value { -- cgit v1.2.3