Documentation
¶
Index ¶
- Constants
- Variables
- func Check(fset *token.FileSet, pkg *ast.Package) (types map[ast.Expr]Type, err error)
- func FindGcExportData(r *bufio.Reader) (err error)
- func FindPkg(path, srcDir string) (filename, id string)
- func GcImport(imports map[string]*ast.Object, path string) (pkg *ast.Object, err error)
- func GcImportData(imports map[string]*ast.Object, filename, id string, data *bufio.Reader) (pkg *ast.Object, err error)
- func Identical(x, y Type) bool
- type Array
- type Bad
- type Basic
- type BasicTypeKind
- type Chan
- type Const
- type Func
- type ImplementsType
- type Interface
- type Map
- type Name
- type ObjList
- type Pointer
- type Slice
- type Struct
- type Type
Constants ¶
const ( BoolKind = BasicTypeKind(reflect.Bool) IntKind = BasicTypeKind(reflect.Int) Int8Kind = BasicTypeKind(reflect.Int8) Int16Kind = BasicTypeKind(reflect.Int16) Int32Kind = BasicTypeKind(reflect.Int32) Int64Kind = BasicTypeKind(reflect.Int64) UintKind = BasicTypeKind(reflect.Uint) Uint8Kind = BasicTypeKind(reflect.Uint8) Uint16Kind = BasicTypeKind(reflect.Uint16) Uint32Kind = BasicTypeKind(reflect.Uint32) Uint64Kind = BasicTypeKind(reflect.Uint64) UintptrKind = BasicTypeKind(reflect.Uintptr) Float32Kind = BasicTypeKind(reflect.Float32) Float64Kind = BasicTypeKind(reflect.Float64) Complex64Kind = BasicTypeKind(reflect.Complex64) Complex128Kind = BasicTypeKind(reflect.Complex128) StringKind = BasicTypeKind(reflect.String) UnsafePointerKind = BasicTypeKind(reflect.UnsafePointer) )
Constants for basic types.
Variables ¶
Functions ¶
func Check ¶
Check typechecks a package. It augments the AST by assigning types to all ast.Objects and returns a map of types for all expression nodes in statements, and a scanner.ErrorList if there are errors.
func FindGcExportData ¶
FindGcExportData positions the reader r at the beginning of the export data section of an underlying GC-created object/archive file by reading from it. The reader must be positioned at the start of the file before calling this function.
func FindPkg ¶
FindPkg returns the filename and unique package id for an import path based on package information provided by build.Import (using the build.Default build.Context). If no file was found, an empty filename is returned.
func GcImport ¶
GcImport imports a gc-generated package given its import path, adds the corresponding package object to the imports map, and returns the object. Local import paths are interpreted relative to the current working directory. The imports map must contains all packages already imported. GcImport satisfies the ast.Importer signature.
func GcImportData ¶
func GcImportData(imports map[string]*ast.Object, filename, id string, data *bufio.Reader) (pkg *ast.Object, err error)
GcImportData imports a package by reading the gc-generated export data, adds the corresponding package object to the imports map indexed by id, and returns the object.
The imports map must contains all packages already imported, and no map entry with id as the key must be present. The data reader position must be the beginning of the export data section. The filename is only used in error messages.
Types ¶
type Array ¶
type Array struct { ImplementsType Len uint64 Elt Type }
An Array represents an array type [Len]Elt.
type Bad ¶
type Bad struct { ImplementsType Msg string // for better error reporting/debugging }
A Bad type is a non-nil placeholder type when we don't know a type.
type Basic ¶
type Basic struct { ImplementsType Kind BasicTypeKind }
A Basic represents a (unnamed) basic type.
type BasicTypeKind ¶
func (BasicTypeKind) String ¶
func (k BasicTypeKind) String() string
type Chan ¶
type Chan struct { ImplementsType Dir ast.ChanDir Elt Type }
A Chan represents a channel type chan Elt, <-chan Elt, or chan<-Elt.
type Const ¶
type Const struct { // representation of constant values: // ideal bool -> bool // ideal int -> *big.Int // ideal float -> *big.Rat // ideal complex -> cmplx // ideal string -> string Val interface{} }
A Const implements an ideal constant Value. The zero value z for a Const is not a valid constant value.
func MakeConst ¶
MakeConst makes an ideal constant from a literal token and the corresponding literal string.
func (Const) Convert ¶
Convert attempts to convert the constant x to a given type. If the attempt is successful, the result is the new constant; otherwise the result is invalid.
type Func ¶
type Func struct { ImplementsType Recv *ast.Object // nil if not a method Params ObjList // (incoming) parameters from left to right; or nil Results ObjList // (outgoing) results from left to right; or nil IsVariadic bool // true if the last parameter's type is of the form ...T }
A Func represents a function type func(...) (...). Unnamed parameters are represented by objects with empty names.
type ImplementsType ¶
type ImplementsType struct{}
All concrete types embed ImplementsType which ensures that all types implement the Type interface.
type Interface ¶
type Interface struct { ImplementsType Methods ObjList // interface methods sorted by name; or nil }
An Interface represents an interface type interface{...}.
type Map ¶
type Map struct { ImplementsType Key, Elt Type }
A Map represents a map type map[Key]Elt.
type Name ¶
type Name struct { ImplementsType Underlying Type // nil if not fully declared Obj *ast.Object // corresponding declared object Methods ObjList }
A Name represents a named type as declared in a type declaration.
var ( Uint, Uint8, Uint16, Uint32, Uint64, Int, Int8, Int16, Int32, Int64, Float32, Float64, Complex64, Complex128, Byte, Bool, Uintptr, Rune, UnsafePointer, String *Name )
type Pointer ¶
type Pointer struct { ImplementsType Base Type }
A Pointer represents a pointer type *Base.
type Struct ¶
type Struct struct { ImplementsType Fields ObjList // struct fields; or nil Tags []string // corresponding tags; or nil FieldIndices map[string]uint64 // fast field lookup (name -> index) }
A Struct represents a struct type struct{...}. Anonymous fields are represented by objects with empty names.