You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a null-byte character (\u0000) is defined as a literal type, a parse error occurs.
# cat my_module.rb
class MyModule
def self.string
"\u0000"
end
end
# rbs prototype rb my_module.rb -o sig --force
Processing `my_module.rb`...
Generating RBS for `my_module.rb`...
- Writing RBS to existing file `sig/my_module.rbs`...
# cat sig/my_module.rbs
class MyModule
def self.string: () -> "\u0000"
end
# rbs -Isig validate --silent
/usr/local/bundle/gems/rbs-3.1.0/lib/rbs/parser_aux.rb:17:in `_parse_signature': sig/my_module.rbs:2:25...2:26: Syntax error: unexpected token for simple type, token=`"` (ErrorToken) (RBS::ParsingError)
def self.string: () -> "\u0000"
^
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/parser_aux.rb:17:in `parse_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:146:in `block (2 levels) in each_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:13:in `each_file'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:26:in `block in each_file'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:25:in `each'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:25:in `each_file'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:140:in `block in each_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:130:in `block in each_dir'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:129:in `each'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:129:in `each_dir'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:137:in `each_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:101:in `load'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment.rb:172:in `block in from_loader'
from <internal:kernel>:90:in `tap'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment.rb:171:in `from_loader'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/cli.rb:460:in `run_validate'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/cli.rb:137:in `run'
from /usr/local/bundle/gems/rbs-3.1.0/exe/rbs:7:in `<top (required)>'
from /usr/local/bundle/bin/rbs:25:in `load'
from /usr/local/bundle/bin/rbs:25:in `<main>'
This is also true for constant definitions.
# cat my_module.rb
class MyModule
NULL_BYTE = "\u0000"
end
# rbs prototype rb my_module.rb -o sig --force
Processing `my_module.rb`...
Generating RBS for `my_module.rb`...
- Writing RBS to existing file `sig/my_module.rbs`...
# cat sig/my_module.rbs
class MyModule
NULL_BYTE: "\u0000"
end
# rbs -Isig validate --silent
/usr/local/bundle/gems/rbs-3.1.0/lib/rbs/parser_aux.rb:17:in `_parse_signature': sig/my_module.rbs:2:13...2:14: Syntax error: unexpected token for simple type, token=`"` (ErrorToken) (RBS::ParsingError)
NULL_BYTE: "\u0000"
^
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/parser_aux.rb:17:in `parse_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:146:in `block (2 levels) in each_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:13:in `each_file'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:26:in `block in each_file'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:25:in `each'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/file_finder.rb:25:in `each_file'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:140:in `block in each_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:130:in `block in each_dir'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:129:in `each'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:129:in `each_dir'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:137:in `each_signature'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment_loader.rb:101:in `load'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment.rb:172:in `block in from_loader'
from <internal:kernel>:90:in `tap'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/environment.rb:171:in `from_loader'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/cli.rb:460:in `run_validate'
from /usr/local/bundle/gems/rbs-3.1.0/lib/rbs/cli.rb:137:in `run'
from /usr/local/bundle/gems/rbs-3.1.0/exe/rbs:7:in `<top (required)>'
from /usr/local/bundle/bin/rbs:25:in `load'
from /usr/local/bundle/bin/rbs:25:in `<main>'
Is it a bug in the parser?
Or is it an incorrect way of defining the null-byte character type (prototype bug)?
The text was updated successfully, but these errors were encountered:
If a null-byte character (
\u0000
) is defined as a literal type, a parse error occurs.This is also true for constant definitions.
Is it a bug in the parser?
Or is it an incorrect way of defining the null-byte character type (prototype bug)?
The text was updated successfully, but these errors were encountered: