diff options
Diffstat (limited to 'usr/austin/eval/expr.go')
-rw-r--r-- | usr/austin/eval/expr.go | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/usr/austin/eval/expr.go b/usr/austin/eval/expr.go index bc8fd57e3..7f959d93d 100644 --- a/usr/austin/eval/expr.go +++ b/usr/austin/eval/expr.go @@ -72,103 +72,6 @@ func (a *exprInfo) diagOpTypes(op token.Token, lt Type, rt Type) { } /* - * "As" functions. These retrieve evaluator functions from an - * expr, panicking if the requested evaluator has the wrong type. - */ -func (a *expr) asBool() (func(*Frame) bool) { - return a.eval.(func(*Frame)bool); -} - -func (a *expr) asUint() (func(f *Frame) uint64) { - return a.eval.(func(*Frame)uint64); -} - -func (a *expr) asInt() (func(f *Frame) int64) { - return a.eval.(func(*Frame)int64); -} - -func (a *expr) asIdealInt() (func() *bignum.Integer) { - return a.eval.(func()*bignum.Integer); -} - -func (a *expr) asFloat() (func(f *Frame) float64) { - return a.eval.(func(*Frame)float64) -} - -func (a *expr) asIdealFloat() (func() *bignum.Rational) { - return a.eval.(func()*bignum.Rational) -} - -func (a *expr) asString() (func(f *Frame) string) { - return a.eval.(func(*Frame)string) -} - -func (a *expr) asArray() (func(f *Frame) ArrayValue) { - return a.eval.(func(*Frame)ArrayValue) -} - -func (a *expr) asStruct() (func(f *Frame) StructValue) { - return a.eval.(func(*Frame)StructValue) -} - -func (a *expr) asPtr() (func(f *Frame) Value) { - return a.eval.(func(*Frame)Value) -} - -func (a *expr) asFunc() (func(f *Frame) Func) { - return a.eval.(func(*Frame)Func) -} - -func (a *expr) asSlice() (func(f *Frame) Slice) { - return a.eval.(func(*Frame)Slice) -} - -func (a *expr) asMap() (func(f *Frame) Map) { - return a.eval.(func(*Frame)Map) -} - -func (a *expr) asMulti() (func(f *Frame) []Value) { - return a.eval.(func(*Frame)[]Value) -} - -func (a *expr) asInterface() (func(f *Frame) interface {}) { - // TODO(austin) We need the argument names in this type switch - // to work around a 6g bug. - switch sf := a.eval.(type) { - case func(f *Frame)bool: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)uint64: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)int64: - return func(f *Frame) interface{} { return sf(f) }; - case func()*bignum.Integer: - return func(f *Frame) interface{} { return sf() }; - case func(f *Frame)float64: - return func(f *Frame) interface{} { return sf(f) }; - case func()*bignum.Rational: - return func(f *Frame) interface{} { return sf() }; - case func(f *Frame)string: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)ArrayValue: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)StructValue: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Value: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Func: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Slice: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)Map: - return func(f *Frame) interface{} { return sf(f) }; - case func(f *Frame)[]Value: - return func(f *Frame) interface{} { return sf(f) }; - } - log.Crashf("unexpected expression node type %T at %v", a.eval, a.pos); - panic(); -} - -/* * Common expression manipulations */ |