compiler: Really only make descriptors when needed.
From-SVN: r200280
This commit is contained in:
parent
593bcbb8e4
commit
bc6ad87f60
2 changed files with 0 additions and 21 deletions
|
@ -1242,24 +1242,6 @@ Func_expression::do_traverse(Traverse* traverse)
|
|||
: Expression::traverse(&this->closure_, traverse));
|
||||
}
|
||||
|
||||
// Lower a function reference. If this reference is not called
|
||||
// directly, make sure there is a function descriptor.
|
||||
|
||||
Expression*
|
||||
Func_expression::do_lower(Gogo* gogo, Named_object*, Statement_inserter*, int)
|
||||
{
|
||||
// Make sure that the descriptor exists. FIXME: If the function is
|
||||
// only ever called, and is never referenced otherwise, then we
|
||||
// don't need the descriptor. We could do that with another pass
|
||||
// over the tree.
|
||||
if (this->closure_ == NULL
|
||||
&& this->function_->is_function()
|
||||
&& !this->function_->func_value()->is_method())
|
||||
this->function_->func_value()->descriptor(gogo, this->function_);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
// Return the type of a function expression.
|
||||
|
||||
Type*
|
||||
|
|
|
@ -1524,9 +1524,6 @@ class Func_expression : public Expression
|
|||
int
|
||||
do_traverse(Traverse*);
|
||||
|
||||
Expression*
|
||||
do_lower(Gogo*, Named_object*, Statement_inserter*, int);
|
||||
|
||||
Type*
|
||||
do_type();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue