exp/eval, go/printer: fix build

There are some minor irregularities in the printer
output (some paren's are present that should be
removed), but these are unrelated issues.
Will review in a 2nd step.

R=rsc
CC=golang-dev
https://golang.org/cl/4188068
diff --git a/src/pkg/exp/eval/stmt_test.go b/src/pkg/exp/eval/stmt_test.go
index a14a288..4a883ef 100644
--- a/src/pkg/exp/eval/stmt_test.go
+++ b/src/pkg/exp/eval/stmt_test.go
@@ -217,7 +217,7 @@
 	Val2("if false { i = 2 } else { i = 3 }; i2 = 4", "i", 3, "i2", 4),
 	Val2("if i == i2 { i = 2 } else { i = 3 }; i2 = 4", "i", 3, "i2", 4),
 	// Omit optional parts
-	Val2("if { i = 2 } else { i = 3 }; i2 = 4", "i", 2, "i2", 4),
+	Val2("if true { i = 2 } else { i = 3 }; i2 = 4", "i", 2, "i2", 4),
 	Val2("if true { i = 2 }; i2 = 4", "i", 2, "i2", 4),
 	Val2("if false { i = 2 }; i2 = 4", "i", 1, "i2", 4),
 	// Init
@@ -243,11 +243,11 @@
 	CErr("fn1 := func() int { if true { return 1 } }", "return"),
 	CErr("fn1 := func() int { if true { } }", "return"),
 	Run("fn1 := func() int { if true { }; return 1 }"),
-	CErr("fn1 := func() int { if { } }", "return"),
-	CErr("fn1 := func() int { if { } else { return 2 } }", "return"),
-	Run("fn1 := func() int { if { return 1 } }"),
-	Run("fn1 := func() int { if { return 1 } else { } }"),
-	Run("fn1 := func() int { if { return 1 } else { } }"),
+	CErr("fn1 := func() int { if true { } }", "return"),
+	CErr("fn1 := func() int { if true { } else { return 2 } }", "return"),
+	Run("fn1 := func() int { if true { return 1 }; return 0 }"),
+	Run("fn1 := func() int { if true { return 1 } else { }; return 0 }"),
+	Run("fn1 := func() int { if true { return 1 } else { }; return 0 }"),
 
 	// Switch
 	Val1("switch { case false: i += 2; case true: i += 4; default: i += 8 }", "i", 1+4),
diff --git a/src/pkg/go/printer/testdata/statements.golden b/src/pkg/go/printer/testdata/statements.golden
index 5eceb7d..98bc031 100644
--- a/src/pkg/go/printer/testdata/statements.golden
+++ b/src/pkg/go/printer/testdata/statements.golden
@@ -10,19 +10,13 @@
 
 // Formatting of if-statement headers.
 func _() {
-	if {
-	}
-	if {
-	}	// no semicolon printed
-	if expr {
+	if true {
 	}
 	if expr {
-	}	// no semicolon printed
+	}
 	if expr {
 	}	// no parens printed
-	if expr {
-	}	// no semicolon and parens printed
-	if x := expr; {
+	if x := expr; true {
 		use(x)
 	}
 	if x := expr; expr {
@@ -35,16 +29,10 @@
 func _() {
 	switch {
 	}
-	switch {
-	}	// no semicolon printed
 	switch expr {
 	}
 	switch expr {
-	}	// no semicolon printed
-	switch expr {
 	}	// no parens printed
-	switch expr {
-	}	// no semicolon and parens printed
 	switch x := expr; {
 	default:
 		use(
@@ -354,14 +342,14 @@
 
 
 func _() {
-	if {
+	if true {
 		_ = 0
 	}
 	_ = 0	// the indentation here should not be affected by the long label name
 AnOverlongLabel:
 	_ = 0
 
-	if {
+	if true {
 		_ = 0
 	}
 	_ = 0
diff --git a/src/pkg/go/printer/testdata/statements.input b/src/pkg/go/printer/testdata/statements.input
index 7819820..c8df052 100644
--- a/src/pkg/go/printer/testdata/statements.input
+++ b/src/pkg/go/printer/testdata/statements.input
@@ -10,13 +10,10 @@
 
 // Formatting of if-statement headers.
 func _() {
-	if {}
-	if;{}  // no semicolon printed
+	if true {}
 	if expr{}
-	if;expr{}  // no semicolon printed
 	if (expr){}  // no parens printed
-	if;((expr)){}  // no semicolon and parens printed
-	if x:=expr;{
+	if x:=expr; true {
 	use(x)}
 	if x:=expr; expr {use(x)}
 }
@@ -25,11 +22,8 @@
 // Formatting of switch-statement headers.
 func _() {
 	switch {}
-	switch;{}  // no semicolon printed
 	switch expr {}
-	switch;expr{}  // no semicolon printed
 	switch (expr) {}  // no parens printed
-	switch;((expr)){}  // no semicolon and parens printed
 	switch x := expr; { default:use(
 x)
 	}
@@ -118,7 +112,7 @@
 	if (((x))) {}
 	if ([]T{}) {}
 	if (([]T{})) {}
-	if ; (((([]T{})))) {}
+	if (((([]T{})))) {}
 
 	for (x) {}
 	for (((x))) {}
@@ -129,21 +123,21 @@
 	switch (x) {}
 	switch (((x))) {}
 	switch ([]T{}) {}
-	switch ; (((([]T{})))) {}
+	switch (((([]T{})))) {}
 
 	for _ = range ((([]T{T{42}}))) {}
 
 	// leave parentheses - composite literals start with a type name
 	if (T{}) {}
 	if ((T{})) {}
-	if ; ((((T{})))) {}
+	if ((((T{})))) {}
 
 	for (T{}) {}
 	for ((T{})) {}
 	for ; ((((T{})))) ; {}
 
 	switch (T{}) {}
-	switch ; ((((T{})))) {}
+	switch ((((T{})))) {}
 
 	for _ = range (((T1{T{42}}))) {}
 
@@ -271,14 +265,14 @@
 
 
 func _() {
-	if {
+	if true {
 		_ = 0
 	}
 	_ = 0  // the indentation here should not be affected by the long label name
 AnOverlongLabel:
 	_ = 0
 	
-	if {
+	if true {
 		_ = 0
 	}
 	_ = 0