rubybreaker 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. data/NEWS +6 -0
  2. data/VERSION +1 -1
  3. data/bin/rubybreaker +3 -3
  4. data/lib/rubybreaker.rb +15 -11
  5. data/lib/rubybreaker/doc/rdoc.rb +1 -1
  6. data/lib/rubybreaker/runtime/monitor.rb +8 -6
  7. data/lib/rubybreaker/runtime/object_wrapper.rb +38 -16
  8. data/lib/rubybreaker/runtime/overrides.rb +42 -30
  9. data/lib/rubybreaker/runtime/type_system.rb +45 -14
  10. data/lib/rubybreaker/type/type_unparser.rb +4 -8
  11. data/lib/rubybreaker/typing/subtyping.rb +1 -0
  12. data/test/integrated/tc_original_behavior.rb +38 -0
  13. data/test/integrated/tc_simple1.rb +20 -0
  14. data/test/integrated/tc_simple_algorithms.rb +135 -0
  15. data/test/runtime/tc_obj_wrapper.rb +3 -3
  16. data/test/ts_integrated.rb +1 -0
  17. data/test/type/tc_parser.rb +24 -0
  18. data/webpage/rdoc/Object.html +0 -2
  19. data/webpage/rdoc/Rake.html +0 -2
  20. data/webpage/rdoc/Rake/RubyBreakerTestTask.html +0 -2
  21. data/webpage/rdoc/RubyBreaker.html +1 -3
  22. data/webpage/rdoc/RubyBreaker/Breakable.html +0 -2
  23. data/webpage/rdoc/RubyBreaker/Broken.html +0 -2
  24. data/webpage/rdoc/RubyBreaker/Context.html +0 -2
  25. data/webpage/rdoc/RubyBreaker/Errors.html +0 -2
  26. data/webpage/rdoc/RubyBreaker/Errors/ArgumentTypeError.html +0 -2
  27. data/webpage/rdoc/RubyBreaker/Errors/ArityError.html +0 -2
  28. data/webpage/rdoc/RubyBreaker/Errors/InternalError.html +0 -2
  29. data/webpage/rdoc/RubyBreaker/Errors/InvalidSubtypeCheck.html +0 -2
  30. data/webpage/rdoc/RubyBreaker/Errors/InvalidTypeConstruction.html +0 -2
  31. data/webpage/rdoc/RubyBreaker/Errors/ReturnTypeError.html +0 -2
  32. data/webpage/rdoc/RubyBreaker/Errors/TypeError.html +0 -2
  33. data/webpage/rdoc/RubyBreaker/Errors/UserError.html +0 -2
  34. data/webpage/rdoc/RubyBreaker/ObjectPosition.html +0 -2
  35. data/webpage/rdoc/RubyBreaker/Position.html +0 -2
  36. data/webpage/rdoc/RubyBreaker/RubyTypeUtils.html +0 -2
  37. data/webpage/rdoc/RubyBreaker/Runtime.html +7 -3
  38. data/webpage/rdoc/RubyBreaker/Runtime/Inspector.html +0 -2
  39. data/webpage/rdoc/RubyBreaker/Runtime/MethodInfo.html +0 -2
  40. data/webpage/rdoc/RubyBreaker/Runtime/Monitor.html +12 -13
  41. data/webpage/rdoc/RubyBreaker/Runtime/MonitorInstaller.html +6 -7
  42. data/webpage/rdoc/RubyBreaker/Runtime/MonitorSwitch.html +4 -6
  43. data/webpage/rdoc/RubyBreaker/Runtime/ObjectWrapper.html +21 -19
  44. data/webpage/rdoc/RubyBreaker/Runtime/Pluggable.html +0 -2
  45. data/webpage/rdoc/RubyBreaker/Runtime/TypeSigParser.html +0 -2
  46. data/webpage/rdoc/RubyBreaker/Runtime/TypeSigUnparser.html +0 -2
  47. data/webpage/rdoc/RubyBreaker/Runtime/TypeSystem.html +52 -23
  48. data/webpage/rdoc/RubyBreaker/TypeComparer.html +0 -2
  49. data/webpage/rdoc/RubyBreaker/TypeDefs.html +0 -2
  50. data/webpage/rdoc/RubyBreaker/TypeDefs/AnyType.html +0 -2
  51. data/webpage/rdoc/RubyBreaker/TypeDefs/BlockType.html +0 -2
  52. data/webpage/rdoc/RubyBreaker/TypeDefs/DuckType.html +0 -2
  53. data/webpage/rdoc/RubyBreaker/TypeDefs/FusionType.html +0 -2
  54. data/webpage/rdoc/RubyBreaker/TypeDefs/MethodListType.html +0 -2
  55. data/webpage/rdoc/RubyBreaker/TypeDefs/MethodType.html +0 -2
  56. data/webpage/rdoc/RubyBreaker/TypeDefs/NilType.html +0 -2
  57. data/webpage/rdoc/RubyBreaker/TypeDefs/NominalType.html +0 -2
  58. data/webpage/rdoc/RubyBreaker/TypeDefs/OptionalType.html +0 -2
  59. data/webpage/rdoc/RubyBreaker/TypeDefs/OrType.html +0 -2
  60. data/webpage/rdoc/RubyBreaker/TypeDefs/SelfType.html +0 -2
  61. data/webpage/rdoc/RubyBreaker/TypeDefs/Type.html +2 -4
  62. data/webpage/rdoc/RubyBreaker/TypeDefs/VarLengthType.html +0 -2
  63. data/webpage/rdoc/RubyBreaker/TypeUnparser.html +1 -3
  64. data/webpage/rdoc/RubyBreaker/Typing.html +1 -3
  65. data/webpage/rdoc/RubyBreaker/Util.html +0 -2
  66. data/webpage/rdoc/Test.html +0 -2
  67. data/webpage/rdoc/Test/Unit.html +0 -2
  68. data/webpage/rdoc/created.rid +10 -10
  69. data/webpage/rdoc/index.html +0 -2
  70. data/webpage/rdoc/js/search_index.js +1 -1
  71. data/webpage/rdoc/table_of_contents.html +31 -38
  72. metadata +3 -3
  73. data/webpage/rdoc/RubyBreaker/RDocSupport.html +0 -328
