Home | History | Annotate | Download | only in testdata
      1 //gofmt -r=(x)->x
      2 
      3 // Copyright 2012 The Go Authors. All rights reserved.
      4 // Use of this source code is governed by a BSD-style
      5 // license that can be found in the LICENSE file.
      6 
      7 // Rewriting of parenthesized expressions (x) -> x
      8 // must not drop parentheses if that would lead to
      9 // wrong association of the operands.
     10 // Was issue 1847.
     11 
     12 package main
     13 
     14 // From example 1 of issue 1847.
     15 func _() {
     16 	var t = (&T{1000}).Id()
     17 }
     18 
     19 // From example 2 of issue 1847.
     20 func _() {
     21        fmt.Println((*xpp).a)
     22 }
     23 
     24 // Some more test cases.
     25 func _() {
     26 	_ = (-x).f
     27 	_ = (*x).f
     28 	_ = (&x).f
     29 	_ = (!x).f
     30 	_ = (-x.f)
     31 	_ = (*x.f)
     32 	_ = (&x.f)
     33 	_ = (!x.f)
     34 	(-x).f()
     35 	(*x).f()
     36 	(&x).f()
     37 	(!x).f()
     38 	_ = (-x.f())
     39 	_ = (*x.f())
     40 	_ = (&x.f())
     41 	_ = (!x.f())
     42 
     43 	_ = ((-x)).f
     44 	_ = ((*x)).f
     45 	_ = ((&x)).f
     46 	_ = ((!x)).f
     47 	_ = ((-x.f))
     48 	_ = ((*x.f))
     49 	_ = ((&x.f))
     50 	_ = ((!x.f))
     51 	((-x)).f()
     52 	((*x)).f()
     53 	((&x)).f()
     54 	((!x)).f()
     55 	_ = ((-x.f()))
     56 	_ = ((*x.f()))
     57 	_ = ((&x.f()))
     58 	_ = ((!x.f()))
     59 
     60 	_ = -(x).f
     61 	_ = *(x).f
     62 	_ = &(x).f
     63 	_ = !(x).f
     64 	_ = -x.f
     65 	_ = *x.f
     66 	_ = &x.f
     67 	_ = !x.f
     68 	_ = -(x).f()
     69 	_ = *(x).f()
     70 	_ = &(x).f()
     71 	_ = !(x).f()
     72 	_ = -x.f()
     73 	_ = *x.f()
     74 	_ = &x.f()
     75 	_ = !x.f()
     76 }
     77