| Age | Commit message (Collapse) | Author |
|
expressions
https://github.com/ruby/prism/commit/68de31919e
|
|
AlternationPatternNode
https://github.com/ruby/prism/commit/6953daebde
|
|
https://github.com/ruby/prism/commit/976a3cd0a5
|
|
https://github.com/ruby/prism/commit/dc7164e21c
|
|
https://github.com/ruby/prism/commit/d42bc309cc
|
|
https://github.com/ruby/prism/commit/988ac82187
|
|
https://github.com/ruby/prism/commit/509ff88e92
|
|
https://github.com/ruby/prism/commit/b624e09cc6
|
|
https://github.com/ruby/prism/commit/4daf58f7a0
|
|
https://github.com/ruby/prism/commit/9fd0c0901e
|
|
https://github.com/ruby/prism/commit/a474017bbe
|
|
* For Loader.java, do not deserialize the AST if there are errors, so then Java nodes only have non-error types for fields.
https://github.com/ruby/prism/commit/ae78e3c605
|
|
https://github.com/ruby/prism/commit/098f1c4607
|
|
https://github.com/ruby/prism/commit/a4fcd5339a
|
|
* Otherwise it is invalid e.g. to call strlen() to the result,
or to assume the argument was a string.
* All callers are already checking for nil before.
https://github.com/ruby/prism/commit/8197be883e
|
|
https://github.com/ruby/prism/commit/b28877fa4f
|
|
optimized away
In cases where break/next/redo are not valid syntax, they should
raise a SyntaxError even if inside a conditional block that is
optimized away.
Fixes [Bug #20597]
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/11099
Merged-By: jeremyevans <code@jeremyevans.net>
|
|
https://github.com/ruby/prism/commit/e98ea15596
Notes:
Merged: https://github.com/ruby/ruby/pull/11643
|
|
https://github.com/ruby/prism/commit/6d7b734dbe
|
|
Fixes [Bug #20747]
https://github.com/ruby/prism/commit/d3194715a9
|
|
Fixes [Bug #20744]
https://github.com/ruby/prism/commit/f1b8b1b2a2
|
|
https://github.com/ruby/prism/commit/4ed7de537b
|
|
https://github.com/ruby/prism/commit/0b527ca93f
|
|
Fixes [Bug #20735]
Notes:
Merged: https://github.com/ruby/ruby/pull/11622
|
|
Fixes [Bug #20730]
Notes:
Merged: https://github.com/ruby/ruby/pull/11617
|
|
Fixes [Bug #20731]
Notes:
Merged: https://github.com/ruby/ruby/pull/11620
|
|
Fixes [Bug #20732]
Notes:
Merged: https://github.com/ruby/ruby/pull/11618
|
|
reuse in templates
https://github.com/ruby/prism/commit/c20bf05ecc
|
|
https://github.com/ruby/prism/commit/dbb7e0a44e
|
|
https://github.com/ruby/prism/commit/d68ea29d04
Notes:
Merged: https://github.com/ruby/ruby/pull/11497
|
|
https://github.com/ruby/prism/commit/e8c862ca1f
|
|
https://github.com/ruby/prism/commit/487f0ffe78
|
|
https://github.com/ruby/prism/commit/ebd2889bee
|
|
https://github.com/ruby/prism/commit/31154a389a
|
|
https://github.com/ruby/prism/commit/8a3fa9f46e
|
|
https://github.com/ruby/prism/commit/369b2c1304
|
|
https://github.com/ruby/prism/commit/fa65b66237
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11502
|
|
https://github.com/ruby/prism/commit/21cb9b78ae
|
|
|
|
Rename some fields that do not quite make sense.
* CaseMatchNode#consequent -> CaseMatchNode#else_clause
* CaseNode#consequent -> CaseNode#else_clause
* IfNode#consequent -> IfNode#subsequent
* RescueNode#consequent -> RescueNode#subsequent
* UnlessNode#consequent -> UnlessNode#else_clause
Notes:
Merged: https://github.com/ruby/ruby/pull/11480
|
|
https://github.com/ruby/prism/commit/d43333539e
|
|
https://github.com/ruby/prism/commit/ec181a3b68
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11475
|
|
If we have a splat, add a flag for it named `contains_splat`.
https://github.com/ruby/prism/commit/5be97a75c8
|
|
Fixes the following allocations tests:
* `test_keyword_and_keyword_splat_parameter`
* `test_keyword_parameter`
* `test_keyword_splat_parameter`
* `test_no_array_allocation_with_splat_and_nonstatic_keywords`
* `test_no_parameters`
* `test_positional_splat_and_keyword_splat_parameter`
* `test_ruby2_keywords`
* Checks for `first_chunk` and if `stack_length == 0` to match the
upstream parser. Otherwise, this optimization is skipped.
* Subtracts the index, otherwise it will skip the hash allocation for
the following: `keyword(*empty_array, a: 2, **empty_hash)`.
* Sets `dup_rest` in order to determine when to set the correct flags
* Doesn't set `VM_CALL_KW_SPLAT_MUT` flag unless `dup_rest` doesn't
match `initial_dup_rest`.
Given the following code:
```ruby
keyword(*empty_array, a: 2)
```
Instructions before:
```
== disasm: #<ISeq:test@test.rb:4 (4,0)-(8,3)>
local table (size: 2, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1])
[ 2] empty_hash@0<Arg>[ 1] empty_array@1
0000 newarray 0 ( 5)[LiCa]
0002 setlocal_WC_0 empty_array@1
0004 putself ( 7)[Li]
0005 getlocal_WC_0 empty_array@1
0007 splatarray true
0009 putobject :a
0011 putobject 2
0013 newhash 2
0015 opt_send_without_block <calldata!mid:keyword, argc:2, ARGS_SPLAT|ARGS_SPLAT_MUT|FCALL|KW_SPLAT>
0017 leave ( 8)[Re]
```
Instructions after:
```
== disasm: #<ISeq:test@test.rb:4 (4,0)-(8,3)>
local table (size: 2, argc: 1 [opts: 0, rest: -1, post: 0, block: -1, kw: -1@-1, kwrest: -1])
[ 2] empty_hash@0<Arg>[ 1] empty_array@1
0000 newarray 0 ( 5)[LiCa]
0002 setlocal_WC_0 empty_array@1
0004 putself ( 7)[Li]
0005 getlocal_WC_0 empty_array@1
0007 splatarray false
0009 putobject {:a=>2}
0011 opt_send_without_block <calldata!mid:keyword, argc:2, ARGS_SPLAT|FCALL|KW_SPLAT>
0013 leave ( 8)[Re]
```
Differences:
* `splatarray` is `false` not `true
* `putobject`, `putobject`, `newhash` is simply `putobject` with
optimizations on
* Remove `ARGS_SPLAT_MUT` flag
Related: ruby/prism#2994
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
Notes:
Merged: https://github.com/ruby/ruby/pull/11438
|
|
https://github.com/ruby/prism/commit/5753fb6260
|
|
… by allocating them with the correct capacity.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11461
|
|
|