Added Prism::CallNode#full_message_loc, which gives the location including the = if there is one.
A warning for when # shareable_constant_value is not used on its own line.
An error for invalid implicit local variable writes.
Implicit hash patterns in array patterns are disallowed.
We now validate that Unicode escape sequences are not surrogates.
Changed
All fields named operator have been renamed to binary_operator for *OperatorWriteNode nodes. This is to make it easier to provide C++ support. In the Ruby API, the old fields are aliased to the new fields with a deprecation warning.
Many updated error messages to more closely match CRuby.
We ensure keyword parameters do not end in ! or ?.
Fixed some escaping in string literals with control sequences and hex escapes.
Fix a bug with RBS types when used outside the ruby/prism codebase.
v0.28.0
Added
Nested hashes will now warn for duplicated keys, as in: { foo: 1, **{ foo: 2 } }.
Prism::ReturnNode now has a flag on it to indicate if it is redundant.
Prism::Location#slice_lines and Prism::Node#slice_lines are now provided to slice the source code of a node including the content before the node on the same line that it starts on and the content after the node on the same line that it ends on.
Symbols with invalid byte sequences now give errors.
You can now pass "3.3.1" to the version: parameter on all Prism.* APIs.
Prism::Source#lines, Prism::Location#source_lines, Prism::Node#source_lines, and Prism::Node#script_lines are now provided, which will all return the source code of the source as an array of strings.
Prism::ASCIISource is now provided, which is a subclass of Prism::Source but specialized to increase performance when the source is entirely ASCII.
Prism now provides errors when parsing Ruby 3.4+ syntax for index expressions with keywords or blocks.
Prism now provides an error when **nil is used after other keyword parameters.
Prism now provides errors when safe navigation is used in call target expressions, e.g., foo&.bar, = 1.
Prism::Node#tunnel is now provided, which returns an array of nodes starting at the current node that contain a given line and column.
Changed
All translation layers now assume an eval context, which means they will not return errors for invalid jumps like yield.
Prism::Node#inspect now uses a queue instead of recursion to avoid stack overflows.
Prism now more closely mirrors CRuby interpolation semantics, which means you could potentially have a static literal string that directly interpolates another static literal string.
The shipped RBI sorbet types no longer use generics.
Prism::ConstantPathNode#child and Prism::ConstantTargetNode#child are now deprecated, replaced by two new fields on these nodes: name and name_loc.
Added Prism::CallNode#full_message_loc, which gives the location including the = if there is one.
A warning for when # shareable_constant_value is not used on its own line.
An error for invalid implicit local variable writes.
Implicit hash patterns in array patterns are disallowed.
We now validate that Unicode escape sequences are not surrogates.
Changed
All fields named operator have been renamed to binary_operator for *OperatorWriteNode nodes. This is to make it easier to provide C++ support. In the Ruby API, the old fields are aliased to the new fields with a deprecation warning.
Many updated error messages to more closely match CRuby.
We ensure keyword parameters do not end in ! or ?.
Fixed some escaping in string literals with control sequences and hex escapes.
Fix a bug with RBS types when used outside the ruby/prism codebase.
[0.28.0] - 2024-05-03
Added
Nested hashes will now warn for duplicated keys, as in: { foo: 1, **{ foo: 2 } }.
Prism::ReturnNode now has a flag on it to indicate if it is redundant.
Prism::Location#slice_lines and Prism::Node#slice_lines are now provided to slice the source code of a node including the content before the node on the same line that it starts on and the content after the node on the same line that it ends on.
Symbols with invalid byte sequences now give errors.
You can now pass "3.3.1" to the version: parameter on all Prism.* APIs.
Prism::Source#lines, Prism::Location#source_lines, Prism::Node#source_lines, and Prism::Node#script_lines are now provided, which will all return the source code of the source as an array of strings.
Prism::ASCIISource is now provided, which is a subclass of Prism::Source but specialized to increase performance when the source is entirely ASCII.
Prism now provides errors when parsing Ruby 3.4+ syntax for index expressions with keywords or blocks.
Prism now provides an error when **nil is used after other keyword parameters.
Prism now provides errors when safe navigation is used in call target expressions, e.g., foo&.bar, = 1.
Prism::Node#tunnel is now provided, which returns an array of nodes starting at the current node that contain a given line and column.
Changed
All translation layers now assume an eval context, which means they will not return errors for invalid jumps like yield.
Prism::Node#inspect now uses a queue instead of recursion to avoid stack overflows.
Prism now more closely mirrors CRuby interpolation semantics, which means you could potentially have a static literal string that directly interpolates another static literal string.
The shipped RBI sorbet types no longer use generics.
Prism::ConstantPathNode#child and Prism::ConstantTargetNode#child are now deprecated, replaced by two new fields on these nodes: name and name_loc.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the bundler-dev group with 3 updates: ruby-lsp, prism and sorbet-runtime.
Updates
ruby-lsp
from 0.16.6 to 0.16.7Commits
b6f5f4f
Merge pull request #2072 from Shopify/dependabot/bundler/minor-and-patch-659e...7d88ded
Restore Windows platforms4d3509a
Bump@shopify/eslint-plugin
from 44.0.0 to 45.0.0 in /vscode (#2074)b027cfa
Ignoretest/expectations/
for sorbet (#2075)0d310e1
Merge pull request #2073 from Shopify/dependabot/submodules/test/fixtures/pri...c64416f
Bump test/fixtures/prism from1c8d08b
tob6aa0f2
fa42222
Update RBI files for gems 2024-05-20 [dependabot skip]6c64186
Bump the minor-and-patch group with 3 updatesd506ac4
Allow Code Lenses without a command (#2069)813f870
Merge branch 'nvim-0-10'Updates
prism
from 0.27.0 to 0.29.0Release notes
Sourced from prism's releases.
Changelog
Sourced from prism's changelog.
Commits
1f49ca9
Bump to v0.29.059fc15b
Merge pull request #2802 from ruby/parameter-forwarding2ac3882
Merge pull request #2800 from ruby/operator8266572
Enhance parameter forwarding error messages79c62d0
Merge pull request #2801 from ruby/fix-tapioca15bf727
Fix tapioca require orderb5e47f5
operator renameef589e6
Merge pull request #2799 from ruby/fix-rbsee73ad7
Fix RBS outside of prismaca9151
Merge pull request #2798 from ruby/full_message_locUpdates
sorbet-runtime
from 0.5.11385 to 0.5.11391Release notes
Sourced from sorbet-runtime's releases.
Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show