forked from rosa/hakurei
@@ -6,6 +6,7 @@ import (
|
||||
"maps"
|
||||
"reflect"
|
||||
"slices"
|
||||
"strings"
|
||||
"unique"
|
||||
)
|
||||
|
||||
@@ -107,8 +108,8 @@ func (e TypeError) Error() string {
|
||||
}
|
||||
|
||||
func (e TypeError) Is(err error) bool {
|
||||
var v TypeError
|
||||
return errors.As(err, &v) &&
|
||||
v, ok := errors.AsType[TypeError](err)
|
||||
return ok &&
|
||||
e.Asserted == v.Asserted &&
|
||||
e.Concrete == v.Concrete
|
||||
}
|
||||
@@ -233,14 +234,14 @@ func evaluateAny(d PF, s []Frame, expr, rp any) bool {
|
||||
return evaluateAny(d, s, e[0], rp)
|
||||
}
|
||||
}
|
||||
var v string
|
||||
var v strings.Builder
|
||||
for i := range e {
|
||||
var _r string
|
||||
if evaluate(d, s, e[i], &_r) {
|
||||
v += _r
|
||||
v.WriteString(_r)
|
||||
}
|
||||
}
|
||||
store(rp, v)
|
||||
store(rp, v.String())
|
||||
return true
|
||||
|
||||
case Array:
|
||||
|
||||
@@ -214,7 +214,7 @@ func TestEvaluate(t *testing.T) {
|
||||
}
|
||||
|
||||
var errEquals bool
|
||||
if errors.As(err, new(TypeError)) {
|
||||
if _, ok := errors.AsType[TypeError](err); ok {
|
||||
errEquals = errors.Is(err, tc.err)
|
||||
} else {
|
||||
errEquals = reflect.DeepEqual(err, tc.err)
|
||||
|
||||
Reference in New Issue
Block a user