From the spec ('Declarations and scope'):
The scope of an identifier denoting a constant, type, variable, or function (but not method) declared at top level (outside any function) is the package block.
I guess it implies that the scope of an identifier denoting a method not a package block.
Then what is it? I did not manage to find any info in the spec.
Method names do not have a scope. They must always be qualified by a value or type.
The Go Programming Language Specification
A method is a function with a receiver. A method declaration binds an identifier, the method name, to a method, and associates the method with the receiver's base type.
The receiver is specified via an extra parameter section preceding the method name. That parameter section must declare a single non-variadic parameter, the receiver. Its type must be of the form T or *T (possibly using parentheses) where T is a type name. The type denoted by T is called the receiver base type; it must not be a pointer or interface type and it must be defined in the same package as the method. The method is said to be bound to the base type and the method name is visible only within selectors for type T or *T.
The method is said to be bound to the base type and the method name is visible only within selectors for type T or *T.