summaryrefslogtreecommitdiff
path: root/test/test0.go
blob: 95d225444fa1d8854e2b4fd128c291dfdccd8245 (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
// $G $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

const
  a_const = 0

const (
  pi = /* the usual */ 3.14159265358979323;
  e = 2.718281828;
  mask1 int = 1 << iota;
  mask2 = 1 << iota;
  mask3 = 1 << iota;
  mask4 = 1 << iota;
)

type (
  Empty interface {};
  Point struct {
    x, y int;
  };
  Point2 Point
)

func (p *Point) Initialize(x, y int) *Point {
  p.x, p.y = x, y;
  return p;
}

func (p *Point) Distance() int {
  return p.x * p.x + p.y * p.y;
}

var (
  x1 int;
  x2 int;
  u, v, w float
)

func foo() {}

func min(x, y int) int {
  if x < y { return x; }
  return y;
}

func swap(x, y int) (u, v int) {
  u = y;
  v = x;
  return;
}

func control_structs() {
  var p *Point = new(Point).Initialize(2, 3);
  i := p.Distance();
  var f float = 0.3;
  for {}
  for {};
  for j := 0; j < i; j++ {
    if i == 0 {
    } else i = 0;
    var x float;
  }
  foo:  // a label
  var j int;
  switch y := 0; true {
  case i < y:
    fallthrough;
  case i < j:
  case i == 0, i == 1, i == j:
    i++; i++;
    goto foo;
  default:
    i = -+-+i;
    break;
  }
}

func main() {
}