def _call_eager(self, expr: E.Apply, arguments: List[V.Base]) -> V.Base: arr = arguments[0] assert isinstance(arr, V.Array) for arg in arr.value: if not isinstance(arg, V.Null): return arg raise Error.NullValue(expr)
def eval(self, env: Env.Values) -> V.Base: "" try: if self.condition.eval(env).expect(T.Boolean()).value: ans = self.consequent.eval(env) else: ans = self.alternative.eval(env) return ans except ReferenceError: raise Error.NullValue(self) from None