mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
Avoids problems with local declarations shadowing other names.
We write a more explicit form than the incoming program, so there
may be additional type annotations. For example:
int := "hello"
j := 2
would normally turn into
var int string = "hello"
var j int = 2
but the int variable shadows the int type in the second line.
This CL marks all local variables with a per-function sequence number,
so that this would instead be:
var int·1 string = "hello"
var j·2 int = 2
Fixes #4326.
R=ken2
CC=golang-dev
https://golang.org/cl/6816100
8 lines
142 B
Go
8 lines
142 B
Go
package q1
|
|
|
|
func Deref(typ interface{}) interface{} {
|
|
if typ, ok := typ.(*int); ok {
|
|
return *typ
|
|
}
|
|
return typ
|
|
}
|