···130130131131func (x *sliceExpr) rewrite(ctx *context, fn rewriteFunc) value {
132132 v := rewrite(ctx, x.x, fn)
133133- lo := rewrite(ctx, x.lo, fn)
134134- hi := rewrite(ctx, x.hi, fn)
133133+ var lo, hi value
134134+ if x.lo != nil {
135135+ lo = rewrite(ctx, x.lo, fn)
136136+ }
137137+ if x.hi != nil {
138138+ hi = rewrite(ctx, x.hi, fn)
139139+ }
135140 if v == x.x && lo == x.lo && hi == x.hi {
136141 return x
137142 }