summaryrefslogtreecommitdiff
path: root/libgo/go/go/types/testdata/constdecl.src
blob: 6de9b13d6ef3209d0f7ab71d5e6ee2328cec029b (plain)
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
// Copyright 2013 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.

package constdecl

import "math"

var v int

// Const decls must be initialized by constants.
const _ = v /* ERROR "not constant" */
const _ = math /* ERROR "not constant" */ .Sin(0)
const _ = int /* ERROR "not an expression" */

func _() {
	const _ = v /* ERROR "not constant" */
	const _ = math /* ERROR "not constant" */ .Sin(0)
	const _ = int /* ERROR "not an expression" */
}

// Identifier and expression arity must match.
// The first error message is produced by the parser.
// In a real-world scenario, the type-checker would not be run
// in this case and the 2nd error message would not appear.
const _ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */
const _ = 1, 2 /* ERROR "extra init expr 2" */

const _ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */ int
const _ int = 1, 2 /* ERROR "extra init expr 2" */

const (
	_ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */
	_ = 1, 2 /* ERROR "extra init expr 2" */

	_ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */ int
	_ int = 1, 2 /* ERROR "extra init expr 2" */
)

const (
	_ = 1
	_
	_, _ /* ERROR "missing init expr for _" */
	_
)

const (
	_, _ = 1, 2
	_, _
	_ /* ERROR "extra init expr at" */
	_, _
	_, _, _ /* ERROR "missing init expr for _" */
	_, _
)

func _() {
	const _ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */
	const _ = 1, 2 /* ERROR "extra init expr 2" */

	const _ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */ int
	const _ int = 1, 2 /* ERROR "extra init expr 2" */

	const (
		_ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */
		_ = 1, 2 /* ERROR "extra init expr 2" */

		_ /* ERROR "missing constant value" */ /* ERROR "missing init expr for _" */ int
		_ int = 1, 2 /* ERROR "extra init expr 2" */
	)

	const (
		_ = 1
		_
		_, _ /* ERROR "missing init expr for _" */
		_
	)

	const (
		_, _ = 1, 2
		_, _
		_ /* ERROR "extra init expr at" */
		_, _
		_, _, _ /* ERROR "missing init expr for _" */
		_, _
	)
}

// Test case for constant with invalid initialization.
// Caused panic because the constant value was not set up (gri - 7/8/2014).
func _() {
	const (
	    x string = missing /* ERROR "undeclared name" */
	    y = x + ""
	)
}

// TODO(gri) move extra tests from testdata/const0.src into here