evaluateStringOp calls a function with two strings.
(op string, left ssa.Value, right ssa.Value, source ssa.Source)
| 6 | |
| 7 | // evaluateStringOp calls a function with two strings. |
| 8 | func (f *Function) evaluateStringOp(op string, left ssa.Value, right ssa.Value, source ssa.Source) (ssa.Value, error) { |
| 9 | concat := f.Env.Function("strings", op) |
| 10 | f.Calls.Add(concat) |
| 11 | leftStruct := left.(*ssa.Struct) |
| 12 | rightStruct := right.(*ssa.Struct) |
| 13 | |
| 14 | fn := &ssa.Function{ |
| 15 | FunctionRef: concat, |
| 16 | Typ: concat.Type, |
| 17 | } |
| 18 | |
| 19 | args := []ssa.Value{ |
| 20 | leftStruct.Arguments[0], |
| 21 | leftStruct.Arguments[1], |
| 22 | rightStruct.Arguments[0], |
| 23 | rightStruct.Arguments[1], |
| 24 | } |
| 25 | |
| 26 | return f.call(fn, args, source), nil |
| 27 | } |
no test coverage detected