//gofmt -r=(x)->x

// 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()
}
