Commit 0b78e62c by Ian Lance Taylor

compiler: Use receiver name in hash/equal for type within method.

    
    Test case sent as https://golang.org/cl/17081.
    
    Reviewed-on: https://go-review.googlesource.com/17082

From-SVN: r230657
parent 430002b9
e3aef41ce0c5be81e2589e60d9cb0db1516e9e2d dfa74d975884f363c74d6a66a37b1703093fdba6
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -1769,7 +1769,16 @@ Type::specific_type_functions(Gogo* gogo, Named_type* name, ...@@ -1769,7 +1769,16 @@ Type::specific_type_functions(Gogo* gogo, Named_type* name,
const Named_object* in_function = name->in_function(&index); const Named_object* in_function = name->in_function(&index);
if (in_function != NULL) if (in_function != NULL)
{ {
base_name += '$' + Gogo::unpack_hidden_name(in_function->name()); base_name.append(1, '$');
const Typed_identifier* rcvr =
in_function->func_value()->type()->receiver();
if (rcvr != NULL)
{
Named_type* rcvr_type = rcvr->type()->deref()->named_type();
base_name.append(Gogo::unpack_hidden_name(rcvr_type->name()));
base_name.append(1, '$');
}
base_name.append(Gogo::unpack_hidden_name(in_function->name()));
if (index > 0) if (index > 0)
{ {
char buf[30]; char buf[30];
......
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