This file is indexed.

/usr/share/go-1.8/test/fixedbugs/issue9370.go is in golang-1.8-src 1.8.3-2ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
// errorcheck

// Copyright 2014 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.

// Verify that concrete/interface comparisons are
// typechecked correctly by the compiler.

package main

type I interface {
	Method()
}

type C int

func (C) Method() {}

type G func()

func (G) Method() {}

var (
	e interface{}
	i I
	c C
	n int
	f func()
	g G
)

var (
	_ = e == c
	_ = e != c
	_ = e >= c // ERROR "invalid operation.*not defined"
	_ = c == e
	_ = c != e
	_ = c >= e // ERROR "invalid operation.*not defined"

	_ = i == c
	_ = i != c
	_ = i >= c // ERROR "invalid operation.*not defined"
	_ = c == i
	_ = c != i
	_ = c >= i // ERROR "invalid operation.*not defined"

	_ = e == n
	_ = e != n
	_ = e >= n // ERROR "invalid operation.*not defined"
	_ = n == e
	_ = n != e
	_ = n >= e // ERROR "invalid operation.*not defined"

	// i and n are not assignable to each other
	_ = i == n // ERROR "invalid operation.*mismatched types"
	_ = i != n // ERROR "invalid operation.*mismatched types"
	_ = i >= n // ERROR "invalid operation.*mismatched types"
	_ = n == i // ERROR "invalid operation.*mismatched types"
	_ = n != i // ERROR "invalid operation.*mismatched types"
	_ = n >= i // ERROR "invalid operation.*mismatched types"

	_ = e == 1
	_ = e != 1
	_ = e >= 1 // ERROR "invalid operation.*not defined"
	_ = 1 == e
	_ = 1 != e
	_ = 1 >= e // ERROR "invalid operation.*not defined"

	_ = i == 1 // ERROR "invalid operation.*mismatched types"
	_ = i != 1 // ERROR "invalid operation.*mismatched types"
	_ = i >= 1 // ERROR "invalid operation.*mismatched types"
	_ = 1 == i // ERROR "invalid operation.*mismatched types"
	_ = 1 != i // ERROR "invalid operation.*mismatched types"
	_ = 1 >= i // ERROR "invalid operation.*mismatched types"

	_ = e == f // ERROR "invalid operation.*not defined"
	_ = e != f // ERROR "invalid operation.*not defined"
	_ = e >= f // ERROR "invalid operation.*not defined"
	_ = f == e // ERROR "invalid operation.*not defined"
	_ = f != e // ERROR "invalid operation.*not defined"
	_ = f >= e // ERROR "invalid operation.*not defined"

	_ = i == f // ERROR "invalid operation.*mismatched types"
	_ = i != f // ERROR "invalid operation.*mismatched types"
	_ = i >= f // ERROR "invalid operation.*mismatched types"
	_ = f == i // ERROR "invalid operation.*mismatched types"
	_ = f != i // ERROR "invalid operation.*mismatched types"
	_ = f >= i // ERROR "invalid operation.*mismatched types"

	_ = e == g // ERROR "invalid operation.*not defined"
	_ = e != g // ERROR "invalid operation.*not defined"
	_ = e >= g // ERROR "invalid operation.*not defined"
	_ = g == e // ERROR "invalid operation.*not defined"
	_ = g != e // ERROR "invalid operation.*not defined"
	_ = g >= e // ERROR "invalid operation.*not defined"

	_ = i == g // ERROR "invalid operation.*not defined"
	_ = i != g // ERROR "invalid operation.*not defined"
	_ = i >= g // ERROR "invalid operation.*not defined"
	_ = g == i // ERROR "invalid operation.*not defined"
	_ = g != i // ERROR "invalid operation.*not defined"
	_ = g >= i // ERROR "invalid operation.*not defined"

	_ = _ == e // ERROR "cannot use _ as value"
	_ = _ == i // ERROR "cannot use _ as value"
	_ = _ == c // ERROR "cannot use _ as value"
	_ = _ == n // ERROR "cannot use _ as value"
	_ = _ == f // ERROR "cannot use _ as value"
	_ = _ == g // ERROR "cannot use _ as value"

	_ = e == _ // ERROR "cannot use _ as value"
	_ = i == _ // ERROR "cannot use _ as value"
	_ = c == _ // ERROR "cannot use _ as value"
	_ = n == _ // ERROR "cannot use _ as value"
	_ = f == _ // ERROR "cannot use _ as value"
	_ = g == _ // ERROR "cannot use _ as value"

	_ = _ == _ // ERROR "cannot use _ as value"

	_ = e ^ c // ERROR "invalid operation.*mismatched types"
	_ = c ^ e // ERROR "invalid operation.*mismatched types"
	_ = 1 ^ e // ERROR "invalid operation.*mismatched types"
	_ = e ^ 1 // ERROR "invalid operation.*mismatched types"
	_ = 1 ^ c
	_ = c ^ 1
)