@@ -93,8 +93,7 @@ module RubyBreaker
93
93
  t.arg_types.each_with_index do |arg_type,i|
94
94
  unparse_pp(pp, arg_type, opts)
95
95
  if i < t.arg_types.size - 1
96
- pp.text(",")
97
- pp.fill_breakable()
96
+ pp.text(", ")
98
97
  end
99
98
  end
100
99
  pp.text(")")
@@ -105,16 +104,14 @@ module RubyBreaker
105
104
  pp.text("}")
106
105
  pp.fill_breakable()
107
106
  end
108
- pp.text("->")
109
- pp.fill_breakable()
107
+ pp.text("-> ")
110
108
  unparse_pp(pp, t.ret_type, opts)
111
109
  elsif t.instance_of?(BlockType)
112
110
  pp.text("|")
113
111
  t.arg_types.each_with_index do |arg_type,i|
114
112
  unparse_pp(pp, arg_type, opts)
115
113
  if i < t.arg_types.size - 1
116
- pp.text(",")
117
- pp.fill_breakable()
114
+ pp.text(", ")
118
115
  end
119
116
  end
120
117
  pp.text("|")
@@ -125,8 +122,7 @@ module RubyBreaker
125
122
  pp.text("}")
126
123
  pp.fill_breakable()
127
124
  end
128
- pp.text("->")
129
- pp.fill_breakable()
125
+ pp.text("-> ")
130
126
  unparse_pp(pp, t.ret_type, opts)
131
127
  elsif t.instance_of?(MethodListType)
132
128
  t.types.each_with_index do |typ,i|
