// $G $D/$F.go && $L $F.$A && ./$A.out // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main type s struct { a bool; b bool; } func main() { var a,b bool; a = true; b = false; if !a { panic 1; } if b { panic 2; } if !!!a { panic 3; } if !!b { panic 4; } a = !b; if !a { panic 5; } if !!!a { panic 6; } var x *s; x = new(s); x.a = true; x.b = false; if !x.a { panic 7; } if x.b { panic 8; } if !!!x.a { panic 9; } if !!x.b { panic 10; } x.a = !x.b; if !x.a { panic 11; } if !!!x.a { panic 12; } /* * test && */ a = true; b = true; if !(a && b) { panic 21; } if a && !b { panic 22; } if !a && b { panic 23; } if !a && !b { panic 24; } a = false; b = true; if !(!a && b) { panic 31; } if !a && !b { panic 32; } if a && b { panic 33; } if a && !b { panic 34; } a = true; b = false; if !(a && !b) { panic 41; } if a && b { panic 41; } if !a && !b { panic 41; } if !a && b { panic 44; } a = false; b = false; if !(!a && !b) { panic 51; } if !a && b { panic 52; } if a && !b { panic 53; } if a && b { panic 54; } /* * test || */ a = true; b = true; if !(a || b) { panic 61; } if !(a || !b) { panic 62; } if !(!a || b) { panic 63; } if !a || !b { panic 64; } a = false; b = true; if !(!a || b) { panic 71; } if !(!a || !b) { panic 72; } if !(a || b) { panic 73; } if a || !b { panic 74; } a = true; b = false; if !(a || !b) { panic 81; } if !(a || b) { panic 82; } if !(!a || !b) { panic 83; } if !a || b { panic 84; } a = false; b = false; if !(!a || !b) { panic 91; } if !(!a || b) { panic 92; } if !(a || !b) { panic 93; } if a || b { panic 94; } }