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