MakeInterface constructs an instance of an interface type from a value of a concrete type.

Use Program.MethodSets.MethodSet(X.Type()) to find the method-set of X, and Program.Method(m) to find the implementation of a method.

To construct the zero value of an interface type T, use:

NewConst(exact.MakeNil(), T, pos)

Pos() returns the ast.CallExpr.Lparen, if the instruction arose from an explicit conversion in the source.

Example printed form:

t1 = make interface{} <- int (42:int)
t2 = make Stringer <- t0