@@ -193,6 +193,7 @@ module RubyBreaker
193
193
  rhs_arg = rhs_arg.type
194
194
  end
195
195
  end
196
+ # Remember, the contra-variance
196
197
  if !self.subtype_rel?(rhs_arg, lhs_arg)
197
198
  is_subtype = false
198
199
  break
@@ -22,12 +22,50 @@ class IntegratedOriginalBehaviorTest < Test::Unit::TestCase
22
22
  raise "error"
23
23
  end
24
24
 
25
+ def neg?(x)
26
+ return x < 0
27
+ end
28
+
29
+ def x_nil?(x)
30
+ return x.nil?
31
+ end
32
+
33
+ def factorial(x)
34
+ if x <= 1
35
+ 1
36
+ else
37
+ x * factorial(x - 1)
38
+ end
39
+ end
40
+
25
41
  end
26
42
 
27
43
  def setup()
28
44
  RubyBreaker.break(A)
29
45
  end
30
46
 
47
+ def test_una_op
48
+ a = A.new
49
+ assert(a.x_nil?(nil))
50
+ assert(!a.x_nil?(1))
51
+ end
52
+
53
+ def test_bin_op
54
+ a = A.new
55
+ assert(a.neg?(-1))
56
+ assert(!a.neg?(1))
57
+ end
58
+
59
+ def test_factorial
60
+ a = A.new
61
+ b = a.factorial(4)
62
+ assert_equal(24, b)
63
+ b = a.factorial(1)
64
+ assert_equal(1, b)
65
+ b = a.factorial(0)
66
+ assert_equal(1, b)
67
+ end
68
+
31
69
  def test_plus()
32
70
  a = A.new
33
71
  x = 1
@@ -28,18 +28,38 @@ class IntegratedSimpleTest < Test::Unit::TestCase
28
28
  self
29
29
  end
30
30
 
31
+ def bazzz(x,n)
32
+ if n == 0
33
+ x.size
34
+ end
35
+ x.to_s
36
+ return 1
37
+ end
38
+
31
39
  end
32
40
 
33
41
  class B
34
42
  typesig("baz(string[size], true_class) -> fixnum")
35
43
  typesig("baz(string[to_s], false_class) -> string")
36
44
  def baz(x,b); end
45
+
46
+ typesig("bazzz(string[size, to_s], fixnum[==]) -> fixnum")
47
+ def bazzz(x, n); end
37
48
  end
38
49
 
39
50
  def setup()
40
51
  RubyBreaker.break(A)
41
52
  end
42
53
 
54
+ def test_intersect
55
+ a = A.new
56
+ a.bazzz("abc", 0)
57
+ a.bazzz("abc", 1)
58
+ meth_type = Runtime::Inspector.inspect_meth(A, :bazzz)
59
+ str = TypeUnparser.unparse(meth_type)
60
+ assert_equal("bazzz(string[size, to_s], fixnum[==]) -> fixnum", str)
61
+ end
62
+
43
63
  def test_simple1_a_foo
44
64
  a = A.new
45
65
  a.foo("test_simple1 >> string")
