Commit d69eea11 by Ian Lance Taylor

compiler: Use context to determine types of complex expressions.

    
    When determining the type of a complex expression, it is important
    to recognize cases where a complex value can be represented as a
    real number.
    
    Fixes golang/go#11572.
    
    Reviewed-on: https://go-review.googlesource.com/12541

From-SVN: r226596
parent f12021ed
bdd98c601f2c8dbd0bf821548ba09c038f7645c4
df080adb06f0e423820f3f6b9604b0c1093ff20a
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
......@@ -2396,7 +2396,7 @@ class Complex_expression : public Expression
void
do_dump_expression(Ast_dump_context*) const;
private:
// The complex value.
mpc_t val_;
......@@ -2423,8 +2423,7 @@ Complex_expression::do_determine_type(const Type_context* context)
{
if (this->type_ != NULL && !this->type_->is_abstract())
;
else if (context->type != NULL
&& context->type->complex_type() != NULL)
else if (context->type != NULL && context->type->is_numeric_type())
this->type_ = context->type;
else if (!context->may_be_abstract)
this->type_ = Type::lookup_complex_type("complex128");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment