]> Cypherpunks repositories - gostls13.git/commitdiff
simple fix to not have 'exp/eval' panic in presence of slices like s[:2]
authorSebastien Binet <seb.binet@gmail.com>
Mon, 27 Dec 2010 18:05:32 +0000 (10:05 -0800)
committerRobert Griesemer <gri@golang.org>
Mon, 27 Dec 2010 18:05:32 +0000 (10:05 -0800)
R=golang-dev, gri
CC=binet, golang-dev
https://golang.org/cl/3782044

src/pkg/exp/eval/expr.go

index 66adeef9576769d3d472070a1ae9c5038bb819cc..f633aea3902c47feea87fc604882980eaa6685d6 100644 (file)
@@ -595,9 +595,15 @@ func (a *exprCompiler) compile(x ast.Expr, callCtx bool) *expr {
                return ei.compileIndexExpr(l, r)
 
        case *ast.SliceExpr:
-               var hi *expr
+               var lo, hi *expr
                arr := a.compile(x.X, false)
-               lo := a.compile(x.Index, false)
+               if x.Index == nil {
+                       // beginning was omitted, so we need to provide it
+                       ei := &exprInfo{a.compiler, x.Pos()}
+                       lo = ei.compileIntLit("0")
+               } else {
+                       lo = a.compile(x.Index, false)
+               }
                if x.End == nil {
                        // End was omitted, so we need to compute len(x.X)
                        ei := &exprInfo{a.compiler, x.Pos()}