aboutsummaryrefslogtreecommitdiffstats
path: root/spec/rubyspec/language/fixtures/constants_sclass.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/language/fixtures/constants_sclass.rb')
-rw-r--r--spec/rubyspec/language/fixtures/constants_sclass.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/spec/rubyspec/language/fixtures/constants_sclass.rb b/spec/rubyspec/language/fixtures/constants_sclass.rb
new file mode 100644
index 0000000000..21dc4081e2
--- /dev/null
+++ b/spec/rubyspec/language/fixtures/constants_sclass.rb
@@ -0,0 +1,54 @@
+module ConstantSpecs
+
+ CS_SINGLETON1 = Object.new
+ class << CS_SINGLETON1
+ CONST = 1
+ def foo
+ CONST
+ end
+ end
+
+ CS_SINGLETON2 = [Object.new, Object.new]
+ 2.times do |i|
+ obj = CS_SINGLETON2[i]
+ $spec_i = i
+ class << obj
+ CONST = ($spec_i + 1)
+ def foo
+ CONST
+ end
+ end
+ end
+
+ CS_SINGLETON3 = [Object.new, Object.new]
+ 2.times do |i|
+ obj = CS_SINGLETON3[i]
+ class << obj
+ class X
+ # creates <singleton class::X>
+ end
+
+ def x
+ X
+ end
+ end
+ end
+
+ CS_SINGLETON4 = [Object.new, Object.new]
+ CS_SINGLETON4_CLASSES = []
+ 2.times do |i|
+ obj = CS_SINGLETON4[i]
+ $spec_i = i
+ class << obj
+ class X
+ CS_SINGLETON4_CLASSES << self
+ CONST = ($spec_i + 1)
+
+ def foo
+ CONST
+ end
+ end
+ end
+ end
+
+end