q/src/ssa/Return.go
Eduard Urbach ca9595d1fb
All checks were successful
/ test (push) Successful in 15s
Simplified ssa package
2025-07-03 22:54:30 +02:00

45 lines
No EOL
780 B
Go

package ssa
import (
"fmt"
"git.urbach.dev/cli/q/src/types"
)
type Return struct {
Arguments
Source
}
func (v *Return) AddUser(Value) { panic("return can not be used as a dependency") }
func (v *Return) IsConst() bool { return false }
func (v *Return) Type() types.Type { return types.Void }
func (v *Return) Users() []Value { return nil }
func (a *Return) Equals(v Value) bool {
b, sameType := v.(*Return)
if !sameType {
return false
}
if len(a.Arguments) != len(b.Arguments) {
return false
}
for i := range a.Arguments {
if !a.Arguments[i].Equals(b.Arguments[i]) {
return false
}
}
return true
}
func (v *Return) String() string {
if len(v.Arguments) == 0 {
return "return"
}
return fmt.Sprintf("return %s", v.Arguments.String())
}