blob: 6a223e85233822553aa50b03fdf69dc81d7f9b28 [file] [log] [blame]
// $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; }
}