From 8dca3ea7391af3b33f36aaa416610ffd7a52155b Mon Sep 17 00:00:00 2001 From: Joel Drapper Date: Mon, 3 Feb 2025 17:21:45 +0000 Subject: [PATCH] Require deeply-frozen defaults --- lib/literal/properties.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/literal/properties.rb b/lib/literal/properties.rb index dbaac46..86d11bc 100644 --- a/lib/literal/properties.rb +++ b/lib/literal/properties.rb @@ -17,8 +17,8 @@ def self.extended(base) end def prop(name, type, kind = :keyword, reader: false, writer: false, predicate: false, default: nil, &coercion) - if default && !(Proc === default || default.frozen?) - raise Literal::ArgumentError.new("The default must be a frozen object or a Proc.") + if default && !(Proc === default || Ractor.shareable?(default)) + raise Literal::ArgumentError.new("The default must be a deeply-frozen object or a Proc.") end unless Literal::Property::VISIBILITY_OPTIONS.include?(reader)