@@ -0,0 +1,135 @@
1
+ require "test/unit"
2
+ require_relative "../../lib/rubybreaker"
3
+
4
+ class IntegratedSimpleAlgorithmsTest < Test::Unit::TestCase
5
+ include RubyBreaker
6
+
7
+ # The contents of the following class is taken from Opus8:
8
+ #
9
+ # This class contains the Ruby code from Program 2.x of
10
+ # "Data Structures and Algorithms
11
+ # with Object-Oriented Design Patterns in Ruby"
12
+ # by Bruno R. Preiss.
13
+ #
14
+ # Copyright (c) 2004 by Bruno R. Preiss, P.Eng. All rights reserved.
15
+ #
16
+ # http://www.brpreiss.com/books/opus8/
17
+ #
18
+ class Opus8
19
+ def sum(n)
20
+ result = 0
21
+ i = 1
22
+ while i <= n
23
+ result += i
24
+ i += 1
25
+ end
26
+ return result
27
+ end
28
+
29
+ def horner(a, n, x)
30
+ result = a[n]
31
+ i = n - 1
32
+ while i >= 0
33
+ result = result * x + a[i]
34
+ i -= 1
35
+ end
36
+ return result
37
+ end
38
+
39
+ def findMaximum(a, n)
40
+ result = a[0]
41
+ i = 1
42
+ while i < n
43
+ if a[i] > result
44
+ result = a[i]
45
+ end
46
+ i += 1
47
+ end
48
+ return result
49
+ end
50
+
51
+ def fibonacci(n)
52
+ if n == 0 or n == 1
53
+ return n
54
+ else
55
+ return fibonacci(n - 1) + fibonacci(n - 2)
56
+ end
57
+ end
58
+
59
+ def bucketSort(a, n, buckets, m)
60
+ for j in 0 ... m
61
+ buckets[j] = 0
62
+ end
63
+ for i in 0 ... n
64
+ buckets[a[i]] += 1
65
+ end
66
+ i = 0
67
+ for j in 0 ... m
68
+ for k in 0 ... buckets[j]
69
+ a[i] = j
70
+ i += 1
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ class Ref
77
+ typesig("fibonacci(fixnum[==]) -> fixnum")
78
+ typesig("fibonacci(fixnum[==,-]) -> fixnum")
79
+ def fibonacci(n); n end
80
+ end
81
+
82
+ def setup()
83
+ Runtime.break(Opus8)
84
+ end
85
+
86
+ def test_sum
87
+ opus8 = Opus8.new
88
+ result = opus8.sum(5)
89
+ sum_meth_type = Runtime::Inspector.inspect_meth(Opus8, :sum)
90
+ str = sum_meth_type.unparse()
91
+ assert_equal("sum(fixnum[]) -> fixnum", str)
92
+ assert_equal(15, result)
93
+ end
94
+
95
+ def test_horner()
96
+ opus8 = Opus8.new
97
+ result = opus8.horner([1,2,3],2,2)
98
+ horner_meth_type = Runtime::Inspector.inspect_meth(Opus8, :horner)
99
+ str = horner_meth_type.unparse()
100
+ assert_equal("horner(array[[]], fixnum[-], fixnum[]) -> fixnum", str)
101
+ assert_equal(1 + 4 + 12, result)
102
+ end
103
+
104
+ def test_findMaximum()
105
+ opus8 = Opus8.new
106
+ result = opus8.findMaximum([1,4,3,2], 4)
107
+ max_meth_type = Runtime::Inspector.inspect_meth(Opus8, :findMaximum)
108
+ str = max_meth_type.unparse()
109
+ assert_equal("findMaximum(array[[]], fixnum[]) -> fixnum", str)
110
+ assert_equal(4, result)
111
+ end
112
+
113
+ def test_fibonacci()
114
+ opus8 = Opus8.new
115
+ result = opus8.fibonacci(4)
116
+ fib_meth_type = Runtime::Inspector.inspect_meth(Opus8, :fibonacci)
117
+ fib_ref_meth_type = Runtime::Inspector.inspect_meth(Ref, :fibonacci)
118
+ str = fib_meth_type.unparse()
119
+ # puts fib_meth_type.class
120
+ assert_equal("fibonacci(fixnum[-, ==]) -> fixnum", str)
121
+ assert_equal(3, result)
122
+ end
123
+
124
+ def test_bucket_sort()
125
+ opus8 = Opus8.new
126
+ array = [5, 1, 3, 7, 11, 9]
127
+ bucket = []
128
+ opus8.bucketSort(array, 6, bucket, 12)
129
+ sort_meth_type = Runtime::Inspector.inspect_meth(Opus8, :bucketSort)
130
+ str = sort_meth_type.unparse()
131
+ assert_equal("bucketSort(array[[], []=], fixnum[], array[[], []=], fixnum[]) -> range", str)
132
+ assert_equal([1, 3, 5, 7, 9, 11], array)
133
+ end
134
+
135
+ end
@@ -144,7 +144,7 @@ class ObjectWrapperTest < Test::Unit::TestCase
144
144
  assert(y == wrapped_x)
