Source file src/go/types/basic.go

     1  // Code generated by "go test -run=Generate -write=all"; DO NOT EDIT.
     2  // Source: ../../cmd/compile/internal/types2/basic.go
     3  
     4  // Copyright 2011 The Go Authors. All rights reserved.
     5  // Use of this source code is governed by a BSD-style
     6  // license that can be found in the LICENSE file.
     7  
     8  package types
     9  
    10  // BasicKind describes the kind of basic type.
    11  type BasicKind int
    12  
    13  const (
    14  	Invalid BasicKind = iota // type is invalid
    15  
    16  	// predeclared types
    17  	Bool
    18  	Int
    19  	Int8
    20  	Int16
    21  	Int32
    22  	Int64
    23  	Uint
    24  	Uint8
    25  	Uint16
    26  	Uint32
    27  	Uint64
    28  	Uintptr
    29  	Float32
    30  	Float64
    31  	Complex64
    32  	Complex128
    33  	String
    34  	UnsafePointer
    35  
    36  	// types for untyped values
    37  	UntypedBool
    38  	UntypedInt
    39  	UntypedRune
    40  	UntypedFloat
    41  	UntypedComplex
    42  	UntypedString
    43  	UntypedNil
    44  
    45  	// aliases
    46  	Byte = Uint8
    47  	Rune = Int32
    48  )
    49  
    50  // BasicInfo is a set of flags describing properties of a basic type.
    51  type BasicInfo int
    52  
    53  // Properties of basic types.
    54  const (
    55  	IsBoolean BasicInfo = 1 << iota
    56  	IsInteger
    57  	IsUnsigned
    58  	IsFloat
    59  	IsComplex
    60  	IsString
    61  	IsUntyped
    62  
    63  	IsOrdered   = IsInteger | IsFloat | IsString
    64  	IsNumeric   = IsInteger | IsFloat | IsComplex
    65  	IsConstType = IsBoolean | IsNumeric | IsString
    66  )
    67  
    68  // A Basic represents a basic type.
    69  type Basic struct {
    70  	kind BasicKind
    71  	info BasicInfo
    72  	name string
    73  }
    74  
    75  // Kind returns the kind of basic type b.
    76  func (b *Basic) Kind() BasicKind { return b.kind }
    77  
    78  // Info returns information about properties of basic type b.
    79  func (b *Basic) Info() BasicInfo { return b.info }
    80  
    81  // Name returns the name of basic type b.
    82  func (b *Basic) Name() string { return b.name }
    83  
    84  func (b *Basic) Underlying() Type { return b }
    85  func (b *Basic) String() string   { return TypeString(b, nil) }
    86  

View as plain text