compiler: Make sure we produce an error for a call to a non-function.
Fixes issue 19. From-SVN: r194174
This commit is contained in:
parent
54d04de72b
commit
d59a4c82a6
@ -8544,6 +8544,16 @@ Call_expression::do_lower(Gogo* gogo, Named_object* function,
|
||||
return Expression::make_cast(this->fn_->type(), this->args_->front(),
|
||||
loc);
|
||||
|
||||
// Because do_type will return an error type and thus prevent future
|
||||
// errors, check for that case now to ensure that the error gets
|
||||
// reported.
|
||||
if (this->get_function_type() == NULL)
|
||||
{
|
||||
if (!this->fn_->type()->is_error())
|
||||
this->report_error(_("expected function"));
|
||||
return Expression::make_error(loc);
|
||||
}
|
||||
|
||||
// Recognize a call to a builtin function.
|
||||
Func_expression* fne = this->fn_->func_expression();
|
||||
if (fne != NULL
|
||||
|
Loading…
Reference in New Issue
Block a user