145
145
  assert(wrapped_x == y)
146
146
  assert(!y.equal?(wrapped_x)) # try "42".equal?("42") in irb, it will fail
147
- assert(wrapped_x.equal?(y))
147
+ assert(!wrapped_x.equal?(y))
148
148
  assert(y.eql?(wrapped_x))
149
149
  assert(wrapped_x.eql?(y))
150
150
  assert_equal(y, wrapped_x)
@@ -178,7 +178,7 @@ class ObjectWrapperTest < Test::Unit::TestCase
178
178
  assert(y == wrapped_x)
179
179
  assert(wrapped_x == y)
180
180
  assert(!y.equal?(wrapped_x))
181
- assert(wrapped_x.equal?(y))
181
+ assert(!wrapped_x.equal?(y))
182
182
  assert(y.eql?(wrapped_x))
183
183
  assert(wrapped_x.eql?(y))
184
184
  assert_equal(y, wrapped_x)
@@ -212,7 +212,7 @@ class ObjectWrapperTest < Test::Unit::TestCase
212
212
  assert(y == wrapped_x)
213
213
  assert(wrapped_x == y)
214
214
  assert(!y.equal?(wrapped_x))
215
- assert(wrapped_x.equal?(y))
215
+ assert(!wrapped_x.equal?(y))
216
216
  assert(y.eql?(wrapped_x))
217
217
  assert(wrapped_x.eql?(y))
218
218
  assert_equal(y, wrapped_x)
@@ -8,4 +8,5 @@ require_relative "integrated/tc_class_methods"
8
8
  require_relative "integrated/tc_both_documented_and_undocumented"
9
9
  require_relative "integrated/tc_namespace"
10
10
  require_relative "integrated/tc_checking"
11
+ require_relative "integrated/tc_simple_algorithms"
11
12
 
@@ -189,7 +189,19 @@ class GrammarTest < Test::Unit::TestCase
189
189
  #puts str
190
190
  assert_equal("foo([m1, m2, m3?]) -> fixnum",str)
191
191
  end
192
+
193
+ def test_method_duck_array_index_method
194
+ type = @parser.parse("foo([[]]) -> fixnum").value
195
+ str = TypeUnparser.unparse(type)
196
+ assert_equal("foo([[]]) -> fixnum", str)
197
+ end
192
198
 
199
+ def test_method_duck_array_more_methods
200
+ type = @parser.parse("foo([[],[]=]) -> fixnum").value
201
+ str = TypeUnparser.unparse(type)
202
+ assert_equal("foo([[], []=]) -> fixnum", str)
203
+ end
204
+
193
205
  def test_method_fusion_arg
194
206
  type = @parser.parse("foo(fixnum[to_s]) -> fixnum").value
195
207
  str = TypeUnparser.unparse(type)
@@ -204,6 +216,18 @@ class GrammarTest < Test::Unit::TestCase
204
216
  assert_equal("foo(fixnum[to_i, to_s]) -> fixnum",str)
205
217
  end
206
218
 
219
+ def test_method_fusion_array_index_method
220
+ type = @parser.parse("foo(array[[]]) -> fixnum").value
221
+ str = TypeUnparser.unparse(type)
222
+ assert_equal("foo(array[[]]) -> fixnum", str)
223
+ end
224
+
225
+ def test_method_fusion_array_more_methods
226
+ type = @parser.parse("foo(array[[],[]=]) -> fixnum").value
227
+ str = TypeUnparser.unparse(type)
228
+ assert_equal("foo(array[[], []=]) -> fixnum", str)
229
+ end
230
+
207
231
  def test_space_around
208
232
  type = @parser.parse(" foo() -> nil ").value
209
233
  str = TypeUnparser.unparse(type)
