Comments (7)
Do you know if single-quoted reserved field names are valid syntax?
It is a bug to fill proto.lock
with empty reserved names, and I have a fix to PR upstream to the proto parser lib that protolock depends on. However, that parser doesn't handle or recognize these single-quoted reserved names at all.
Can you verify that those files successfully compile?
from protolock.
It appears that it is valid:
String literals
strLit = ( "'" { charValue } "'" ) | ( '"' { charValue } '"' )
charValue = hexEscape | octEscape | charEscape | /[^\0\n\\]/
hexEscape = '' ( "x" | "X" ) hexDigit hexDigit
octEscape = '' octalDigit octalDigit octalDigit
charEscape = '' ( "a" | "b" | "f" | "n" | "r" | "t" | "v" | '' | "'" | '"' )
quote = "'" | '"'
from: https://developers.google.com/protocol-buffers/docs/reference/proto3-spec
I did not read far enough. It seems that single-quoted reserved names are not valid syntax:
Reserved
Reserved statements declare a range of field numbers or field names that cannot be used in this message.
reserved = "reserved" ( ranges | fieldNames ) ";"
ranges = range { "," range }
range = intLit [ "to" ( intLit | "max" ) ]
~~fieldNames = fieldName { "," fieldName }~
from: https://developers.google.com/protocol-buffers/docs/reference/proto3-spec
I ran some tests on protos using this single-quote syntax, and protoc
had no issues with it.. the docs are a bit hard to interpret :)
So, it does appear valid, and since protoc
has no issues, this does appear to be a bug. I will look into the proto parser code to see if I can see where this originates.
Thanks for reporting!
from protolock.
Hmm, according to that grammar, there shouldn't be any quotes unless I'm missing something.
from protolock.
@november-yankee - sorry, you beat me to the punch while updating..
I ran some tests on protos using this single-quote syntax, and protoc had no issues with it.. the docs are a bit hard to interpret :)
So, it does appear valid, and since protoc has no issues, this does appear to be a bug. I will look into the proto parser code to see if I can see where this originates.
Thanks for reporting!
from protolock.
@november-yankee I have opened up an issue with the parser lib and will keep you updated. Feel free to follow along here: emicklei/proto#94
from protolock.
Updates have moved to this PR, emicklei/proto#96.
from protolock.
Fixed in #66. Thanks for reporting, @november-yankee!
from protolock.
Related Issues (20)
- Error building protolock on ppc64le HOT 2
- Processing a single file HOT 3
- Enum aliases not supported HOT 3
- Does protolock support proto2 ? HOT 1
- Propose to publish ARM64 binary in releases HOT 6
- Convert circleci jobs to GitHub Actions
- oneof structure is not persisted in protolock HOT 4
- Options not parsed at the Enum level HOT 2
- found "stream" but expected [rpc method] for a valid proto HOT 3
- Add artefacts to Maven repository HOT 7
- Update docker hub image HOT 3
- Allow ability to include proto files that are not in the root tree
- TestOrder consistently fails
- Nit: typo in info string for protolock cmd HOT 1
- [.gitignore] Remove "protolock" line or edit file to not filter out "cmd/protolock" HOT 1
- False positive in camelCase naming violation for EnumValueOptions builtin HOT 1
- Embedded comments confuse the parser HOT 7
- Deeply nested messages may conflict HOT 2
- Duplicate message names with different fields are considered valid HOT 3
- protolock status shows a lot of warnings
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from protolock.