// Copyright 2012 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.

// Rewriting of parenthesized expressions (x) -> x
// must not drop parentheses if that would lead to
// wrong association of the operands.
// Was issue 1847.

package main

// From example 1 of issue 1847.
func _() {
	var t = (&T{1000}).Id()
}

// From example 2 of issue 1847.
func _() {
       fmt.Println((*xpp).a)
}

// Some more test cases.
func _() {
	_ = (-x).f
	_ = (*x).f
	_ = (&x).f
	_ = (!x).f
	_ = (-x.f)
	_ = (*x.f)
	_ = (&x.f)
	_ = (!x.f)
	(-x).f()
	(*x).f()
	(&x).f()
	(!x).f()
	_ = (-x.f())
	_ = (*x.f())
	_ = (&x.f())
	_ = (!x.f())

	_ = ((-x)).f
	_ = ((*x)).f
	_ = ((&x)).f
	_ = ((!x)).f
	_ = ((-x.f))
	_ = ((*x.f))
	_ = ((&x.f))
	_ = ((!x.f))
	((-x)).f()
	((*x)).f()
	((&x)).f()
	((!x)).f()
	_ = ((-x.f()))
	_ = ((*x.f()))
	_ = ((&x.f()))
	_ = ((!x.f()))

	_ = -(x).f
	_ = *(x).f
	_ = &(x).f
	_ = !(x).f
	_ = -x.f
	_ = *x.f
	_ = &x.f
	_ = !x.f
	_ = -(x).f()
	_ = *(x).f()
	_ = &(x).f()
	_ = !(x).f()
	_ = -x.f()
	_ = *x.f()
	_ = &x.f()
	_ = !x.f()
}
