type checker …
func Check(parsed *ast.AST, source common.Source, env *Env) (*ast.AST, *common.Errors) { … }
func (c *checker) check(e ast.Expr) { … }
func (c *checker) checkIdent(e ast.Expr) { … }
func (c *checker) checkSelect(e ast.Expr) { … }
func (c *checker) checkOptSelect(e ast.Expr) { … }
func (c *checker) checkSelectField(e, operand ast.Expr, field string, optional bool) *types.Type { … }
func (c *checker) checkCall(e ast.Expr) { … }
func (c *checker) resolveOverloadOrError(
e ast.Expr, fn *decls.FunctionDecl, target ast.Expr, args []ast.Expr) { … }
func (c *checker) resolveOverload(
call ast.Expr, fn *decls.FunctionDecl, target ast.Expr, args []ast.Expr) *overloadResolution { … }
func (c *checker) checkCreateList(e ast.Expr) { … }
func (c *checker) checkCreateMap(e ast.Expr) { … }
func (c *checker) checkCreateStruct(e ast.Expr) { … }
func (c *checker) checkComprehension(e ast.Expr) { … }
func (c *checker) joinTypes(e ast.Expr, previous, current *types.Type) *types.Type { … }
func (c *checker) dynAggregateLiteralElementTypesEnabled() bool { … }
func (c *checker) newTypeVar() *types.Type { … }
func (c *checker) isAssignable(t1, t2 *types.Type) bool { … }
func (c *checker) isAssignableList(l1, l2 []*types.Type) bool { … }
func maybeUnwrapString(e ast.Expr) (string, bool) { … }
func (c *checker) setType(e ast.Expr, t *types.Type) { … }
func (c *checker) getType(e ast.Expr) *types.Type { … }
func (c *checker) setReference(e ast.Expr, r *ast.ReferenceInfo) { … }
func (c *checker) assertType(e ast.Expr, t *types.Type) { … }
type overloadResolution …
func newResolution(r *ast.ReferenceInfo, t *types.Type) *overloadResolution { … }
func (c *checker) location(e ast.Expr) common.Location { … }
func (c *checker) locationByID(id int64) common.Location { … }
func (c *checker) lookupFieldType(exprID int64, structType, fieldName string) (*types.Type, bool) { … }
func isWellKnownType(t *types.Type) bool { … }
func getWellKnownTypeName(t *types.Type) string { … }
var wellKnownTypes …