]> Cypherpunks repositories - gostls13.git/commit
cmd/compile/internal/syntax: don't assume (operator) ~ means operator ^
authorRobert Griesemer <gri@golang.org>
Thu, 15 Feb 2018 04:54:28 +0000 (20:54 -0800)
committerRobert Griesemer <gri@golang.org>
Thu, 15 Feb 2018 16:41:24 +0000 (16:41 +0000)
commit33eb0633e160460aaf0707b20b12f296159b77a6
tree1a58dd6f0fea09a15c1e7019170398f3744da79c
parente7cbbbe9bb878b6ca4ce04fde645df1c8f1845bd
cmd/compile/internal/syntax: don't assume (operator) ~ means operator ^

The scanner assumed that ~ really meant ^, which may be helpful when
coming from C. But ~ is not a valid Go token, and pretending that it
should be ^ can lead to confusing error messages. Better to be upfront
about it and complain about the invalid character in the first place.

This was code "inherited" from the original yacc parser which was
derived from a C compiler. It's 10 years later and we can probably
assume that people are less confused about C and Go.

Fixes #23587.

Change-Id: I8d8f9b55b0dff009b75c1530d729bf9092c5aea6
Reviewed-on: https://go-review.googlesource.com/94160
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/syntax/scanner.go
src/cmd/compile/internal/syntax/scanner_test.go
test/fixedbugs/issue23587.go [new file with mode: 0644]