]> Cypherpunks repositories - gostls13.git/commitdiff
bug163 bug164 bug166
authorRuss Cox <rsc@golang.org>
Tue, 30 Jun 2009 00:46:22 +0000 (17:46 -0700)
committerRuss Cox <rsc@golang.org>
Tue, 30 Jun 2009 00:46:22 +0000 (17:46 -0700)
R=ken
OCL=30889
CL=30889

src/cmd/gc/go.y
src/cmd/gc/lex.c
src/pkg/http/request.go
test/fixedbugs/bug163.go [moved from test/bugs/bug163.go with 80% similarity]
test/fixedbugs/bug164.go [moved from test/bugs/bug164.go with 62% similarity]
test/fixedbugs/bug166.go [moved from test/bugs/bug166.go with 100% similarity]
test/golden.out

index 8e844e342d2613b2e30dc478ee8d2f781030a911..fa6e1c752f7666451b49c5aef05841a57d733930 100644 (file)
@@ -344,7 +344,8 @@ common_dcl:
 
 varoptsemi:
        {
-               yyoptsemi('=');
+               if(yylast == LSEMIBRACE)
+                       yyoptsemi('=');
        }
 
 vardcl:
index 05671cc386163eb7195e5105d0b66a2566684ce9..586dc47d5624618d1795dad0fa245c11d4872189 100644 (file)
@@ -811,10 +811,13 @@ talph:
                                cp[c1++] = c;
                                if(fullrune(cp, c1)) {
                                        chartorune(&rune, cp);
-                                        if(isfrog(rune)) {
-                                               yyerror("illegal character 0x%ux", rune);
-                                               goto l0;
-                                        }
+                                       if(isfrog(rune)) {
+                                               yyerror("illegal character 0x%ux", rune);
+                                               goto l0;
+                                       }
+                                       // 0xb7 · is used for internal names
+                                       if(!isalpharune(c) && !isdigitrune(c) && c != 0xb7)
+                                               yyerror("invalid identifier character 0x%ux", rune);
                                        break;
                                }
                                c = getc();
index 59801e1eb3d3672a78f3e124175928c06797de0b..0cc83a8b893f317fa895ff10a4fae89452831f9b 100644 (file)
@@ -173,7 +173,7 @@ func (req *Request) write(w io.Writer) os.Error {
        Loop:
                for {
                        var nr, nw int;
-                       var er, ew os.Error
+                       var er, ew os.Error;
                        if nr, er = req.Body.Read(buf); nr > 0 {
                                if er == nil || er == os.EOF {
                                        fmt.Fprintf(w, "%x\r\n", nr);
similarity index 80%
rename from test/bugs/bug163.go
rename to test/fixedbugs/bug163.go
index 30d2cab5d4477aa696d5bf50d8520fcc5569ffb6..c1eec4cdbd013bcd84530586a79160abbcbe52c1 100644 (file)
@@ -9,5 +9,5 @@ package main
 import "fmt"
 
 func main() {
-       日本語 := 1; // Japanese ideographs are not letters
+       日本語 := 1; // ERROR "identifier"
 }
similarity index 62%
rename from test/bugs/bug164.go
rename to test/fixedbugs/bug164.go
index 7a78c86f2bacce6f41bf292fc3065bb39cf1859b..746f631aebe250be650c3efb3dd54c30fd20e636 100644 (file)
@@ -6,8 +6,7 @@
 
 package main
 
-// Multi-line string literal do not allow newline chars according to spec
-// but 6g accepts this code with the newlines interpreted as newlines.
+// Multi-line string literal now allowed.
 
 const s = `
 Hello, World!
similarity index 100%
rename from test/bugs/bug166.go
rename to test/fixedbugs/bug166.go
index d83fd0cf88911525c99d97927da863b3b1e52101..3f15f483953877901b6a3b8bed40ed91e188cf2f 100644 (file)
@@ -105,15 +105,6 @@ BUG: bug159
 123
 BUG: should fail
 
-=========== bugs/bug163.go
-BUG: should not compile
-
-=========== bugs/bug164.go
-BUG: should not compile
-
-=========== bugs/bug166.go
-BUG: errchk: command succeeded unexpectedly:  6g bugs/bug166.go
-
 =========== fixedbugs/bug016.go
 fixedbugs/bug016.go:7: constant -3 overflows uint