compiler: propagate array length error marker farther
Fixes golang/go#53639 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/415936
This commit is contained in:
parent
ccc39d9e97
commit
c70a48a8f8
3 changed files with 11 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
|||
a209dca9ec918535977dcab99fd9bb60986ffacd
|
||||
d295a0a2c96c0f7c3abd94fea3aa4e2303bf2af2
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -8486,6 +8486,11 @@ Builtin_call_expression::do_flatten(Gogo* gogo, Named_object* function,
|
|||
pa != this->args()->end();
|
||||
++pa)
|
||||
{
|
||||
if ((*pa)->is_error_expression())
|
||||
{
|
||||
go_assert(saw_errors());
|
||||
return Expression::make_error(loc);
|
||||
}
|
||||
if ((*pa)->is_nil_expression())
|
||||
{
|
||||
Expression* nil = Expression::make_nil(loc);
|
||||
|
@ -13391,6 +13396,7 @@ Array_index_expression::do_check_types(Gogo*)
|
|||
if (array_type == NULL)
|
||||
{
|
||||
go_assert(this->array_->type()->is_error());
|
||||
this->set_is_error();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -7429,7 +7429,10 @@ bool
|
|||
Array_type::do_verify()
|
||||
{
|
||||
if (this->element_type()->is_error_type())
|
||||
return false;
|
||||
{
|
||||
this->set_is_error();
|
||||
return false;
|
||||
}
|
||||
if (!this->verify_length())
|
||||
{
|
||||
this->length_ = Expression::make_error(this->length_->location());
|
||||
|
|
Loading…
Add table
Reference in a new issue