1
0
mirror of https://github.com/golang/go synced 2024-11-20 10:34:42 -07:00

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
This commit is contained in:
Robert Griesemer 2011-02-22 18:17:03 -08:00
parent bdbea6e410
commit cd0f799e65
3 changed files with 19 additions and 37 deletions

View File

@ -217,7 +217,7 @@ var stmtTests = []test{
Val2("if false { i = 2 } else { i = 3 }; i2 = 4", "i", 3, "i2", 4), 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), Val2("if i == i2 { i = 2 } else { i = 3 }; i2 = 4", "i", 3, "i2", 4),
// Omit optional parts // 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 true { i = 2 }; i2 = 4", "i", 2, "i2", 4),
Val2("if false { i = 2 }; i2 = 4", "i", 1, "i2", 4), Val2("if false { i = 2 }; i2 = 4", "i", 1, "i2", 4),
// Init // Init
@ -243,11 +243,11 @@ var stmtTests = []test{
CErr("fn1 := func() int { if true { return 1 } }", "return"), CErr("fn1 := func() int { if true { return 1 } }", "return"),
CErr("fn1 := func() int { if true { } }", "return"), CErr("fn1 := func() int { if true { } }", "return"),
Run("fn1 := func() int { if true { }; return 1 }"), Run("fn1 := func() int { if true { }; return 1 }"),
CErr("fn1 := func() int { if { } }", "return"), CErr("fn1 := func() int { if true { } }", "return"),
CErr("fn1 := func() int { if { } else { return 2 } }", "return"), CErr("fn1 := func() int { if true { } else { return 2 } }", "return"),
Run("fn1 := func() int { if { return 1 } }"), Run("fn1 := func() int { if true { return 1 }; return 0 }"),
Run("fn1 := func() int { if { return 1 } else { } }"), Run("fn1 := func() int { if true { return 1 } else { }; return 0 }"),
Run("fn1 := func() int { if { return 1 } else { } }"), Run("fn1 := func() int { if true { return 1 } else { }; return 0 }"),
// Switch // Switch
Val1("switch { case false: i += 2; case true: i += 4; default: i += 8 }", "i", 1+4), Val1("switch { case false: i += 2; case true: i += 4; default: i += 8 }", "i", 1+4),

View File

@ -10,19 +10,13 @@ func use(x interface{}) {}
// Formatting of if-statement headers. // Formatting of if-statement headers.
func _() { func _() {
if { if true {
}
if {
} // no semicolon printed
if expr {
} }
if expr { if expr {
} // no semicolon printed }
if expr { if expr {
} // no parens printed } // no parens printed
if expr { if x := expr; true {
} // no semicolon and parens printed
if x := expr; {
use(x) use(x)
} }
if x := expr; expr { if x := expr; expr {
@ -35,16 +29,10 @@ func _() {
func _() { func _() {
switch { switch {
} }
switch {
} // no semicolon printed
switch expr { switch expr {
} }
switch expr { switch expr {
} // no semicolon printed
switch expr {
} // no parens printed } // no parens printed
switch expr {
} // no semicolon and parens printed
switch x := expr; { switch x := expr; {
default: default:
use( use(
@ -354,14 +342,14 @@ func _() {
func _() { func _() {
if { if true {
_ = 0 _ = 0
} }
_ = 0 // the indentation here should not be affected by the long label name _ = 0 // the indentation here should not be affected by the long label name
AnOverlongLabel: AnOverlongLabel:
_ = 0 _ = 0
if { if true {
_ = 0 _ = 0
} }
_ = 0 _ = 0

View File

@ -10,13 +10,10 @@ func use(x interface{}) {}
// Formatting of if-statement headers. // Formatting of if-statement headers.
func _() { func _() {
if {} if true {}
if;{} // no semicolon printed
if expr{} if expr{}
if;expr{} // no semicolon printed
if (expr){} // no parens printed if (expr){} // no parens printed
if;((expr)){} // no semicolon and parens printed if x:=expr; true {
if x:=expr;{
use(x)} use(x)}
if x:=expr; expr {use(x)} if x:=expr; expr {use(x)}
} }
@ -25,11 +22,8 @@ func _() {
// Formatting of switch-statement headers. // Formatting of switch-statement headers.
func _() { func _() {
switch {} switch {}
switch;{} // no semicolon printed
switch expr {} switch expr {}
switch;expr{} // no semicolon printed
switch (expr) {} // no parens printed switch (expr) {} // no parens printed
switch;((expr)){} // no semicolon and parens printed
switch x := expr; { default:use( switch x := expr; { default:use(
x) x)
} }
@ -118,7 +112,7 @@ func _() {
if (((x))) {} if (((x))) {}
if ([]T{}) {} if ([]T{}) {}
if (([]T{})) {} if (([]T{})) {}
if ; (((([]T{})))) {} if (((([]T{})))) {}
for (x) {} for (x) {}
for (((x))) {} for (((x))) {}
@ -129,21 +123,21 @@ func _() {
switch (x) {} switch (x) {}
switch (((x))) {} switch (((x))) {}
switch ([]T{}) {} switch ([]T{}) {}
switch ; (((([]T{})))) {} switch (((([]T{})))) {}
for _ = range ((([]T{T{42}}))) {} for _ = range ((([]T{T{42}}))) {}
// leave parentheses - composite literals start with a type name // leave parentheses - composite literals start with a type name
if (T{}) {} if (T{}) {}
if ((T{})) {} if ((T{})) {}
if ; ((((T{})))) {} if ((((T{})))) {}
for (T{}) {} for (T{}) {}
for ((T{})) {} for ((T{})) {}
for ; ((((T{})))) ; {} for ; ((((T{})))) ; {}
switch (T{}) {} switch (T{}) {}
switch ; ((((T{})))) {} switch ((((T{})))) {}
for _ = range (((T1{T{42}}))) {} for _ = range (((T1{T{42}}))) {}
@ -271,14 +265,14 @@ func _() {
func _() { func _() {
if { if true {
_ = 0 _ = 0
} }
_ = 0 // the indentation here should not be affected by the long label name _ = 0 // the indentation here should not be affected by the long label name
AnOverlongLabel: AnOverlongLabel:
_ = 0 _ = 0
if { if true {
_ = 0 _ = 0
} }
_ = 0 _ = 0