type index …
func assert(p bool) { … }
type pkgWriter …
func newPkgWriter(m posMap, pkg *types2.Package, info *types2.Info, otherInfo map[*syntax.FuncLit]bool) *pkgWriter { … }
func (pw *pkgWriter) errorf(p poser, msg string, args ...interface{ … }
func (pw *pkgWriter) fatalf(p poser, msg string, args ...interface{ … }
func (pw *pkgWriter) unexpected(what string, p poser) { … }
func (pw *pkgWriter) typeAndValue(x syntax.Expr) syntax.TypeAndValue { … }
func (pw *pkgWriter) maybeTypeAndValue(x syntax.Expr) (syntax.TypeAndValue, bool) { … }
func (pw *pkgWriter) typeOf(expr syntax.Expr) types2.Type { … }
type writer …
type writerDict …
type itabInfo …
func (dict *writerDict) typeParamIndex(typ *types2.TypeParam) int { … }
type derivedInfo …
type typeInfo …
type objInfo …
type selectorInfo …
func (info objInfo) anyDerived() bool { … }
func (info objInfo) equals(other objInfo) bool { … }
type writerMethodExprInfo …
func (dict *writerDict) typeParamMethodExprIdx(typeParamIdx int, methodInfo selectorInfo) int { … }
func (dict *writerDict) subdictIdx(newInfo objInfo) int { … }
func (dict *writerDict) rtypeIdx(newInfo typeInfo) int { … }
func (dict *writerDict) itabIdx(typInfo, ifaceInfo typeInfo) int { … }
func (pw *pkgWriter) newWriter(k pkgbits.RelocKind, marker pkgbits.SyncMarker) *writer { … }
func (w *writer) pos(p poser) { … }
func (w *writer) posBase(b *syntax.PosBase) { … }
func (pw *pkgWriter) posBaseIdx(b *syntax.PosBase) index { … }
func (w *writer) pkg(pkg *types2.Package) { … }
func (w *writer) pkgRef(idx index) { … }
func (pw *pkgWriter) pkgIdx(pkg *types2.Package) index { … }
var anyTypeName …
var comparableTypeName …
var runeTypeName …
func (w *writer) typ(typ types2.Type) { … }
func (w *writer) typInfo(info typeInfo) { … }
func (pw *pkgWriter) typIdx(typ types2.Type, dict *writerDict) typeInfo { … }
func (w *writer) namedType(obj *types2.TypeName, targs *types2.TypeList) { … }
func (w *writer) structType(typ *types2.Struct) { … }
func (w *writer) unionType(typ *types2.Union) { … }
func (w *writer) interfaceType(typ *types2.Interface) { … }
func (w *writer) signature(sig *types2.Signature) { … }
func (w *writer) params(typ *types2.Tuple) { … }
func (w *writer) param(param *types2.Var) { … }
func (w *writer) obj(obj types2.Object, explicits *types2.TypeList) { … }
func (w *writer) objInfo(info objInfo) { … }
func (pw *pkgWriter) objInstIdx(obj types2.Object, explicits *types2.TypeList, dict *writerDict) objInfo { … }
func (pw *pkgWriter) objIdx(obj types2.Object) index { … }
func (w *writer) doObj(wext *writer, obj types2.Object) pkgbits.CodeObj { … }
func (w *writer) objDict(obj types2.Object, dict *writerDict) { … }
func (w *writer) typeParamNames(tparams *types2.TypeParamList) { … }
func (w *writer) method(wext *writer, meth *types2.Func) { … }
func (w *writer) qualifiedIdent(obj types2.Object) { … }
func (w *writer) localIdent(obj types2.Object) { … }
func (w *writer) selector(obj types2.Object) { … }
func (w *writer) selectorInfo(info selectorInfo) { … }
func (pw *pkgWriter) selectorIdx(obj types2.Object) selectorInfo { … }
func (w *writer) funcExt(obj *types2.Func) { … }
func (w *writer) typeExt(obj *types2.TypeName) { … }
func (w *writer) varExt(obj *types2.Var) { … }
func (w *writer) linkname(obj types2.Object) { … }
func (w *writer) pragmaFlag(p ir.PragmaFlag) { … }
func (pw *pkgWriter) bodyIdx(sig *types2.Signature, block *syntax.BlockStmt, dict *writerDict) (idx index, closureVars []posVar) { … }
func (w *writer) declareParams(sig *types2.Signature) { … }
func (w *writer) addLocal(obj *types2.Var) { … }
func (w *writer) useLocal(pos syntax.Pos, obj *types2.Var) { … }
func (w *writer) openScope(pos syntax.Pos) { … }
func (w *writer) closeScope(pos syntax.Pos) { … }
func (w *writer) closeAnotherScope() { … }
func (w *writer) stmt(stmt syntax.Stmt) { … }
func (w *writer) stmts(stmts []syntax.Stmt) { … }
func (w *writer) stmt1(stmt syntax.Stmt) { … }
func (w *writer) assignList(expr syntax.Expr) { … }
func (w *writer) assign(expr syntax.Expr) { … }
func (w *writer) declStmt(decl syntax.Decl) { … }
func (w *writer) assignStmt(pos poser, lhs0, rhs0 syntax.Expr) { … }
func (w *writer) blockStmt(stmt *syntax.BlockStmt) { … }
func (w *writer) forStmt(stmt *syntax.ForStmt) { … }
func (w *writer) distinctVars(stmt *syntax.ForStmt) bool { … }
func (w *writer) ifStmt(stmt *syntax.IfStmt) { … }
func (w *writer) selectStmt(stmt *syntax.SelectStmt) { … }
func (w *writer) switchStmt(stmt *syntax.SwitchStmt) { … }
func (w *writer) label(label *syntax.Name) { … }
func (w *writer) optLabel(label *syntax.Name) { … }
func (w *writer) expr(expr syntax.Expr) { … }
func sliceElem(typ types2.Type) types2.Type { … }
func (w *writer) optExpr(expr syntax.Expr) { … }
func (w *writer) recvExpr(expr *syntax.SelectorExpr, sel *types2.Selection) types2.Type { … }
func (w *writer) funcInst(obj *types2.Func, targs *types2.TypeList) { … }
func (w *writer) methodExpr(expr *syntax.SelectorExpr, recv types2.Type, sel *types2.Selection) { … }
func (w *writer) multiExpr(pos poser, dstType func(int) types2.Type, exprs []syntax.Expr) { … }
func (w *writer) implicitConvExpr(dst types2.Type, expr syntax.Expr) { … }
func (w *writer) convertExpr(dst types2.Type, expr syntax.Expr, implicit bool) { … }
func (w *writer) compLit(lit *syntax.CompositeLit) { … }
func (w *writer) funcLit(expr *syntax.FuncLit) { … }
type posVar …
func (p posVar) String() string { … }
func (w *writer) exprList(expr syntax.Expr) { … }
func (w *writer) exprs(exprs []syntax.Expr) { … }
func (w *writer) rtype(typ types2.Type) { … }
func (w *writer) rtypeInfo(info typeInfo) { … }
func (w *writer) varDictIndex(obj *types2.Var) { … }
func isUntyped(typ types2.Type) bool { … }
func isTuple(typ types2.Type) bool { … }
func (w *writer) itab(typ, iface types2.Type) { … }
func (w *writer) convRTTI(src, dst types2.Type) { … }
func (w *writer) exprType(iface types2.Type, typ syntax.Expr) { … }
func isInterface(typ types2.Type) bool { … }
func (w *writer) op(op ir.Op) { … }
type typeDeclGen …
type fileImports …
type declCollector …
func (c *declCollector) withTParams(obj types2.Object) *declCollector { … }
func (c *declCollector) Visit(n syntax.Node) syntax.Visitor { … }
func (pw *pkgWriter) collectDecls(noders []*noder) { … }
func (pw *pkgWriter) checkPragmas(p syntax.Pragma, allowed ir.PragmaFlag, embedOK bool) { … }
func (w *writer) pkgInit(noders []*noder) { … }
func (w *writer) pkgInitOrder() { … }
func (w *writer) pkgDecl(decl syntax.Decl) { … }
func (w *writer) pkgObjs(names ...*syntax.Name) { … }
func (pw *pkgWriter) staticBool(ep *syntax.Expr) int { … }
func (pw *pkgWriter) hasImplicitTypeParams(obj *types2.TypeName) bool { … }
func isDefinedType(obj types2.Object) bool { … }
func isGlobal(obj types2.Object) bool { … }
func lookupObj(p *pkgWriter, expr syntax.Expr) (obj types2.Object, inst types2.Instance) { … }
func isPkgQual(info *types2.Info, sel *syntax.SelectorExpr) bool { … }
func isNil(p *pkgWriter, expr syntax.Expr) bool { … }
func (pw *pkgWriter) isBuiltin(expr syntax.Expr, builtin string) bool { … }
func recvBase(recv *types2.Var) *types2.Named { … }
func namesAsExpr(names []*syntax.Name) syntax.Expr { … }
func fieldIndex(info *types2.Info, str *types2.Struct, key *syntax.Name) int { … }
func objTypeParams(obj types2.Object) *types2.TypeParamList { … }
func splitNamed(typ *types2.Named) (*types2.TypeName, *types2.TypeList) { … }
func splitAlias(typ *types2.Alias) (*types2.TypeName, *types2.TypeList) { … }
func asPragmaFlag(p syntax.Pragma) ir.PragmaFlag { … }
func asWasmImport(p syntax.Pragma) *WasmImport { … }
func asWasmExport(p syntax.Pragma) *WasmExport { … }
func isPtrTo(from, to types2.Type) bool { … }
func hasFallthrough(stmts []syntax.Stmt) bool { … }
func lastNonEmptyStmt(stmts []syntax.Stmt) syntax.Stmt { … }
func (pw *pkgWriter) terminates(stmt syntax.Stmt) bool { … }