type Error … // Error returns an error string formatted as follows: // filename:line:column: message func (err Error) Error() string { … } // FullError returns an error string like Error, buy it may contain // type-checker internal details such as subscript indices for type // parameters and more. Useful for debugging. func (err Error) FullError() string { … } type ArgumentError … func (e *ArgumentError) Error() string { … } func (e *ArgumentError) Unwrap() error { … } type Importer … type ImportMode … type ImporterFrom … type Config … func srcimporter_setUsesCgo(conf *Config) { … } type Info … func (info *Info) recordTypes() bool { … } // TypeOf returns the type of expression e, or nil if not found. // Precondition 1: the Types map is populated or StoreTypesInSyntax is set. // Precondition 2: Uses and Defs maps are populated. func (info *Info) TypeOf(e syntax.Expr) Type { … } // ObjectOf returns the object denoted by the specified id, // or nil if not found. // // If id is an embedded struct field, ObjectOf returns the field (*Var) // it defines, not the type (*TypeName) it uses. // // Precondition: the Uses and Defs maps are populated. func (info *Info) ObjectOf(id *syntax.Name) Object { … } // PkgNameOf returns the local package name defined by the import, // or nil if not found. // // For dot-imports, the package name is ".". // // Precondition: the Defs and Implicts maps are populated. func (info *Info) PkgNameOf(imp *syntax.ImportDecl) *PkgName { … } type TypeAndValue … // IsVoid reports whether the corresponding expression // is a function call without results. func (tv TypeAndValue) IsVoid() bool { … } // IsType reports whether the corresponding expression specifies a type. func (tv TypeAndValue) IsType() bool { … } // IsBuiltin reports whether the corresponding expression denotes // a (possibly parenthesized) built-in function. func (tv TypeAndValue) IsBuiltin() bool { … } // IsValue reports whether the corresponding expression is a value. // Builtins are not considered values. Constant values have a non- // nil Value. func (tv TypeAndValue) IsValue() bool { … } // IsNil reports whether the corresponding expression denotes the // predeclared value nil. Depending on context, it may have been // given a type different from UntypedNil. func (tv TypeAndValue) IsNil() bool { … } // Addressable reports whether the corresponding expression // is addressable (https://golang.org/ref/spec#Address_operators). func (tv TypeAndValue) Addressable() bool { … } // Assignable reports whether the corresponding expression // is assignable to (provided a value of the right type). func (tv TypeAndValue) Assignable() bool { … } // HasOk reports whether the corresponding expression may be // used on the rhs of a comma-ok assignment. func (tv TypeAndValue) HasOk() bool { … } type Instance … type Initializer … func (init *Initializer) String() string { … } // Check type-checks a package and returns the resulting package object and // the first error if any. Additionally, if info != nil, Check populates each // of the non-nil maps in the Info struct. // // The package is marked as complete if no errors occurred, otherwise it is // incomplete. See Config.Error for controlling behavior in the presence of // errors. // // The package is specified by a list of *syntax.Files and corresponding // file set, and the package path the package is identified with. // The clean path must not be empty or dot ("."). func (conf *Config) Check(path string, files []*syntax.File, info *Info) (*Package, error) { … }