func (l langType) TypeAssert(register string, v ssa.Value, AssertedType types.Type, CommaOk bool, errorInfo string) string { if register == "" { return "" } if CommaOk { return register + `=Interface.assertOk(` + pogo.LogTypeUse(AssertedType) + `,` + l.IndirectValue(v, errorInfo) + ");" } return register + `=Interface.assert(` + pogo.LogTypeUse(AssertedType) + `,` + l.IndirectValue(v, errorInfo) + ");" }
func (l langType) MakeInterface(register string, regTyp types.Type, v interface{}, errorInfo string) string { ret := `new Interface(` + pogo.LogTypeUse(v.(ssa.Value).Type() /*NOT underlying()*/) + `,` + l.IndirectValue(v, errorInfo) + ")" if getHaxeClass(regTyp.String()) != "" { ret = "Force.toHaxeParam(" + ret + ")" // as interfaces are not native to haxe, so need to convert // TODO optimize when stable } return register + `=` + ret + ";" }
func (l langType) ChangeInterface(register string, regTyp types.Type, v interface{}, errorInfo string) string { return register + `=Interface.change(` + pogo.LogTypeUse(v.(ssa.Value).Type() /*NOT underlying()*/) + `,` + l.IndirectValue(v, errorInfo) + ");" }