39 lines
No EOL
578 B
Go
39 lines
No EOL
578 B
Go
package ssa
|
|
|
|
import "fmt"
|
|
|
|
type Return struct {
|
|
Arguments
|
|
HasToken
|
|
}
|
|
|
|
func (a *Return) AddUse(user Value) { panic("return is not a value") }
|
|
func (a *Return) Alive() int { return 0 }
|
|
|
|
func (a *Return) Equals(v Value) bool {
|
|
b, sameType := v.(*Return)
|
|
|
|
if !sameType {
|
|
return false
|
|
}
|
|
|
|
if len(a.Args) != len(b.Args) {
|
|
return false
|
|
}
|
|
|
|
for i := range a.Args {
|
|
if !a.Args[i].Equals(b.Args[i]) {
|
|
return false
|
|
}
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func (v *Return) IsConst() bool {
|
|
return false
|
|
}
|
|
|
|
func (v *Return) String() string {
|
|
return fmt.Sprintf("return %v", v.Args)
|
|
} |