diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/rpn/operations_stack.go | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/internal/rpn/operations_stack.go b/internal/rpn/operations_stack.go index c028ab7..99eaa8b 100644 --- a/internal/rpn/operations_stack.go +++ b/internal/rpn/operations_stack.go @@ -4,7 +4,6 @@ package rpn import ( - "fmt" "strings" ) @@ -26,20 +25,9 @@ func (o *Operations) Swap(stack *Stack) error { return err } - // Get the values without popping - vals := stack.Values() - top := vals[len(vals)-1] - second := vals[len(vals)-2] - - // Pop both values - if _, err := stack.Pop(); err != nil { - return buildError("swap", fmt.Errorf("failed to pop top value: %w", err)) - } - if _, err := stack.Pop(); err != nil { - return buildError("swap", fmt.Errorf("failed to pop second value: %w", err)) - } + top, _ := stack.Pop() + second, _ := stack.Pop() - // Push in swapped order stack.Push(top) stack.Push(second) |
