aboutsummaryrefslogtreecommitdiff
path: root/src/go/types/array.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/go/types/array.go')
-rw-r--r--src/go/types/array.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/go/types/array.go b/src/go/types/array.go
new file mode 100644
index 0000000000..5b28474bb3
--- /dev/null
+++ b/src/go/types/array.go
@@ -0,0 +1,25 @@
+// 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.
+
+package types
+
+// An Array represents an array type.
+type Array struct {
+ len int64
+ elem Type
+}
+
+// NewArray returns a new array type for the given element type and length.
+// A negative length indicates an unknown length.
+func NewArray(elem Type, len int64) *Array { return &Array{len: len, elem: elem} }
+
+// Len returns the length of array a.
+// A negative result indicates an unknown length.
+func (a *Array) Len() int64 { return a.len }
+
+// Elem returns element type of array a.
+func (a *Array) Elem() Type { return a.elem }
+
+func (t *Array) Underlying() Type { return t }
+func (t *Array) String() string { return TypeString(t, nil) }