summaryrefslogtreecommitdiff
path: root/test/blank.go
blob: 7175964f7e5c459b55951c09e457e18a68af7bc2 (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
98
99
100
101
// $G $D/$F.go && $L $F.$A && ./$A.out

// Copyright 2009 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 main

import _ "fmt"

var call string

type T struct {
	_, _, _ int;
}

func (T) _() {
}

func (T) _() {
}

const (
	c0 = iota;
	_;
	_;
	_;
	c4;
)

var ints = []string {
	"1",
	"2",
	"3",
}

func f() (int, int) {
	call += "f";
	return 1,2
}

func g() (float, float) {
	call += "g";
	return 3,4
}

func h(_ int, _ float) {
}

func i() int {
	call += "i";
	return 23;
}

var _ = i();

func main() {
	if call != "i" {panic("init did not run")}
	call = "";
	_, _ = f();
	a, _ := f();
	if a != 1 {panic(a)}
	b, _ := g();
	if b != 3 {panic(b)}
	_, a = f();
	if a != 2 {panic(a)}
	_, b = g();
	if b != 4 {panic(b)}
	_ = i();
	if call != "ffgfgi" {panic(call)}
	if c4 != 4 {panic(c4)}

	out := "";
	for _, s := range ints {
		out += s;
	}
	if out != "123" {panic(out)}

	sum := 0;
	for s, _ := range ints {
		sum += s;
	}
	if sum != 3 {panic(sum)}

	h(a,b);
}

// useless but legal
var _ int = 1;
var _ = 2;
var _, _ = 3, 4;
const _ = 3;
const _, _ = 4, 5;
type _ int;
func _() {
	panic("oops")
}

func ff() {
	var _ int = 1;
}