| 12
 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
 
 | // errorcheck
// Copyright 2011 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 illegal conversions involving strings are detected.
// Does not compile.
package main
type Tbyte []byte
type Trune []rune
type Tint64 []int64
type Tstring string
func main() {
	s := "hello"
	sb := []byte("hello")
	sr := []rune("hello")
	si := []int64{'h', 'e', 'l', 'l', 'o'}
	ts := Tstring(s)
	tsb := Tbyte(sb)
	tsr := Trune(sr)
	tsi := Tint64(si)
	_ = string(s)
	_ = []byte(s)
	_ = []rune(s)
	_ = []int64(s) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
	_ = Tstring(s)
	_ = Tbyte(s)
	_ = Trune(s)
	_ = Tint64(s) // ERROR "cannot convert.*Tint64|invalid type conversion"
	_ = string(sb)
	_ = []byte(sb)
	_ = []rune(sb)  // ERROR "cannot convert.*\[\]rune|invalid type conversion"
	_ = []int64(sb) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
	_ = Tstring(sb)
	_ = Tbyte(sb)
	_ = Trune(sb)  // ERROR "cannot convert.*Trune|invalid type conversion"
	_ = Tint64(sb) // ERROR "cannot convert.*Tint64|invalid type conversion"
	_ = string(sr)
	_ = []byte(sr) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
	_ = []rune(sr)
	_ = []int64(sr) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
	_ = Tstring(sr)
	_ = Tbyte(sr) // ERROR "cannot convert.*Tbyte|invalid type conversion"
	_ = Trune(sr)
	_ = Tint64(sr) // ERROR "cannot convert.*Tint64|invalid type conversion"
	_ = string(si) // ERROR "cannot convert.* string|invalid type conversion"
	_ = []byte(si) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
	_ = []rune(si) // ERROR "cannot convert.*\[\]rune|invalid type conversion"
	_ = []int64(si)
	_ = Tstring(si) // ERROR "cannot convert.*Tstring|invalid type conversion"
	_ = Tbyte(si)   // ERROR "cannot convert.*Tbyte|invalid type conversion"
	_ = Trune(si)   // ERROR "cannot convert.*Trune|invalid type conversion"
	_ = Tint64(si)
	_ = string(ts)
	_ = []byte(ts)
	_ = []rune(ts)
	_ = []int64(ts) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
	_ = Tstring(ts)
	_ = Tbyte(ts)
	_ = Trune(ts)
	_ = Tint64(ts) // ERROR "cannot convert.*Tint64|invalid type conversion"
	_ = string(tsb)
	_ = []byte(tsb)
	_ = []rune(tsb)  // ERROR "cannot convert.*\[\]rune|invalid type conversion"
	_ = []int64(tsb) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
	_ = Tstring(tsb)
	_ = Tbyte(tsb)
	_ = Trune(tsb)  // ERROR "cannot convert.*Trune|invalid type conversion"
	_ = Tint64(tsb) // ERROR "cannot convert.*Tint64|invalid type conversion"
	_ = string(tsr)
	_ = []byte(tsr) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
	_ = []rune(tsr)
	_ = []int64(tsr) // ERROR "cannot convert.*\[\]int64|invalid type conversion"
	_ = Tstring(tsr)
	_ = Tbyte(tsr) // ERROR "cannot convert.*Tbyte|invalid type conversion"
	_ = Trune(tsr)
	_ = Tint64(tsr) // ERROR "cannot convert.*Tint64|invalid type conversion"
	_ = string(tsi) // ERROR "cannot convert.* string|invalid type conversion"
	_ = []byte(tsi) // ERROR "cannot convert.*\[\]byte|invalid type conversion"
	_ = []rune(tsi) // ERROR "cannot convert.*\[\]rune|invalid type conversion"
	_ = []int64(tsi)
	_ = Tstring(tsi) // ERROR "cannot convert.*Tstring|invalid type conversion"
	_ = Tbyte(tsi)   // ERROR "cannot convert.*Tbyte|invalid type conversion"
	_ = Trune(tsi)   // ERROR "cannot convert.*Trune|invalid type conversion"
	_ = Tint64(tsi)
}
 |