When making the type for a variable with an empty interface type,
the parser makes an interface type with a NULL method set and relies
on later passes to correct this.
For sink variables, which are ignored in later passes, the interface
method table is never finalized and a compile time assertion is issued.
Instead, the initial type generated by the parser should be the empty
interface type.
Fixes golang/go#11579.
Reviewed-on: https://go-review.googlesource.com/12049
From-SVN: r226123
-b4a932b4a51b612cadcec93a83f94d6ee7d7d190
+cbb27e8089e11094a20502e53ef69c9c36955f85
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
methods = NULL;
}
- Interface_type* ret = Type::make_interface_type(methods, location);
+ Interface_type* ret;
+ if (methods == NULL)
+ ret = Type::make_empty_interface_type(location);
+ else
+ ret = Type::make_interface_type(methods, location);
if (record)
this->gogo_->record_interface_type(ret);
return ret;