var doc … var Analyzer … func run(pass *analysis.Pass) (interface{ … } // isSafeUintptr reports whether x - already known to be a uintptr - // is safe to convert to unsafe.Pointer. func isSafeUintptr(info *types.Info, x ast.Expr) bool { … } // isSafeArith reports whether x is a pointer arithmetic expression that is safe // to convert to unsafe.Pointer. func isSafeArith(info *types.Info, x ast.Expr) bool { … } // hasBasicType reports whether x's type is a types.Basic with the given kind. func hasBasicType(info *types.Info, x ast.Expr, kind types.BasicKind) bool { … } // isReflectHeader reports whether t is reflect.SliceHeader or reflect.StringHeader. func isReflectHeader(t types.Type) bool { … }