compiler: determine types of Slice_{value,info} expressions

This fixes an accidental omission in the determine types pass.

Test case is https://go.dev/cl/505015.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/504797
This commit is contained in:
Ian Lance Taylor 2023-06-21 14:27:02 -07:00
parent 80e9ca0e36
commit cb760f66e0
3 changed files with 13 additions and 4 deletions

View file

@ -1,4 +1,4 @@
6a1d165c2218cd127ee937a1f45599075762f716
195060166e6045408a2cb95e6aa88c6f0b98f20b
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View file

@ -18307,6 +18307,16 @@ Slice_value_expression::do_traverse(Traverse* traverse)
return TRAVERSE_CONTINUE;
}
// Determine type of a slice value.
void
Slice_value_expression::do_determine_type(const Type_context*)
{
this->valmem_->determine_type_no_context();
this->len_->determine_type_no_context();
this->cap_->determine_type_no_context();
}
Expression*
Slice_value_expression::do_copy()
{

View file

@ -4364,8 +4364,7 @@ class Slice_value_expression : public Expression
{ return this->type_; }
void
do_determine_type(const Type_context*)
{ }
do_determine_type(const Type_context*);
Expression*
do_copy();
@ -4419,7 +4418,7 @@ class Slice_info_expression : public Expression
void
do_determine_type(const Type_context*)
{ }
{ this->slice_->determine_type_no_context(); }
Expression*
do_copy()