diff --git a/src/cmd/gc/fmt.c b/src/cmd/gc/fmt.c index f49c703f360..4afd6c42bfb 100644 --- a/src/cmd/gc/fmt.c +++ b/src/cmd/gc/fmt.c @@ -669,8 +669,10 @@ typefmt(Fmt *fp, Type *t) case 0: break; case 1: - fmtprint(fp, " %T", getoutargx(t)->type->type); // struct->field->field's type - break; + if(fmtmode != FExp) { + fmtprint(fp, " %T", getoutargx(t)->type->type); // struct->field->field's type + break; + } default: fmtprint(fp, " %T", getoutargx(t)); break; diff --git a/test/fixedbugs/bug392.dir/one.go b/test/fixedbugs/bug392.dir/one.go index f086ebe4e2b..a7017255e5a 100644 --- a/test/fixedbugs/bug392.dir/one.go +++ b/test/fixedbugs/bug392.dir/one.go @@ -14,6 +14,9 @@ func F1(T *T) bool { return T == nil } // Issue 2682. func F2(c chan int) bool { return c == (<-chan int)(nil) } +// Use of single named return value. +func F3() (ret []int) { return append(ret, 1) } + // Call of inlined method with blank receiver. func (_ *T) M() int { return 1 } func (t *T) MM() int { return t.M() } diff --git a/test/fixedbugs/bug392.dir/two.go b/test/fixedbugs/bug392.dir/two.go index 3704e65c5e1..b0ce26d39ab 100644 --- a/test/fixedbugs/bug392.dir/two.go +++ b/test/fixedbugs/bug392.dir/two.go @@ -12,9 +12,9 @@ import "./one" func use() { one.F1(nil) one.F2(nil) + one.F3() var t *one.T t.M() t.MM() } -