aboutsummaryrefslogtreecommitdiff
path: root/test/syntax
AgeCommit message (Collapse)Author
2022-09-01go/parser: adjustments to error messagesRobert Griesemer
- Use "expected X" rather then "expecting X". - Report a better error when a type argument list is expected. - Adjust various tests. For #54511. Change-Id: I0c5ca66ecbbdcae1a8f67377682aae6b0b6ab89a Reviewed-on: https://go-review.googlesource.com/c/go/+/425734 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com> Run-TryBot: Robert Griesemer <gri@google.com> Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com>
2022-03-31cmd/compile/internal/syntax: better errors for syntax errors in listsRobert Griesemer
For syntax errors in various (syntactic) lists, instead of reporting a set of "expected" tokens (which may be incomplete), provide context and mention "possibly missing" tokens. The result is a friendlier and more accurate error message. Fixes #49205. Change-Id: I38ae7bf62febfe790075e62deb33ec8c17d64476 Reviewed-on: https://go-review.googlesource.com/c/go/+/396914 Trust: Robert Griesemer <gri@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2021-04-06test/syntax: remove interface.goRobert Griesemer
The exact same test case covered by this file is also in fixedbugs/bug121.go. No need for duplication. Also, the actual syntax error tested (multiple method names with a single signature) is an unlikely syntax error, and only here for historical reasons (in the very beginning, this was actually possible to write). Now, virtually nobody is making this mistake. Change-Id: I9d68e0aee2a63025f44e6338647f8250ecc3077a Reviewed-on: https://go-review.googlesource.com/c/go/+/307789 Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2020-12-02test: match gofrontend error messagesIan Lance Taylor
The gofrontend code doesn't distinguish semicolon and newline, and it doesn't have special treatment for EOF. syntax/semi6.go:9:47: error: unexpected semicolon or newline in type declaration syntax/semi6.go:11:62: error: unexpected semicolon or newline in type declaration Change-Id: I9996b59a4fc78ad1935e779f354ddf75c0fb44e0 Reviewed-on: https://go-review.googlesource.com/c/go/+/274692 Trust: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org>
2020-11-30test: update gofrontend expected errorsIan Lance Taylor
This matches the error messages after CL 273890. syntax/semi4.go:11:9: error: unexpected semicolon or newline, expecting ‘{’ after for clause syntax/semi4.go:10:13: error: reference to undefined name ‘x’ syntax/semi4.go:12:17: error: reference to undefined name ‘z’ Change-Id: Ic88ff6e27d50bf70f5b2114383b84c42c0682f39 Reviewed-on: https://go-review.googlesource.com/c/go/+/273891 Trust: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
2020-11-28test: match gofrontend error messagesIan Lance Taylor
These changes match the following gofrontend error messages: blank1.go:16:1: error: may not define methods on non-local type chan/perm.go:28:9: error: expected channel chan/perm.go:29:11: error: left operand of ‘<-’ must be channel chan/perm.go:69:9: error: argument must be channel complit1.go:25:16: error: attempt to slice object that is not array, slice, or string complit1.go:26:16: error: attempt to slice object that is not array, slice, or string complit1.go:27:17: error: attempt to slice object that is not array, slice, or string complit1.go:49:41: error: may only omit types within composite literals of slice, array, or map type complit1.go:50:14: error: expected struct, slice, array, or map type for composite literal convlit.go:24:9: error: invalid type conversion (cannot use type unsafe.Pointer as type string) convlit.go:25:9: error: invalid type conversion (cannot use type unsafe.Pointer as type float64) convlit.go:26:9: error: invalid type conversion (cannot use type unsafe.Pointer as type int) ddd1.go:63:9: error: invalid use of ‘...’ calling non-variadic function fixedbugs/bug176.go:12:18: error: index expression is not integer constant fixedbugs/bug332.go:17:10: error: use of undefined type ‘T’ fixedbugs/issue4232.go:22:16: error: integer constant overflow fixedbugs/issue4232.go:33:16: error: integer constant overflow fixedbugs/issue4232.go:44:25: error: integer constant overflow fixedbugs/issue4232.go:55:16: error: integer constant overflow fixedbugs/issue4458.go:19:14: error: type has no method ‘foo’ fixedbugs/issue5172.go:24:14: error: too many expressions for struct init.go:17:9: error: reference to undefined name ‘runtime’ initializerr.go:26:29: error: duplicate value for index 1 interface/explicit.go:60:14: error: type assertion only valid for interface types label.go:64:9: error: reference to undefined label ‘go2’ label1.go:18:97: error: continue statement not within for label1.go:22:97: error: continue statement not within for label1.go:106:89: error: continue statement not within for label1.go:108:26: error: invalid continue label ‘on’ label1.go:111:118: error: break statement not within for or switch or select label1.go:113:23: error: invalid break label ‘dance’ map1.go:64:9: error: not enough arguments map1.go:65:9: error: not enough arguments map1.go:67:9: error: argument 1 must be a map method2.go:36:11: error: reference to undefined field or method ‘val’ method2.go:37:11: error: reference to undefined field or method ‘val’ method2.go:41:12: error: method requires pointer (use ‘(*T).g’) syntax/chan1.go:13:19: error: send statement used as value; use select for non-blocking send syntax/chan1.go:17:11: error: send statement used as value; use select for non-blocking send Change-Id: I98047b60a376e3d2788836300f7fcac3f2c285cb Reviewed-on: https://go-review.googlesource.com/c/go/+/273527 Trust: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
2020-02-21cmd/compile/internal/syntax: better error when an assignment is used in ↵Robert Griesemer
value context The error message is now positioned at the statement position (which is an identifing token, such as the '=' for assignments); and in case of assignments it emphasizes the assignment by putting the Lhs and Rhs in parentheses. Finally, the wording is changed from "use of * as value" to the stronger "cannot use * as value" (for which there is precedent elsewhere in the parser). Fixes #36858. Change-Id: Ic3f101bba50f58e3a1d9b29645066634631f2d61 Reviewed-on: https://go-review.googlesource.com/c/go/+/218337 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2018-04-03cmd/compile: better handling of incorrect type switchesRobert Griesemer
Don't report errors if we don't have a correct type switch guard; instead ignore it and leave it to the type-checker to report the error. This leads to better error messages concentrating on the type switch guard rather than errors around (confusing) syntactic details. Also clean up some code setting up AssertExpr (they never have a nil Type field) and remove some incorrect TODOs. Fixes #24470. Change-Id: I69512f36e0417e3b5ea9c8856768e04b19d654a8 Reviewed-on: https://go-review.googlesource.com/103615 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2017-02-24cmd/compile/internal/parser: improved a couple of error messagesRobert Griesemer
The new syntax tree introduced with 1.8 represents send statements (ch <- x) as statements; the old syntax tree represented them as expressions (and parsed them as such) but complained if they were used in expression context. As a consequence, some of the errors that in the past were of the form "ch <- x used as value" now look like "unexpected <- ..." because a "<-" is not valid according to Go syntax in those situations. Accept the new error message. Also: Fine-tune handling of misformed for loop headers. Also: Minor cleanups/better comments. Fixes #17590. Change-Id: Ia541dea1f2f015c1b21f5b3ae44aacdec60a8aba Reviewed-on: https://go-review.googlesource.com/37386 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2017-02-13cmd/compile/internal/syntax: generalize error about var decls in init clausesRobert Griesemer
Change-Id: I62f9748b97bec245338ebf9686fbf6ad6dc6a9c2 Reviewed-on: https://go-review.googlesource.com/36931 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2017-02-09cmd/compile/internal/parser: improved syntax error for incorrect ↵Robert Griesemer
if/for/switch header Starting the error message with "expecting" rather than "missing" causes the syntax error mechanism to add additional helpful info (it recognizes "expecting" but not "missing"). Fixes #17328. Change-Id: I8482ca5e5a6a6b22e0ed0d831b7328e264156334 Reviewed-on: https://go-review.googlesource.com/36637 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2017-02-09cmd/compile/internal/syntax: differentiate between ';' and '\n' in syntax errorsRobert Griesemer
Towards better syntax error messages: With this change, the parser knows whether a semicolon was an actual ';' in the source, or whether it was an automatically inserted semicolon as result of a '\n' or EOF. Using this information in error messages makes them more understandable. For #17328. Change-Id: I8cd9accee8681b62569d0ecef922d38682b401eb Reviewed-on: https://go-review.googlesource.com/36636 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-10-25cmd/compile/internal/gc: enable new parser by defaultMatthew Dempsky
Change-Id: I3c784986755cfbbe1b8eb8da4d64227bd109a3b0 Reviewed-on: https://go-review.googlesource.com/27203 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
2016-08-19cmd/compile/internal/syntax: match old parser errors and line numbersMatthew Dempsky
This makes a bunch of changes to package syntax to tweak line numbers for AST nodes. For example, short variable declaration statements are now associated with the location of the ":=" token, and function calls are associated with the location of the final ")" token. These help satisfy many unit tests that assume the old parser's behavior. Because many of these changes are questionable, they're guarded behind a new "gcCompat" const to make them easy to identify and revisit in the future. A handful of remaining tests are too difficult to make behave identically. These have been updated to execute with -newparser=0 and comments explaining why they need to be fixed. all.bash now passes with both the old and new parsers. Change-Id: Iab834b71ca8698d39269f261eb5c92a0d55a3bf4 Reviewed-on: https://go-review.googlesource.com/27199 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
2016-05-02all: make copyright headers consistent with one space after periodEmmanuel Odeke
Follows suit with https://go-review.googlesource.com/#/c/20111. Generated by running $ grep -R 'Go Authors. All' * | cut -d":" -f1 | while read F;do perl -pi -e 's/Go Authors. All/Go Authors. All/g' $F;done The code in cmd/internal/unvendor wasn't changed. Fixes #15213 Change-Id: I4f235cee0a62ec435f9e8540a1ec08ae03b1a75f Reviewed-on: https://go-review.googlesource.com/21819 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-03-11cmd/compile: use bufio.Reader directly in lexerDavid Crawshaw
Removes an intermediate layer of functions that was clogging up a corner of the compiler's profile graph. I can't measure a performance improvement running a large build like jujud, but the profile reports less total time spent in gc.(*lexer).getr. Change-Id: I3000585cfcb0f9729d3a3859e9023690a6528591 Reviewed-on: https://go-review.googlesource.com/20565 Reviewed-by: Robert Griesemer <gri@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2015-11-20cmd/compile: better syntax error recoveryRobert Griesemer
Use a combination of follow- and stop-token lists and nesting levels to better synchronize parser after a syntax error. Fixes #13319. Change-Id: I9592e0b5b3ba782fb9f9315fea16163328e204f7 Reviewed-on: https://go-review.googlesource.com/17080 Reviewed-by: Chris Manghane <cmang@golang.org>
2015-11-13cmd/compile/internal/gc: recursive-descent parserRobert Griesemer
This is a translation of the yacc-based parser with adjustements to make the grammar work for a recursive-descent parser followed by cleanups and simplifications. The yacc actions were mostly literally copied for correctness with better temporary names. A few of the syntax tests were adjusted for slightly different error messages (it is very difficult to match the yacc-based error messages in all cases, and sometimes the new parser could produce better errors). The new parser is enabled by default. To switch back to the yacc-based parser, set -oldparser. To hardwire the switch back, uncomment "oldparser = 1" in lex.go. - passes all.bash - ~18% reduced parse time per file on average for make.bash - ~3% reduced compile time for building cmd/compile Change-Id: Icb5651bb9d8b9f66261762d2c94a03793050d4ce Reviewed-on: https://go-review.googlesource.com/16665 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
2013-12-12test: match gccgo error messagesIan Lance Taylor
const1.go:33: error: integer constant overflow <similar errors omitted> const1.go:64: error: division by zero const1.go:67: error: floating point constant overflow const1.go:68: error: floating point constant overflow const1.go:69: error: floating point constant overflow const1.go:70: error: division by zero const1.go:71: error: expected integer type const1.go:77: error: argument 1 has incompatible type (cannot use type int8 as type int) const1.go:78: error: argument 1 has incompatible type (cannot use type int8 as type int) const1.go:79: error: argument 1 has incompatible type (cannot use type uint8 as type int) const1.go:81: error: argument 1 has incompatible type (cannot use type float32 as type int) const1.go:82: error: argument 1 has incompatible type (cannot use type float64 as type int) const1.go:83: error: floating point constant truncated to integer const1.go:85: error: argument 1 has incompatible type (cannot use type float64 as type int) const1.go:86: error: argument 1 has incompatible type (cannot use type string as type int) const1.go:87: error: argument 1 has incompatible type (cannot use type bool as type int) const1.go:90: error: const initializer cannot be nil const1.go:91: error: expression is not constant const1.go:92: error: expression is not constant const1.go:93: error: invalid constant type const1.go:94: error: invalid constant type fixedbugs/bug462.go:17: error: unknown field 'os.File' in 'T' fixedbugs/issue3705.go:9: error: cannot declare init - must be func fixedbugs/issue4251.go:12: error: inverted slice range fixedbugs/issue4251.go:16: error: inverted slice range fixedbugs/issue4251.go:20: error: inverted slice range fixedbugs/issue4405.go:11: error: invalid character 0x7 in identifier fixedbugs/issue4405.go:12: error: invalid character 0x8 in identifier fixedbugs/issue4405.go:13: error: invalid character 0xb in identifier fixedbugs/issue4405.go:14: error: invalid character 0xc in identifier fixedbugs/issue4429.go:15: error: expected pointer fixedbugs/issue4517d.go:9: error: cannot import package as init fixedbugs/issue4545.go:17: error: invalid context-determined non-integer type for left operand of shift fixedbugs/issue4545.go:16: error: incompatible types in binary expression fixedbugs/issue4610.go:15: error: expected ';' or '}' or newline fixedbugs/issue4610.go:16: error: expected declaration fixedbugs/issue4654.go:15: error: value computed is not used <similar errors omitted> fixedbugs/issue4776.go:9: error: program must start with package clause fixedbugs/issue4776.go:9: error: expected ';' or newline after package clause fixedbugs/issue4813.go:31: error: index must be integer <similar errors omitted> fixedbugs/issue4847.go:22: error: initialization expression for 'matchAny' depends upon itself fixedbugs/issue5089.go:13: error: redefinition of 'bufio.Buffered': receiver name changed fixedbugs/issue5089.go:11: note: previous definition of 'bufio.Buffered' was here fixedbugs/issue5172.go:17: error: reference to undefined field or method 'bar' fixedbugs/issue5172.go:18: error: reference to undefined field or method 'bar' fixedbugs/issue5172.go:12: error: use of undefined type 'bar' fixedbugs/issue5358.go:16: error: argument 2 has incompatible type fixedbugs/issue5581.go:29: error: use of undefined type 'Blah' funcdup.go:10: error: redefinition of 'i' funcdup.go:10: note: previous definition of 'i' was here <similar errors omitted> funcdup2.go:10: error: redefinition of 'i' funcdup2.go:10: note: previous definition of 'i' was here <similar errors omitted> slice3err.go:20: error: middle index required in 3-index slice <similar errors omitted> slice3err.go:20: error: final index required in 3-index slice <similar errors omitted> slice3err.go:21: error: final index required in 3-index slice slice3err.go:46: error: invalid 3-index slice of string <similar errors omitted> slice3err.go:57: error: inverted slice range <similar errors omitted> slice3err.go:62: error: invalid slice index: capacity less than length slice3err.go:64: error: invalid slice index: capacity less than start slice3err.go:65: error: invalid slice index: capacity less than start slice3err.go:66: error: invalid slice index: capacity less than start slice3err.go:68: error: invalid slice index: capacity less than length slice3err.go:70: error: invalid slice index: capacity less than start slice3err.go:80: error: invalid slice index: capacity less than length slice3err.go:82: error: invalid slice index: capacity less than start slice3err.go:83: error: invalid slice index: capacity less than start slice3err.go:84: error: invalid slice index: capacity less than start slice3err.go:86: error: invalid slice index: capacity less than length slice3err.go:88: error: invalid slice index: capacity less than start slice3err.go:99: error: array index out of bounds <similar errors omitted> slice3err.go:106: error: invalid slice index: capacity less than length slice3err.go:107: error: invalid slice index: capacity less than start slice3err.go:118: error: invalid slice index: capacity less than length slice3err.go:119: error: invalid slice index: capacity less than start syntax/semi1.go:10: error: missing '{' after if clause syntax/semi1.go:10: error: reference to undefined name 'x' syntax/semi1.go:10: error: reference to undefined name 'y' syntax/semi1.go:12: error: reference to undefined name 'z' syntax/semi2.go:10: error: missing '{' after switch clause syntax/semi2.go:10: error: reference to undefined name 'x' syntax/semi3.go:10: error: missing '{' after for clause syntax/semi3.go:10: error: reference to undefined name 'x' syntax/semi3.go:10: error: reference to undefined name 'y' syntax/semi3.go:10: error: reference to undefined name 'z' syntax/semi3.go:12: error: reference to undefined name 'z' syntax/semi4.go:11: error: missing '{' after for clause syntax/semi4.go:10: error: reference to undefined name 'x' syntax/semi4.go:12: error: reference to undefined name 'z' typecheck.go:12: error: reference to undefined name 'b' typecheck.go:17: error: reference to undefined name 'c' typecheck.go:11: error: use of undefined type 'b' typecheck.go:16: error: not enough arguments typecheck.go:17: error: not enough arguments R=golang-dev, rsc CC=golang-dev https://golang.org/cl/41520044
2013-09-06test: fix build (update for new error message)Russ Cox
R=golang-dev CC=golang-dev https://golang.org/cl/13521044
2013-08-19test: fix buildRob Pike
syntax/*: update messages sliceerr3.go: bizarre new error fixed by deleting a space. I could have sworn I ran all.bash before submitting the CL that triggered these. TBR=golang-dev@googlegroups.com R=golang-dev CC=golang-dev https://golang.org/cl/12812044
2012-04-02gc: improve error message for composite literals with unexpected newlinesRyan Hitchman
R=golang-dev, r, rsc CC=golang-dev https://golang.org/cl/5857045
2012-02-16test: use testlib (final 61)Russ Cox
X ,s;^// \$G (\$D/)?\$F\.go *$;// compile;g X ,s;^// \$G (\$D/)?\$F\.go && \$L \$F\.\$A *$;// build;g X ,s;^// \$G (\$D/)?\$F\.go && \$L \$F\.\$A && \./\$A\.out *$;// run;g X ,s;^// errchk \$G( -e)? (\$D/)?\$F\.go *$;// errorcheck;g R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5671080
2012-01-26test: match gccgo error messagesIan Lance Taylor
complit1.go:37:34: error: may only omit types within composite literals of slice, array, or map type complit1.go:38:19: error: may only omit types within composite literals of slice, array, or map type complit1.go:18:21: error: slice of unaddressable value complit1.go:19:10: error: slice of unaddressable value complit1.go:20:9: error: slice of unaddressable value convert1.go:28:13: error: invalid type conversion convert1.go:32:12: error: invalid type conversion (cannot use type string as type Tint64) convert1.go:36:12: error: invalid type conversion convert1.go:37:13: error: invalid type conversion convert1.go:40:11: error: invalid type conversion convert1.go:41:12: error: invalid type conversion convert1.go:44:12: error: invalid type conversion convert1.go:46:13: error: invalid type conversion convert1.go:48:11: error: invalid type conversion convert1.go:50:12: error: invalid type conversion convert1.go:52:6: error: invalid type conversion convert1.go:53:12: error: invalid type conversion convert1.go:54:12: error: invalid type conversion convert1.go:56:13: error: invalid type conversion convert1.go:57:11: error: invalid type conversion convert1.go:58:11: error: invalid type conversion convert1.go:64:13: error: invalid type conversion convert1.go:68:12: error: invalid type conversion (cannot use type Tstring as type Tint64) convert1.go:72:12: error: invalid type conversion convert1.go:73:13: error: invalid type conversion convert1.go:76:11: error: invalid type conversion (cannot use type Tbyte as type Trune) convert1.go:77:12: error: invalid type conversion (cannot use type Tbyte as type Tint64) convert1.go:80:12: error: invalid type conversion convert1.go:82:13: error: invalid type conversion convert1.go:84:11: error: invalid type conversion (cannot use type Trune as type Tbyte) convert1.go:86:12: error: invalid type conversion (cannot use type Trune as type Tint64) convert1.go:88:6: error: invalid type conversion (cannot use type Tint64 as type string) convert1.go:89:12: error: invalid type conversion convert1.go:90:12: error: invalid type conversion convert1.go:92:13: error: invalid type conversion (cannot use type Tint64 as type Tstring) convert1.go:93:11: error: invalid type conversion (cannot use type Tint64 as type Tbyte) convert1.go:94:11: error: invalid type conversion (cannot use type Tint64 as type Trune) fixedbugs/bug195.go:9:21: error: interface contains embedded non-interface fixedbugs/bug195.go:12:21: error: interface contains embedded non-interface fixedbugs/bug195.go:15:15: error: interface contains embedded non-interface fixedbugs/bug195.go:18:2: error: invalid recursive interface fixedbugs/bug195.go:26:2: error: invalid recursive interface fixedbugs/bug195.go:22:2: error: invalid recursive interface fixedbugs/bug251.go:15:2: error: invalid recursive interface fixedbugs/bug251.go:11:2: error: invalid recursive interface fixedbugs/bug374.go:18:34: error: use of undefined type ‘xxxx’ fixedbugs/bug374.go:16:5: error: incompatible type in initialization (incompatible type for method ‘m’ (different number of parameters)) fixedbugs/bug383.go:11:2: error: expected boolean expression fixedbugs/bug383.go:12:2: error: expected boolean expression fixedbugs/bug386.go:10:25: error: incompatible type for return value 1 (type has no methods) fixedbugs/bug386.go:12:25: error: incompatible type for return value 1 (type has no methods) fixedbugs/bug388.go:12:10: error: invalid named/anonymous mix fixedbugs/bug388.go:17:19: error: non-name on left side of ‘:=’ fixedbugs/bug388.go:22:9: error: non-name on left side of ‘:=’ fixedbugs/bug388.go:27:10: error: expected type fixedbugs/bug388.go:32:9: error: expected type fixedbugs/bug388.go:23:14: error: reference to field ‘i’ in object which has no fields or methods fixedbugs/bug388.go:18:18: error: invalid use of type fixedbugs/bug389.go:12:5: error: incompatible type in initialization (different parameter types) fixedbugs/bug390.go:15:24: error: expected integer, floating, or complex type fixedbugs/bug394.go:10:1: error: expected declaration fixedbugs/bug397.go:12:2: error: incompatible type for element 2 key in map construction switch3.go:18:2: error: incompatible types in binary expression switch3.go:22:2: error: incompatible types in binary expression switch3.go:28:2: error: map can only be compared to nil switch3.go:35:2: error: slice can only be compared to nil switch3.go:42:2: error: func can only be compared to nil syntax/else.go:11:9: error: expected ‘if’ or ‘{’ typeswitch2.go:15:2: error: duplicate type in switch typeswitch2.go:19:2: error: duplicate type in switch typeswitch2.go:26:2: error: duplicate type in switch typeswitch2.go:40:9: error: ‘t’ declared and not used R=golang-dev, r CC=golang-dev https://golang.org/cl/5573073
2011-09-12gc: clean up if grammarRuss Cox
Fixes #2248. R=ken2 CC=golang-dev https://golang.org/cl/4978064
2011-03-29test: avoid undefined error in syntax/if.go.Ian Lance Taylor
Without this the gccgo version of errchk reports an unmatched error. R=golang-dev, rsc1 CC=golang-dev https://golang.org/cl/4327041
2011-03-29test: match gccgo error messages for syntax/chan.go.Ian Lance Taylor
chan.go:11:1: error: unexpected ‘}’ in channel type chan.go:13:16: error: unexpected ‘)’ in channel type chan.go:16:16: error: unexpected comma in channel type R=golang-dev, rsc1 CC=golang-dev https://golang.org/cl/4313055
2011-02-22gc: require if conditionRuss Cox
R=ken2, r2 CC=golang-dev https://golang.org/cl/4195045
2011-02-01gc: handle invalid name in type switchRuss Cox
Fixes #1453. R=ken2 CC=golang-dev https://golang.org/cl/4125043
2011-01-31gc: remove non-blocking send, receive syntaxRuss Cox
R=ken2 CC=golang-dev https://golang.org/cl/4126043
2010-12-09gc: syntax error for incomplete chan typeRyan Hitchman
Fixes #932. R=rsc CC=golang-dev https://golang.org/cl/3515041
2010-09-10test: Match gccgo error messages.Ian Lance Taylor
vareq.go:10:25: error: expected ';' or '}' or newline vareq1.go:9:24: error: expected ';' or newline after top level declaration R=rsc CC=golang-dev https://golang.org/cl/2132045
2010-09-09test: Match gccgo error messages.Ian Lance Taylor
With the recursive descent parser that gccgo uses, I think that it doesn't make sense to try to match a statement where a statement is not expected. If the construct is not a statement, you will just get bizarre error messages. topexpr.go:9:1: error: expected declaration topexpr.go:14:1: error: expected declaration topexpr.go:19:1: error: expected declaration R=rsc, r2 CC=golang-dev https://golang.org/cl/2175041
2010-09-09test: remove slice syntax testScott Lawrence
R=rsc CC=golang-dev https://golang.org/cl/2145043
2010-05-24gc: more accurate error descriptionRuss Cox
R=ken2 CC=golang-dev https://golang.org/cl/1284041
2010-04-26gc: more specific error for statements at top levelRuss Cox
R=ken2, r, ken3 CC=golang-dev https://golang.org/cl/1006041
2010-03-25gc: more syntax errorsRuss Cox
R=r CC=golang-dev https://golang.org/cl/731041
2010-02-04Match gccgo error messages.Ian Lance Taylor
bug121.go:12:3: error: name list not allowed in interface type bug121.go:16:2: error: expected signature or type name semi1.go:10:76: error: unexpected semicolon or newline before ‘{’ semi1.go:10:5: error: reference to undefined name ‘x’ semi1.go:10:8: error: reference to undefined name ‘y’ semi1.go:12:3: error: reference to undefined name ‘z’ semi2.go:10:79: error: unexpected semicolon or newline before ‘{’ semi2.go:10:9: error: reference to undefined name ‘x’ semi3.go:10:79: error: unexpected semicolon or newline before ‘{’ semi3.go:10:6: error: reference to undefined name ‘x’ semi3.go:10:9: error: reference to undefined name ‘y’ semi3.go:10:12: error: reference to undefined name ‘z’ semi3.go:12:3: error: reference to undefined name ‘z’ semi4.go:11:2: error: unexpected semicolon or newline before ‘{’ semi4.go:10:6: error: reference to undefined name ‘x’ semi4.go:12:3: error: reference to undefined name ‘z’ semi5.go:10:1: error: unexpected semicolon or newline before ‘{’ semi7.go:11:2: error: unexpected semicolon or newline before ‘else’ semi7.go:10:5: error: reference to undefined name ‘x’ slice.go:9:11: error: missing lower bound in slice expression slice.go:9:9: error: reference to undefined name ‘y’ slice.go:9:12: error: reference to undefined name ‘z’ R=rsc CC=golang-dev https://golang.org/cl/201061
2010-01-28gc: tweak error messages, avoid internalization settings in bisonRuss Cox
R=r CC=golang-dev https://golang.org/cl/194129
2010-01-26gc: improved syntax errorsRuss Cox
* example-based syntax errors (go.errors) * enable bison's more specific errors and translate grammar token names into tokens like ++ * test cases R=ken2, r, ken3 CC=golang-dev https://golang.org/cl/194085