Skip to content

Commit b5fca94

Browse files
authored
Properly recognize just bytes as a reserved keyword (#685)
Fixes #663
1 parent b496d36 commit b5fca94

10 files changed

Lines changed: 160 additions & 144 deletions

File tree

.changeset/brave-poems-love.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@nomicfoundation/slang": patch
3+
---
4+
5+
`bytes` is now properly recognized as a reserved word

crates/solidity/inputs/language/definition/03-types/02-elementary-types/productions.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@
4444
scanner:
4545
sequence:
4646
- terminal: "bytes"
47-
- reference: "FixedBytesTypeSize"
47+
- optional:
48+
reference: "FixedBytesTypeSize"
4849
notFollowedBy:
4950
reference: "IdentifierPart"
5051

crates/solidity/inputs/language/src/definition.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ codegen_language_macros::compile!(Language(
503503
definitions = [KeywordDefinition(
504504
value = Sequence([
505505
Atom("bytes"),
506-
Choice([
506+
Optional(Choice([
507507
Atom("1"),
508508
Atom("2"),
509509
Atom("3"),
@@ -536,7 +536,7 @@ codegen_language_macros::compile!(Language(
536536
Atom("30"),
537537
Atom("31"),
538538
Atom("32")
539-
])
539+
]))
540540
])
541541
)]
542542
),
@@ -4372,7 +4372,7 @@ codegen_language_macros::compile!(Language(
43724372
reserved = Till("0.7.1"),
43734373
value = Sequence([
43744374
Atom("bytes"),
4375-
Choice([
4375+
Optional(Choice([
43764376
Atom("1"),
43774377
Atom("2"),
43784378
Atom("3"),
@@ -4405,7 +4405,7 @@ codegen_language_macros::compile!(Language(
44054405
Atom("30"),
44064406
Atom("31"),
44074407
Atom("32")
4408-
])
4408+
]))
44094409
])
44104410
)]
44114411
),

crates/solidity/outputs/cargo/crate/src/generated/language.rs

Lines changed: 72 additions & 66 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/solidity/outputs/cargo/tests/src/cst_output/generated/TypeName.rs

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/solidity/outputs/npm/crate/src/generated/language.rs

Lines changed: 72 additions & 66 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/solidity/outputs/spec/generated/ebnf/03-types/02-elementary-types/bytes-keyword/unversioned.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/solidity/testing/snapshots/cst_output/SourceUnit/using_directive/generated/0.8.13-success.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,7 @@ Tree:
104104
- Semicolon (Token): ";" # 772..773
105105
- StructMember (Rule): # 774..791 " bytes message;\n"
106106
- TypeName (Rule): # 774..781 " bytes"
107-
- IdentifierPath (Rule): # 774..781 " bytes"
108-
- Identifier (Token): "bytes" # 776..781
107+
- BytesKeyword (Token): "bytes" # 776..781
109108
- Identifier (Token): "message" # 782..789
110109
- Semicolon (Token): ";" # 789..790
111110
- CloseBrace (Token): "}" # 791..792

crates/solidity/testing/snapshots/cst_output/TypeName/bytes_no_size_as_identifier/generated/0.4.11-success.yml renamed to crates/solidity/testing/snapshots/cst_output/TypeName/bytes_no_size_reserved/generated/0.4.11-success.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@ Errors: []
77

88
Tree:
99
- TypeName (Rule): # 0..5 "bytes"
10-
- IdentifierPath (Rule): # 0..5 "bytes"
11-
- Identifier (Token): "bytes" # 0..5
10+
- BytesKeyword (Token): "bytes" # 0..5

crates/solidity/testing/snapshots/cst_output/TypeName/bytes_no_size_as_identifier/input.sol renamed to crates/solidity/testing/snapshots/cst_output/TypeName/bytes_no_size_reserved/input.sol

File renamed without changes.

0 commit comments

Comments
 (0)