diff --git a/src/op.cc b/src/op.cc index 6a48d528..902ed647 100644 --- a/src/op.cc +++ b/src/op.cc @@ -105,17 +105,14 @@ value_t expr_t::op_t::calc(scope_t& scope, ptr_op_t * locus) break; case IDENT: { - ptr_op_t def = left(); - if (! def) - def = compile(scope); - if (! def) + if (! left()) throw_(calc_error, "Unknown identifier '" << as_ident() << "'"); // Evaluating an identifier is the same as calling its definition // directly, so we create an empty call_scope_t to reflect the scope for // this implicit call. call_scope_t call_args(scope); - result = def->calc(call_args, locus); + result = left()->calc(call_args, locus); break; }