diff options
Diffstat (limited to 'spec/ruby/core/proc/fixtures')
| -rw-r--r-- | spec/ruby/core/proc/fixtures/common.rb | 72 | ||||
| -rw-r--r-- | spec/ruby/core/proc/fixtures/proc_aref.rb | 10 | ||||
| -rw-r--r-- | spec/ruby/core/proc/fixtures/proc_aref_frozen.rb | 10 | ||||
| -rw-r--r-- | spec/ruby/core/proc/fixtures/source_location.rb | 55 |
4 files changed, 147 insertions, 0 deletions
diff --git a/spec/ruby/core/proc/fixtures/common.rb b/spec/ruby/core/proc/fixtures/common.rb new file mode 100644 index 0000000000..dfe67d7ba8 --- /dev/null +++ b/spec/ruby/core/proc/fixtures/common.rb @@ -0,0 +1,72 @@ +module ProcSpecs + class ToAryAsNil + def to_ary + nil + end + end + def self.new_proc_in_method + Proc.new + end + + def self.new_proc_from_amp(&block) + block + end + + def self.proc_for_1 + proc { 1 } + end + + class ProcSubclass < Proc + end + + def self.new_proc_subclass_in_method + ProcSubclass.new + end + + class MyProc < Proc + end + + class MyProc2 < Proc + def initialize(a, b) + @first = a + @second = b + end + + attr_reader :first, :second, :initializer + + def initialize_copy(other) + super + @initializer = :copy + @first = other.first + @second = other.second + end + + def initialize_dup(other) + super + @initializer = :dup + @first = other.first + @second = other.second + end + + def initialize_clone(other, **options) + super + @initializer = :clone + @first = other.first + @second = other.second + end + end + + class Arity + def arity_check(&block) + pn = Proc.new(&block).arity + pr = proc(&block).arity + lm = lambda(&block).arity + + if pn == pr and pr == lm + return pn + else + return :arity_check_failed + end + end + end +end diff --git a/spec/ruby/core/proc/fixtures/proc_aref.rb b/spec/ruby/core/proc/fixtures/proc_aref.rb new file mode 100644 index 0000000000..8ee355b14c --- /dev/null +++ b/spec/ruby/core/proc/fixtures/proc_aref.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: false +module ProcArefSpecs + def self.aref + proc {|a| a }["sometext"] + end + + def self.aref_freeze + proc {|a| a }["sometext".freeze] + end +end diff --git a/spec/ruby/core/proc/fixtures/proc_aref_frozen.rb b/spec/ruby/core/proc/fixtures/proc_aref_frozen.rb new file mode 100644 index 0000000000..50a330ba4f --- /dev/null +++ b/spec/ruby/core/proc/fixtures/proc_aref_frozen.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true +module ProcArefFrozenSpecs + def self.aref + proc {|a| a }["sometext"] + end + + def self.aref_freeze + proc {|a| a }["sometext".freeze] + end +end diff --git a/spec/ruby/core/proc/fixtures/source_location.rb b/spec/ruby/core/proc/fixtures/source_location.rb new file mode 100644 index 0000000000..5572094630 --- /dev/null +++ b/spec/ruby/core/proc/fixtures/source_location.rb @@ -0,0 +1,55 @@ +module ProcSpecs + class SourceLocation + def self.my_proc + proc { true } + end + + def self.my_lambda + -> { true } + end + + def self.my_proc_new + Proc.new { true } + end + + def self.my_method + method(__method__).to_proc + end + + def self.my_multiline_proc + proc do + 'a'.upcase + 1 + 22 + end + end + + def self.my_multiline_lambda + -> do + 'a'.upcase + 1 + 22 + end + end + + def self.my_multiline_proc_new + Proc.new do + 'a'.upcase + 1 + 22 + end + end + + def self.my_detached_proc + body = proc { true } + proc(&body) + end + + def self.my_detached_lambda + body = -> { true } + suppress_warning {lambda(&body)} + end + + def self.my_detached_proc_new + body = Proc.new { true } + Proc.new(&body) + end + end +end |
