Class: Dhall::TypeChecker::Assertion
- Inherits:
-
Object
- Object
- Dhall::TypeChecker::Assertion
- Defined in:
- lib/dhall/typecheck.rb
Instance Method Summary collapse
- #annotate(context) ⇒ Object
-
#initialize(expr) ⇒ Assertion
constructor
A new instance of Assertion.
Constructor Details
#initialize(expr) ⇒ Assertion
Returns a new instance of Assertion.
1040 1041 1042 1043 |
# File 'lib/dhall/typecheck.rb', line 1040 def initialize(expr) @expr = expr @type = expr.type end |
Instance Method Details
#annotate(context) ⇒ Object
1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 |
# File 'lib/dhall/typecheck.rb', line 1045 def annotate(context) TypeChecker.assert @type, Dhall::Operator::Equivalent, "assert expected === got: #{@type.class}" TypeChecker.assert_type @type, Builtins[:Type], "=== expected to have type Type", context: context TypeChecker.assert @type.lhs.normalize.to_binary, @type.rhs.normalize.to_binary, "assert equivalence not equivalent" @expr.with(type: @type.normalize) end |