]> Cypherpunks repositories - gostls13.git/commitdiff
gofmt -r: match(...) arguments may be nil; add missing guards
authorRobert Griesemer <gri@golang.org>
Thu, 27 Jan 2011 03:17:53 +0000 (19:17 -0800)
committerRobert Griesemer <gri@golang.org>
Thu, 27 Jan 2011 03:17:53 +0000 (19:17 -0800)
Fixes #1446.

R=rsc
CC=golang-dev
https://golang.org/cl/3981043

src/cmd/gofmt/rewrite.go

index 8ea5334e97a7b616dccc6ae420fc452cdedbb93f..fbcd46aa29e2851dcc4bf101bf16f50c13511e1c 100644 (file)
@@ -124,9 +124,9 @@ func match(m map[string]reflect.Value, pattern, val reflect.Value) bool {
        // Wildcard matches any expression.  If it appears multiple
        // times in the pattern, it must match the same expression
        // each time.
-       if m != nil && pattern.Type() == identType {
+       if m != nil && pattern != nil && pattern.Type() == identType {
                name := pattern.Interface().(*ast.Ident).Name
-               if isWildcard(name) {
+               if isWildcard(name) && val != nil {
                        // wildcards only match expressions
                        if _, ok := val.Interface().(ast.Expr); ok {
                                if old, ok := m[name]; ok {