@@ -104,8 +104,6 @@
104
104
 
105
105
  <li><a href="./RubyBreaker/Position.html">RubyBreaker::Position</a>
106
106
 
107
- <li><a href="./RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
108
-
109
107
  <li><a href="./RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
110
108
 
111
109
  <li><a href="./RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -98,8 +98,6 @@
98
98
 
99
99
  <li><a href="./RubyBreaker/Position.html">RubyBreaker::Position</a>
100
100
 
101
- <li><a href="./RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
102
-
103
101
  <li><a href="./RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
104
102
 
105
103
  <li><a href="./RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -118,8 +118,6 @@
118
118
 
119
119
  <li><a href="../RubyBreaker/Position.html">RubyBreaker::Position</a>
120
120
 
121
- <li><a href="../RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
122
-
123
121
  <li><a href="../RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
124
122
 
125
123
  <li><a href="../RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -160,8 +160,6 @@
160
160
 
161
161
  <li><a href="./RubyBreaker/Position.html">RubyBreaker::Position</a>
162
162
 
163
- <li><a href="./RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
164
-
165
163
  <li><a href="./RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
166
164
 
167
165
  <li><a href="./RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -561,7 +559,7 @@ href="RubyBreaker.html">RubyBreaker</a> as a shell program.</p>
561
559
 
562
560
 
563
561
  <div class="method-source-code" id="run-source">
564
- <pre><span class="ruby-comment"># File lib/rubybreaker.rb, line 171</span>
562
+ <pre><span class="ruby-comment"># File lib/rubybreaker.rb, line 175</span>
565
563
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">run</span>(*<span class="ruby-identifier">mods</span>)
566
564
  <span class="ruby-constant">RubyBreaker</span>.<span class="ruby-identifier">setup_logger</span>() <span class="ruby-keyword">unless</span> <span class="ruby-constant">RubyBreaker</span>.<span class="ruby-identifier">defined_logger?</span>()
567
565
 
@@ -108,8 +108,6 @@
108
108
 
109
109
  <li><a href="../RubyBreaker/Position.html">RubyBreaker::Position</a>
110
110
 
111
- <li><a href="../RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
112
-
113
111
  <li><a href="../RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
114
112
 
115
113
  <li><a href="../RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -108,8 +108,6 @@
108
108
 
109
109
  <li><a href="../RubyBreaker/Position.html">RubyBreaker::Position</a>
110
110
 
111
- <li><a href="../RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
112
-
113
111
  <li><a href="../RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
114
112
 
115
113
  <li><a href="../RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -120,8 +120,6 @@
120
120
 
121
121
  <li><a href="../RubyBreaker/Position.html">RubyBreaker::Position</a>
122
122
 
123
- <li><a href="../RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
124
-
125
123
  <li><a href="../RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
126
124
 
127
125
  <li><a href="../RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -98,8 +98,6 @@
98
98
 
99
99
  <li><a href="../RubyBreaker/Position.html">RubyBreaker::Position</a>
100
100
 
101
- <li><a href="../RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
102
-
103
101
  <li><a href="../RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
104
102
 
105
103
  <li><a href="../RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -104,8 +104,6 @@
104
104
 
105
105
  <li><a href="../../RubyBreaker/Position.html">RubyBreaker::Position</a>
106
106
 
107
- <li><a href="../../RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
108
-
109
107
  <li><a href="../../RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
110
108
 
111
109
  <li><a href="../../RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>
@@ -104,8 +104,6 @@
104
104
 
105
105
  <li><a href="../../RubyBreaker/Position.html">RubyBreaker::Position</a>
106
106
 
107
- <li><a href="../../RubyBreaker/RDocSupport.html">RubyBreaker::RDocSupport</a>
108
-
109
107
  <li><a href="../../RubyBreaker/RubyTypeUtils.html">RubyBreaker::RubyTypeUtils</a>
110
108
 
111
109
  <li><a href="../../RubyBreaker/Runtime.html">RubyBreaker::Runtime</a>