go/ast.UnaryExpr.Op (field)

23 uses

	go/ast (current package)
		ast.go#L396: 		Op    token.Token // operator

	go/doc
		exports.go#L184: 		if t.Op == token.TILDE { // approximation element

	go/parser
		parser.go#L1111: 		t.Op = token.TILDE
		parser.go#L1736: 		return &ast.UnaryExpr{OpPos: pos, Op: op, X: p.checkExpr(x)}
		parser.go#L1782: 		return &ast.UnaryExpr{OpPos: arrow, Op: token.ARROW, X: p.checkExpr(x)}
		parser.go#L1910: 			y = []ast.Expr{&ast.UnaryExpr{OpPos: pos, Op: token.RANGE, X: p.parseRhs()}}
		parser.go#L2364: 				y := []ast.Expr{&ast.UnaryExpr{OpPos: pos, Op: token.RANGE, X: p.parseRhs()}}
		resolver.go#L432: 					Rhs:    []ast.Expr{&ast.UnaryExpr{Op: token.RANGE, X: n.X}},

	go/printer
		nodes.go#L668: 		switch e.Op.String() + r.Op.String() {
		nodes.go#L838: 			p.print(x.Op)
		nodes.go#L839: 			if x.Op == token.RANGE {

	go/types
		decl.go#L658: 		wrap = op.Op == token.TILDE
		expr.go#L127: 		if int(e.Op) < len(op2str1) {
		expr.go#L128: 			return op2str1[e.Op]
		expr.go#L162: 	switch e.Op {
		expr.go#L200: 	if !check.op(unaryOpPredicates, x, e.Op) {
		expr.go#L214: 		x.val = constant.UnaryOp(e.Op, x.val, prec)
		expr.go#L216: 		check.overflow(x, e.Op, x.Pos())
		expr.go#L1619: 		if e.Op == token.ARROW {
		exprstring.go#L115: 		buf.WriteString(x.Op.String())
		stmt.go#L779: 				if x, _ := unparen(rhs).(*ast.UnaryExpr); x != nil && x.Op == token.ARROW {
		union.go#L141: 	if op, _ := x.(*ast.UnaryExpr); op != nil && op.Op == token.TILDE {

	gotest.tools/v3/internal/assert
		assert.go#L144: 	if unaryExpr, ok := expr.(*ast.UnaryExpr); ok && unaryExpr.Op == token.NOT {