const Typed_identifier_list* method_parameters = method_type->parameters();
if (method_parameters != NULL)
{
const Typed_identifier_list* method_parameters = method_type->parameters();
if (method_parameters != NULL)
{
for (Typed_identifier_list::const_iterator p = method_parameters->begin();
p != method_parameters->end();
for (Typed_identifier_list::const_iterator p = method_parameters->begin();
p != method_parameters->end();
- ++p)
- parameters->push_back(*p);
+ ++p, ++i)
+ {
+ if (!p->name().empty() && p->name() != Import::import_marker)
+ parameters->push_back(*p);
+ else
+ {
+ char buf[20];
+ snprintf(buf, sizeof buf, "$param%d", i);
+ parameters->push_back(Typed_identifier(buf, p->type(),
+ p->location()));
+ }
+ }
}
const Typed_identifier_list* method_results = method_type->results();
}
const Typed_identifier_list* method_results = method_type->results();
- if (method_parameters == NULL)
+ if (parameters->size() <= 1)
args = NULL;
else
{
args = new Expression_list();
args = NULL;
else
{
args = new Expression_list();
- for (Typed_identifier_list::const_iterator p = method_parameters->begin();
- p != method_parameters->end();
- ++p)
+ Typed_identifier_list::const_iterator p = parameters->begin();
+ ++p;
+ for (; p != parameters->end(); ++p)
{
vno = gogo->lookup(p->name(), NULL);
go_assert(vno != NULL);
{
vno = gogo->lookup(p->name(), NULL);
go_assert(vno != NULL);