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