]> Cypherpunks repositories - gostls13.git/commitdiff
String method for token.Position. Extracted from gri's tree.
authorAustin Clements <aclements@csail.mit.edu>
Thu, 30 Jul 2009 23:58:19 +0000 (16:58 -0700)
committerAustin Clements <aclements@csail.mit.edu>
Thu, 30 Jul 2009 23:58:19 +0000 (16:58 -0700)
R=gri
APPROVED=gri
DELTA=33  (20 added, 6 deleted, 7 changed)
OCL=32544
CL=32546

src/pkg/Make.deps
src/pkg/go/scanner/errors.go
src/pkg/go/token/token.go

index 9508ad946b3ed4244db051cb332d2112d60ed12e..68c6c9f570428cf3bc7046cd9c5191b30152a70b 100644 (file)
@@ -24,7 +24,7 @@ go/doc.install: container/vector.install fmt.install go/ast.install go/token.ins
 go/parser.install: bytes.install container/vector.install fmt.install go/ast.install go/scanner.install go/token.install io.install os.install path.install strings.install
 go/printer.install: fmt.install go/ast.install go/token.install io.install os.install reflect.install strings.install
 go/scanner.install: bytes.install container/vector.install fmt.install go/token.install io.install os.install sort.install strconv.install unicode.install utf8.install
-go/token.install: strconv.install
+go/token.install: fmt.install strconv.install
 gob.install: bytes.install fmt.install io.install math.install os.install reflect.install strings.install sync.install unicode.install
 hash.install: io.install
 hash/adler32.install: hash.install os.install
@@ -42,7 +42,7 @@ path.install: strings.install
 rand.install:
 reflect.install: runtime.install strconv.install strings.install
 regexp.install: bytes.install container/vector.install io.install os.install runtime.install utf8.install
-rpc.install: bufio.install gob.install http.install io.install log.install net.install os.install reflect.install strconv.install strings.install sync.install unicode.install utf8.install
+rpc.install: bufio.install fmt.install gob.install http.install io.install log.install net.install os.install reflect.install sort.install strconv.install strings.install sync.install template.install unicode.install utf8.install
 runtime.install:
 sort.install:
 strconv.install: bytes.install math.install os.install utf8.install
index 54770f02010b25db2c5cf714543b3225f503d473..fde2112165d2515cd40cdc8cf4a9b641df26403c 100644 (file)
@@ -69,17 +69,12 @@ type Error struct {
 
 
 func (e *Error) String() string {
-       s := e.Pos.Filename;
-       if s != "" {
-               s += ":";
+       if e.Pos.Filename != "" || e.Pos.IsValid() {
+               // don't print "<unknown position>"
+               // TODO(gri) reconsider the semantics of Position.IsValid
+               return e.Pos.String() + ": " + e.Msg;
        }
-       if e.Pos.IsValid() {
-               s += fmt.Sprintf("%d:%d:", e.Pos.Line, e.Pos.Column);
-       }
-       if s != "" {
-               s += " ";
-       }
-       return s + e.Msg;
+       return e.Msg;
 }
 
 
index f165d1978ecf04c262bb9932f01b18e1f88f5a11..61a0c622c820a9b0785558582dbda511fc78225b 100644 (file)
@@ -8,7 +8,11 @@
 //
 package token
 
-import "strconv"
+import (
+       "fmt";
+       "strconv";
+)
+
 
 // Token is the set of lexical tokens of the Go programming language.
 type Token int
@@ -346,3 +350,18 @@ func (pos *Position) Pos() Position {
 func (pos *Position) IsValid() bool {
        return pos.Line > 0
 }
+
+
+func (pos *Position) String() string {
+       s := pos.Filename;
+       if pos.IsValid() {
+               if s != "" {
+                       s += ":";
+               }
+               s += fmt.Sprintf("%d:%d", pos.Line, pos.Column);
+       }
+       if s != "" {
+               return s;
+       }
+       return "<unknown position>";
+}