diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-12-22 22:10:11 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-12-23 13:50:42 +0900 |
commit | 8a1e12499b83870f9f102f0f0ea512f0355aac67 (patch) | |
tree | 10b6fa2952890a6884bf8812b78ba99474c809b0 | |
parent | c0a2d95cf318cf9b9ffe23f0a4b8720f69775448 (diff) | |
download | ruby-8a1e12499b83870f9f102f0f0ea512f0355aac67.tar.gz |
Ensure non-literal expressions shareable if `leteral`
-rw-r--r-- | parse.y | 2 | ||||
-rw-r--r-- | test/ruby/test_parse.rb | 10 |
2 files changed, 7 insertions, 5 deletions
@@ -11085,7 +11085,7 @@ shareable_literal_value(NODE *node) } #ifndef SHAREABLE_BARE_EXPRESSION -#define SHAREABLE_BARE_EXPRESSION 0 +#define SHAREABLE_BARE_EXPRESSION 1 #endif VALUE rb_ractor_make_shareable(VALUE obj); diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb index aeaa42dadb..2e3fbc9945 100644 --- a/test/ruby/test_parse.rb +++ b/test/ruby/test_parse.rb @@ -1252,16 +1252,18 @@ x = __ENCODING__ end def test_shareable_constant_value_nonliteral - c, d = eval_separately("#{<<~"begin;"}\n#{<<~'end;'}") + assert_raise_separately(Ractor::IsolationError, /unshareable/, "#{<<~"begin;"}\n#{<<~'end;'}") begin; # shareable_constant_value: literal var = [:not_frozen] C = var + end; + + assert_raise_separately(Ractor::IsolationError, /unshareable/, "#{<<~"begin;"}\n#{<<~'end;'}") + begin; + # shareable_constant_value: literal D = begin [] end - [C, D] end; - assert_not_ractor_shareable(c) - assert_not_ractor_shareable(d) end def test_shareable_constant_value_unfrozen |