opal 0.8.1 → 0.9.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (331) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/.gitmodules +3 -3
  4. data/.jshintrc +17 -20
  5. data/.travis.yml +22 -11
  6. data/CHANGELOG.md +51 -1
  7. data/CODE_OF_CONDUCT.md +15 -0
  8. data/CONTRIBUTING.md +125 -9
  9. data/Gemfile +1 -1
  10. data/Guardfile +2 -2
  11. data/README.md +95 -29
  12. data/Rakefile +1 -1
  13. data/benchmark/benchmarks +103 -0
  14. data/benchmark/bm_array_flatten.rb +9 -0
  15. data/benchmark/bm_array_intersection_numbers.rb +7 -0
  16. data/benchmark/bm_array_intersection_objects.rb +7 -0
  17. data/benchmark/bm_array_intersection_strings.rb +7 -0
  18. data/benchmark/bm_array_join_ary.rb +9 -0
  19. data/benchmark/bm_array_minus_numbers.rb +7 -0
  20. data/benchmark/bm_array_minus_objects.rb +7 -0
  21. data/benchmark/bm_array_minus_strings.rb +7 -0
  22. data/benchmark/bm_array_union_numbers.rb +7 -0
  23. data/benchmark/bm_array_union_objects.rb +7 -0
  24. data/benchmark/bm_array_union_strings.rb +7 -0
  25. data/benchmark/bm_array_uniq_bang_numbers.rb +5 -0
  26. data/benchmark/bm_array_uniq_bang_objects.rb +5 -0
  27. data/benchmark/bm_array_uniq_bang_strings.rb +5 -0
  28. data/benchmark/bm_array_uniq_numbers.rb +5 -0
  29. data/benchmark/bm_array_uniq_objects.rb +5 -0
  30. data/benchmark/bm_array_uniq_strings.rb +5 -0
  31. data/benchmark/bm_dispatch_bind_table.rb +57 -0
  32. data/benchmark/bm_dispatch_code_gen.rb +65 -0
  33. data/benchmark/bm_dispatch_code_gen_if.rb +64 -0
  34. data/benchmark/bm_dispatch_hardcoded.rb +44 -0
  35. data/benchmark/bm_dispatch_send.rb +38 -0
  36. data/benchmark/bm_dispatch_send_table.rb +57 -0
  37. data/benchmark/bm_hash_assoc_object.rb +11 -0
  38. data/benchmark/bm_hash_assoc_string.rb +9 -0
  39. data/benchmark/bm_hash_clone_object.rb +9 -0
  40. data/benchmark/bm_hash_clone_string.rb +9 -0
  41. data/benchmark/bm_hash_delete_object.rb +11 -0
  42. data/benchmark/bm_hash_delete_string.rb +9 -0
  43. data/benchmark/bm_hash_each_key_object.rb +9 -0
  44. data/benchmark/bm_hash_each_key_string.rb +9 -0
  45. data/benchmark/bm_hash_each_object.rb +9 -0
  46. data/benchmark/bm_hash_each_string.rb +9 -0
  47. data/benchmark/bm_hash_each_value_object.rb +9 -0
  48. data/benchmark/bm_hash_each_value_string.rb +9 -0
  49. data/benchmark/bm_hash_element_reference_object.rb +11 -0
  50. data/benchmark/bm_hash_element_reference_string.rb +9 -0
  51. data/benchmark/bm_hash_element_set_object.rb +5 -0
  52. data/benchmark/bm_hash_element_set_string.rb +5 -0
  53. data/benchmark/bm_hash_equal_value_object.rb +14 -0
  54. data/benchmark/bm_hash_equal_value_string.rb +11 -0
  55. data/benchmark/bm_hash_fetch_object.rb +11 -0
  56. data/benchmark/bm_hash_fetch_string.rb +9 -0
  57. data/benchmark/bm_hash_flatten_object.rb +9 -0
  58. data/benchmark/bm_hash_flatten_string.rb +9 -0
  59. data/benchmark/bm_hash_has_key_object.rb +11 -0
  60. data/benchmark/bm_hash_has_key_string.rb +9 -0
  61. data/benchmark/bm_hash_has_value_object.rb +9 -0
  62. data/benchmark/bm_hash_has_value_string.rb +9 -0
  63. data/benchmark/bm_hash_hash_object.rb +9 -0
  64. data/benchmark/bm_hash_hash_string.rb +9 -0
  65. data/benchmark/bm_hash_inspect_object.rb +9 -0
  66. data/benchmark/bm_hash_inspect_string.rb +9 -0
  67. data/benchmark/bm_hash_invert_object.rb +9 -0
  68. data/benchmark/bm_hash_invert_string.rb +9 -0
  69. data/benchmark/bm_hash_keep_if_object.rb +9 -0
  70. data/benchmark/bm_hash_keep_if_string.rb +9 -0
  71. data/benchmark/bm_hash_key_object.rb +9 -0
  72. data/benchmark/bm_hash_key_string.rb +9 -0
  73. data/benchmark/bm_hash_keys_object.rb +9 -0
  74. data/benchmark/bm_hash_keys_string.rb +9 -0
  75. data/benchmark/bm_hash_literal_mixed_large.rb +3 -0
  76. data/benchmark/bm_hash_literal_mixed_small.rb +3 -0
  77. data/benchmark/bm_hash_literal_object_large.rb +4 -0
  78. data/benchmark/bm_hash_literal_object_small.rb +3 -0
  79. data/benchmark/bm_hash_literal_string_large.rb +4 -0
  80. data/benchmark/bm_hash_literal_string_small.rb +3 -0
  81. data/benchmark/bm_hash_merge_object.rb +22 -0
  82. data/benchmark/bm_hash_merge_string.rb +18 -0
  83. data/benchmark/bm_hash_rassoc_object.rb +9 -0
  84. data/benchmark/bm_hash_rassoc_string.rb +9 -0
  85. data/benchmark/bm_hash_rehash_object.rb +9 -0
  86. data/benchmark/bm_hash_rehash_string.rb +9 -0
  87. data/benchmark/bm_hash_reject_bang_object.rb +9 -0
  88. data/benchmark/bm_hash_reject_bang_string.rb +9 -0
  89. data/benchmark/bm_hash_reject_object.rb +9 -0
  90. data/benchmark/bm_hash_reject_string.rb +9 -0
  91. data/benchmark/bm_hash_replace_object.rb +18 -0
  92. data/benchmark/bm_hash_replace_string.rb +14 -0
  93. data/benchmark/bm_hash_select_bang_object.rb +9 -0
  94. data/benchmark/bm_hash_select_bang_string.rb +9 -0
  95. data/benchmark/bm_hash_select_object.rb +9 -0
  96. data/benchmark/bm_hash_select_string.rb +9 -0
  97. data/benchmark/bm_hash_shift_object.rb +10 -0
  98. data/benchmark/bm_hash_shift_string.rb +10 -0
  99. data/benchmark/bm_hash_to_a_object.rb +9 -0
  100. data/benchmark/bm_hash_to_a_string.rb +9 -0
  101. data/benchmark/bm_hash_to_h_object.rb +10 -0
  102. data/benchmark/bm_hash_to_h_string.rb +10 -0
  103. data/benchmark/bm_hash_values_object.rb +9 -0
  104. data/benchmark/bm_hash_values_string.rb +9 -0
  105. data/benchmark/run.rb +48 -0
  106. data/bin/opal-mspec +1 -1
  107. data/bin/opal-repl +4 -4
  108. data/docs/compiled_ruby.md +214 -56
  109. data/docs/configuring_gems.md +2 -2
  110. data/docs/faq.md +2 -2
  111. data/docs/getting_started.md +19 -2
  112. data/docs/jquery.md +5 -5
  113. data/docs/opal_parser.md +53 -0
  114. data/docs/unsupported_features.md +2 -2
  115. data/docs/upgrading.md +22 -0
  116. data/docs/using_sprockets.md +15 -0
  117. data/examples/rack/config.ru +13 -0
  118. data/examples/sinatra/config.ru +4 -5
  119. data/lib/mspec/opal/runner.rb +54 -11
  120. data/lib/opal.rb +1 -1
  121. data/lib/opal/builder.rb +1 -1
  122. data/lib/opal/builder_processors.rb +1 -1
  123. data/lib/opal/cli.rb +17 -13
  124. data/lib/opal/cli_options.rb +1 -1
  125. data/lib/opal/compiler.rb +12 -0
  126. data/lib/opal/config.rb +4 -0
  127. data/lib/opal/nodes/arglist.rb +5 -7
  128. data/lib/opal/nodes/call.rb +6 -1
  129. data/lib/opal/nodes/call_special.rb +74 -0
  130. data/lib/opal/nodes/def.rb +35 -28
  131. data/lib/opal/nodes/definitions.rb +3 -5
  132. data/lib/opal/nodes/for.rb +13 -0
  133. data/lib/opal/nodes/helpers.rb +15 -1
  134. data/lib/opal/nodes/if.rb +5 -5
  135. data/lib/opal/nodes/iter.rb +6 -1
  136. data/lib/opal/nodes/literal.rb +1 -1
  137. data/lib/opal/nodes/logic.rb +2 -2
  138. data/lib/opal/nodes/masgn.rb +1 -2
  139. data/lib/opal/nodes/module.rb +2 -1
  140. data/lib/opal/nodes/rescue.rb +10 -1
  141. data/lib/opal/nodes/scope.rb +8 -2
  142. data/lib/opal/nodes/singleton_class.rb +1 -1
  143. data/lib/opal/nodes/top.rb +11 -0
  144. data/lib/opal/nodes/variables.rb +4 -4
  145. data/lib/opal/parser.rb +21 -3
  146. data/lib/opal/parser/grammar.rb +3115 -2961
  147. data/lib/opal/parser/grammar.y +29 -6
  148. data/lib/opal/parser/lexer.rb +18 -8
  149. data/lib/opal/sprockets.rb +85 -0
  150. data/lib/opal/sprockets/processor.rb +11 -35
  151. data/lib/opal/sprockets/server.rb +3 -15
  152. data/lib/opal/version.rb +2 -2
  153. data/opal.gemspec +4 -4
  154. data/opal/README.md +9 -0
  155. data/opal/corelib/array.rb +433 -181
  156. data/opal/corelib/basic_object.rb +48 -4
  157. data/opal/corelib/boolean.rb +15 -6
  158. data/opal/corelib/class.rb +6 -5
  159. data/opal/corelib/comparable.rb +12 -0
  160. data/opal/corelib/complex.rb +282 -0
  161. data/opal/corelib/constants.rb +9 -0
  162. data/opal/corelib/enumerable.rb +83 -34
  163. data/opal/corelib/enumerator.rb +3 -1
  164. data/opal/corelib/error.rb +49 -10
  165. data/opal/corelib/file.rb +1 -0
  166. data/opal/corelib/hash.rb +353 -577
  167. data/opal/corelib/helpers.rb +20 -0
  168. data/opal/corelib/kernel.rb +114 -59
  169. data/opal/corelib/math.rb +470 -0
  170. data/opal/corelib/method.rb +11 -2
  171. data/opal/corelib/module.rb +96 -96
  172. data/opal/corelib/{nil_class.rb → nil.rb} +20 -1
  173. data/opal/corelib/number.rb +751 -0
  174. data/opal/corelib/numeric.rb +77 -437
  175. data/opal/corelib/proc.rb +81 -1
  176. data/opal/corelib/process.rb +27 -0
  177. data/opal/corelib/rational.rb +358 -0
  178. data/opal/corelib/regexp.rb +156 -27
  179. data/opal/corelib/runtime.js +724 -335
  180. data/opal/corelib/string.rb +93 -104
  181. data/opal/corelib/string/encoding.rb +177 -0
  182. data/opal/corelib/string/inheritance.rb +2 -0
  183. data/opal/corelib/struct.rb +105 -18
  184. data/opal/corelib/time.rb +267 -146
  185. data/opal/corelib/unsupported.rb +216 -0
  186. data/opal/corelib/variables.rb +0 -6
  187. data/opal/opal.rb +8 -22
  188. data/opal/opal/base.rb +9 -0
  189. data/opal/opal/mini.rb +17 -0
  190. data/spec/README.md +1 -1
  191. data/spec/filters/bugs/array.rb +38 -136
  192. data/spec/filters/bugs/{basic_object.rb → basicobject.rb} +14 -15
  193. data/spec/filters/bugs/class.rb +6 -12
  194. data/spec/filters/bugs/complex.rb +3 -0
  195. data/spec/filters/bugs/date.rb +162 -10
  196. data/spec/filters/bugs/enumerable.rb +31 -58
  197. data/spec/filters/bugs/enumerator.rb +42 -0
  198. data/spec/filters/bugs/exception.rb +66 -10
  199. data/spec/filters/bugs/float.rb +17 -0
  200. data/spec/filters/bugs/hash.rb +11 -97
  201. data/spec/filters/bugs/inheritance.rb +5 -0
  202. data/spec/filters/bugs/integer.rb +28 -0
  203. data/spec/filters/bugs/kernel.rb +304 -12
  204. data/spec/filters/bugs/language.rb +133 -399
  205. data/spec/filters/bugs/language_opal.rb +88 -0
  206. data/spec/filters/bugs/module.rb +203 -62
  207. data/spec/filters/bugs/numeric.rb +32 -0
  208. data/spec/filters/bugs/proc.rb +39 -0
  209. data/spec/filters/bugs/range.rb +148 -0
  210. data/spec/filters/bugs/regexp.rb +168 -0
  211. data/spec/filters/bugs/set.rb +46 -3
  212. data/spec/filters/bugs/singleton.rb +1 -2
  213. data/spec/filters/bugs/string.rb +59 -90
  214. data/spec/filters/bugs/strscan.rb +80 -0
  215. data/spec/filters/bugs/struct.rb +10 -20
  216. data/spec/filters/bugs/time.rb +17 -184
  217. data/spec/filters/bugs/unboundmethod.rb +22 -0
  218. data/spec/filters/unsupported/array.rb +163 -0
  219. data/spec/filters/unsupported/basicobject.rb +14 -0
  220. data/spec/filters/unsupported/bignum.rb +46 -0
  221. data/spec/filters/unsupported/class.rb +4 -0
  222. data/spec/filters/unsupported/delegator.rb +5 -0
  223. data/spec/filters/unsupported/enumerable.rb +11 -0
  224. data/spec/filters/unsupported/enumerator.rb +8 -9
  225. data/spec/filters/unsupported/fixnum.rb +14 -0
  226. data/spec/filters/unsupported/float.rb +41 -7
  227. data/spec/filters/unsupported/freeze.rb +45 -0
  228. data/spec/filters/unsupported/hash.rb +50 -0
  229. data/spec/filters/unsupported/integer.rb +3 -0
  230. data/spec/filters/unsupported/kernel.rb +31 -0
  231. data/spec/filters/unsupported/language.rb +17 -0
  232. data/spec/filters/unsupported/matchdata.rb +30 -0
  233. data/spec/filters/unsupported/math.rb +3 -0
  234. data/spec/filters/unsupported/module.rb +5 -3
  235. data/spec/filters/unsupported/pathname.rb +3 -0
  236. data/spec/filters/unsupported/privacy.rb +136 -0
  237. data/spec/filters/unsupported/proc.rb +3 -0
  238. data/spec/filters/unsupported/regexp.rb +59 -0
  239. data/spec/filters/unsupported/set.rb +4 -0
  240. data/spec/filters/unsupported/{marshal.rb → singleton.rb} +4 -2
  241. data/spec/filters/unsupported/{mutable_strings.rb → string.rb} +456 -336
  242. data/spec/filters/unsupported/struct.rb +3 -0
  243. data/spec/filters/unsupported/symbol.rb +5 -0
  244. data/spec/filters/unsupported/taint.rb +16 -0
  245. data/spec/filters/unsupported/thread.rb +5 -0
  246. data/spec/filters/unsupported/time.rb +197 -16
  247. data/spec/lib/cli_spec.rb +14 -4
  248. data/spec/lib/compiler_spec.rb +9 -1
  249. data/spec/lib/parser/call_spec.rb +18 -0
  250. data/spec/lib/parser/not_spec.rb +2 -8
  251. data/spec/lib/sprockets_spec.rb +24 -0
  252. data/spec/opal/core/array/intersection_spec.rb +38 -0
  253. data/spec/opal/core/array/minus_spec.rb +38 -0
  254. data/spec/opal/core/array/union_spec.rb +38 -0
  255. data/spec/opal/core/array/uniq_spec.rb +49 -0
  256. data/spec/opal/core/exception_spec.rb +7 -0
  257. data/spec/opal/core/fixtures/require_tree_with_dot/file 1.rb +1 -0
  258. data/spec/opal/core/fixtures/require_tree_with_dot/file 2.rb +1 -0
  259. data/spec/opal/core/fixtures/require_tree_with_dot/file 3.rb +1 -0
  260. data/spec/opal/core/fixtures/require_tree_with_dot/index.rb +3 -0
  261. data/spec/opal/core/hash/internals_spec.rb +332 -0
  262. data/spec/opal/core/helpers_spec.rb +14 -0
  263. data/spec/opal/core/kernel/freeze_spec.rb +1 -1
  264. data/spec/opal/core/kernel/raise_spec.rb +13 -0
  265. data/spec/opal/core/kernel/require_tree_spec.rb +9 -0
  266. data/spec/opal/core/language/class_spec.rb +55 -0
  267. data/spec/opal/core/language/fixtures/send.rb +1 -0
  268. data/spec/opal/core/language/keyword_arguments_spec.rb +11 -0
  269. data/spec/opal/core/language/send_spec.rb +5 -0
  270. data/spec/opal/core/method/to_proc_spec.rb +28 -0
  271. data/spec/opal/core/module/name_spec.rb +0 -17
  272. data/spec/opal/core/runtime/bridged_classes_spec.rb +2 -2
  273. data/spec/opal/core/runtime/eval_spec.rb +1 -1
  274. data/spec/opal/core/runtime/method_missing_spec.rb +6 -0
  275. data/spec/opal/core/runtime_spec.rb +51 -0
  276. data/spec/opal/stdlib/js_spec.rb +66 -0
  277. data/spec/opal/stdlib/native/hash_spec.rb +36 -0
  278. data/spec/rubyspecs +152 -273
  279. data/spec/spec_helper.rb +10 -11
  280. data/stdlib/base64.rb +9 -9
  281. data/stdlib/benchmark.rb +551 -4
  282. data/stdlib/console.rb +94 -0
  283. data/stdlib/date.rb +1 -1
  284. data/stdlib/encoding.rb +1 -170
  285. data/stdlib/js.rb +56 -0
  286. data/stdlib/json.rb +9 -14
  287. data/stdlib/math.rb +1 -370
  288. data/stdlib/native.rb +133 -63
  289. data/stdlib/nodejs/file.rb +5 -0
  290. data/stdlib/nodejs/fileutils.rb +13 -6
  291. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +1 -1
  292. data/stdlib/opal-parser.rb +1 -2
  293. data/stdlib/ostruct.rb +65 -6
  294. data/stdlib/pp.rb +2 -4
  295. data/stdlib/rbconfig.rb +1 -3
  296. data/stdlib/strscan.rb +164 -28
  297. data/tasks/benchmarking.rake +88 -0
  298. data/tasks/testing.rake +181 -55
  299. data/{lib/mspec/opal/special_calls.rb → tasks/testing/mspec_special_calls.rb} +1 -1
  300. data/{lib/mspec/opal/sprockets.js → tasks/testing/phantomjs1-sprockets.js} +17 -6
  301. data/test/opal/test_keyword.rb +590 -0
  302. data/vendored-minitest/minitest.rb +2 -2
  303. data/vendored-minitest/test/unit.rb +5 -0
  304. metadata +229 -62
  305. data/benchmarks/operators.rb +0 -11
  306. data/benchmarks/prova.js.rb +0 -13
  307. data/docs/libraries.md +0 -36
  308. data/lib/mspec/opal/new.html.erb +0 -1
  309. data/lib/mspec/opal/rake_task.rb +0 -248
  310. data/opal/corelib/match_data.rb +0 -128
  311. data/spec/filters/bugs/math.rb +0 -95
  312. data/spec/filters/bugs/nil.rb +0 -7
  313. data/spec/filters/bugs/opal.rb +0 -9
  314. data/spec/filters/bugs/regular_expressions.rb +0 -41
  315. data/spec/filters/bugs/stringscanner.rb +0 -33
  316. data/spec/filters/unsupported/encoding.rb +0 -102
  317. data/spec/filters/unsupported/frozen.rb +0 -92
  318. data/spec/filters/unsupported/hash_compare_by_identity.rb +0 -16
  319. data/spec/filters/unsupported/integer_size.rb +0 -59
  320. data/spec/filters/unsupported/method_added.rb +0 -10
  321. data/spec/filters/unsupported/private_constants.rb +0 -30
  322. data/spec/filters/unsupported/private_methods.rb +0 -55
  323. data/spec/filters/unsupported/random.rb +0 -4
  324. data/spec/filters/unsupported/rational_numbers.rb +0 -4
  325. data/spec/filters/unsupported/regular_expressions.rb +0 -137
  326. data/spec/filters/unsupported/ruby_exe.rb +0 -5
  327. data/spec/filters/unsupported/symbols.rb +0 -17
  328. data/spec/filters/unsupported/tainted.rb +0 -180
  329. data/spec/filters/unsupported/trusted.rb +0 -88
  330. data/stdlib/process.rb +0 -10
  331. data/tasks/documenting.rake +0 -37
@@ -1,430 +1,164 @@
1
1
  opal_filter "language" do
2
- fails "The alias keyword operates on methods with splat arguments defined in a superclass"
3
- fails "The alias keyword operates on the object's metaclass when used in instance_eval"
2
+ fails "A class definition allows the declaration of class variables in a class method"
3
+ fails "A class definition allows the declaration of class variables in an instance method"
4
+ fails "A class definition allows the declaration of class variables in the body"
5
+ fails "A class definition allows using self as the superclass if self is a class"
6
+ fails "A class definition extending an object (sclass) can use return to cause the enclosing method to return"
7
+ fails "A class definition extending an object (sclass) raises a TypeError when trying to extend numbers"
8
+ fails "A class definition has no class variables"
9
+ fails "A class definition raises a TypeError if inheriting from a metaclass"
10
+ fails "A class definition raises TypeError if any constant qualifying the class is not a Module"
11
+ fails "A class definition raises TypeError if constant given as class name exists and is not a Module"
12
+ fails "A class definition raises TypeError if the constant qualifying the class is nil"
13
+ fails "A class variable defined in a module can be accessed from classes that extend the module"
14
+ fails "A class variable defined in a module can be accessed from modules that extend the module"
15
+ fails "A class variable defined in a module can be accessed inside the class using the module methods"
16
+ fails "A class variable defined in a module is defined in the extended module"
17
+ fails "A class variable defined in a module is not defined in the extending module"
18
+ fails "A class variable defined in a module is not defined in these classes"
19
+ fails "A class variable defined in a module is only updated in the module a method defined in the module is used"
20
+ fails "A class variable defined in a module is updated in the class when a Method defined in the class is used"
21
+ fails "A constant on a metaclass appears in the metaclass constant list"
22
+ fails "A constant on a metaclass cannot be accessed via object::CONST"
23
+ fails "A constant on a metaclass does not appear in the object's class constant list"
24
+ fails "A constant on a metaclass is not defined in the metaclass opener's scope"
25
+ fails "A constant on a metaclass is not defined on the object's class"
26
+ fails "A constant on a metaclass is not preserved when the object is duped"
27
+ fails "A constant on a metaclass raises a NameError for anonymous_module::CONST"
28
+ fails "A constant on a singleton class cannot be accessed via object::CONST"
29
+ fails "A constant on a singleton class does not appear in the object's class constant list"
30
+ fails "A constant on a singleton class is not defined in the singleton class opener's scope"
31
+ fails "A constant on a singleton class is not defined on the object's class"
32
+ fails "A constant on a singleton class is not preserved when the object is duped"
33
+ fails "A constant on a singleton class raises a NameError for anonymous_module::CONST"
34
+ fails "A method call evaluates block pass after arguments"
35
+ fails "A number literal can be a binary literal with trailing 'i' to represent a Complex"
36
+ fails "A number literal can be a binary literal with trailing 'r' to represent a Rational"
37
+ fails "A number literal can be a decimal literal with trailing 'i' to represent a Complex"
38
+ fails "A number literal can be a decimal literal with trailing 'r' to represent a Rational"
39
+ fails "A number literal can be a hexadecimal literal with trailing 'i' to represent a Complex"
40
+ fails "A number literal can be a hexadecimal literal with trailing 'r' to represent a Rational"
41
+ fails "A number literal can be a octal literal with trailing 'i' to represent a Complex"
42
+ fails "A number literal can be an integer literal with trailing 'i' to represent a Complex"
43
+ fails "A number literal can be an integer literal with trailing 'r' to represent a Rational"
44
+ fails "A number literal can be an octal literal with trailing 'r' to represent a Rational"
45
+ fails "A singleton class doesn't have singleton class"
46
+ fails "A singleton class for BasicObject has Class as it's superclass"
47
+ fails "A singleton class for BasicObject has the proper level of superclass for Class"
48
+ fails "A singleton class inherits from Class for classes"
49
+ fails "A singleton class is a subclass of a superclass's singleton class"
50
+ fails "A singleton class is a subclass of Class's singleton class"
51
+ fails "A singleton class is a subclass of the same level of Class's singleton class"
52
+ fails "A singleton class is a subclass of the same level of superclass's singleton class"
53
+ fails "A singleton class raises a TypeError for Fixnum's"
54
+ fails "A singleton class raises a TypeError for symbols"
55
+ fails "An ensure block inside a begin block is executed even when a symbol is thrown in it's corresponding begin block"
56
+ fails "An ensure block inside a method is executed even when a symbol is thrown in the method"
57
+ fails "calling methods on the metaclass calls a method defined on the metaclass of the metaclass"
58
+ fails "Class methods of a singleton class for a class include class methods of Class"
59
+ fails "Class methods of a singleton class for a class include instance methods of the singleton class of Class"
60
+ fails "Class methods of a singleton class for a singleton class include class methods of the singleton class of Class"
61
+ fails "Instance methods of a singleton class for a singleton class includes instance methods of the singleton class of Class"
62
+ fails "Instantiating a singleton class raises a TypeError when allocate is called"
63
+ fails "Instantiating a singleton class raises a TypeError when new is called"
64
+ fails "not() returns false if the argument is true"
65
+ fails "not() returns true if the argument is false"
66
+ fails "not() returns true if the argument is nil"
67
+ fails "Operators * / % are left-associative"
68
+ fails "self in a metaclass body (class << obj) raises a TypeError for numbers"
69
+ fails "self in a metaclass body (class << obj) raises a TypeError for symbols"
70
+ fails "The alias keyword is not allowed against Fixnum or String instances"
4
71
  fails "The alias keyword operates on methods defined via attr, attr_reader, and attr_accessor"
5
72
  fails "The alias keyword operates on methods with splat arguments defined in a superclass using text block for class eval"
6
- fails "The alias keyword is not allowed against Fixnum or String instances"
7
- fails "The alias keyword adds the new method to the list of public methods"
8
- fails "The alias keyword adds the new method to the list of methods"
9
-
10
- fails "The unpacking splat operator (*) when applied to a non-Array value attempts to coerce it to Array if the object respond_to?(:to_a)"
11
- fails "The unpacking splat operator (*) when applied to a non-Array value attempts to coerce it to Array if the object respond_to?(:to_ary)"
12
- fails "The unpacking splat operator (*) returns a new array containing the same values when applied to an array inside an empty array"
13
- fails "The unpacking splat operator (*) unpacks the start and count arguments in an array slice assignment"
14
- fails "The unpacking splat operator (*) unpacks arguments as if they were listed statically"
15
-
16
- fails "The BEGIN keyword runs in a shared scope"
73
+ fails "The alias keyword operates on the object's metaclass when used in instance_eval"
17
74
  fails "The BEGIN keyword accesses variables outside the eval scope"
18
75
  fails "The BEGIN keyword must appear in a top-level context"
19
76
  fails "The BEGIN keyword runs first in a given code unit"
77
+ fails "The BEGIN keyword runs in a shared scope"
20
78
  fails "The BEGIN keyword runs multiple begins in FIFO order"
21
-
22
- fails "A block arguments with _ assigns the first variable named"
23
- fails "A block arguments with _ extracts arguments with _"
24
- fails "A block taking |*a| arguments does not call #to_ary to convert a single yielded object to an Array"
25
- fails "A block taking |*| arguments does not call #to_ary to convert a single yielded object to an Array"
26
- fails "A block allows for a leading space before the arguments"
27
- fails "A block taking |a, b| arguments assigns 'nil' and 'nil' to the arguments when a single, empty Array is yielded"
28
- fails "A block taking |a, b| arguments assigns the element of a single element Array to the first argument"
29
- fails "A block taking |a, b| arguments destructures a single Array value yielded"
30
- fails "A block taking |a, b| arguments calls #to_ary to convert a single yielded object to an Array"
31
- fails "A block taking |a, b| arguments does not call #to_ary if the single yielded object is an Array"
32
- fails "A block taking |a, b| arguments raises an TypeError if #to_ary does not return an Array"
33
- fails "A block taking |a, *b| arguments assigns 'nil' and '[]' to the arguments when a single, empty Array is yielded"
34
- fails "A block taking |a, *b| arguments assigns the element of a single element Array to the first argument"
35
- fails "A block taking |a, *b| arguments destructures a single Array value assigning the remaining values to the rest argument"
36
- fails "A block taking |a, *b| arguments calls #to_ary to convert a single yielded object to an Array"
37
- fails "A block taking |a, *b| arguments does not call #to_ary if the single yielded object is an Array"
38
- fails "A block taking |a, *b| arguments raises an TypeError if #to_ary does not return an Array"
39
- fails "A block taking |*| arguments does not raise an exception when no values are yielded"
40
- fails "A block taking |*| arguments does not raise an exception when values are yielded"
41
- fails "A block taking |*| arguments does not call #to_ary if the single yielded object is an Array"
42
- fails "A block taking |*| arguments does not call #to_ary if the object does not respond to #to_ary"
43
- fails "A block taking |*a| arguments does not call #to_ary if the single yielded object is an Array"
44
- fails "A block taking |a, | arguments assigns nil to the argument when no values are yielded"
45
- fails "A block taking |a, | arguments assgins the argument a single value yielded"
46
- fails "A block taking |a, | arguments assigns the argument the first value yielded"
47
- fails "A block taking |a, | arguments assigns the argument the first of several values yielded when it is an Array"
48
- fails "A block taking |a, | arguments assigns nil to the argument when passed an empty Array"
49
- fails "A block taking |a, | arguments assigns the argument the first element of the Array when passed a single Array"
50
- fails "A block taking |a, | arguments calls #to_ary to convert a single yielded object to an Array"
51
- fails "A block taking |a, | arguments does not call #to_ary if the single yielded object is an Array"
52
- fails "A block taking |a, | arguments does not call #to_ary if the object does not respond to #to_ary"
53
- fails "A block taking |a, | arguments raises an TypeError if #to_ary does not return an Array"
54
- fails "A block taking |(a, b)| arguments calls #to_ary to convert a single yielded object to an Array"
55
- fails "A block taking |(a, b)| arguments does not call #to_ary if the single yielded object is an Array"
56
- fails "A block taking |(a, b)| arguments raises an TypeError if #to_ary does not return an Array"
57
- fails "A block taking |(a, b), c| arguments assigns nil to the arguments when yielded no values"
58
- fails "A block taking |(a, b), c| arguments destructures a single one-level Array value yielded"
59
- fails "A block taking |(a, b), c| arguments destructures a single multi-level Array value yielded"
60
- fails "A block taking |(a, b), c| arguments calls #to_ary to convert a single yielded object to an Array"
61
- fails "A block taking |(a, b), c| arguments does not call #to_ary if the single yielded object is an Array"
62
- fails "A block taking |(a, b), c| arguments does not call #to_ary if the object does not respond to #to_ary"
63
- fails "A block taking |(a, b), c| arguments raises an TypeError if #to_ary does not return an Array"
64
- fails "A block taking nested |a, (b, (c, d))| assigns nil to the arguments when yielded no values"
65
- fails "A block taking nested |a, (b, (c, d))| destructures separate yielded values"
66
- fails "A block taking nested |a, (b, (c, d))| destructures a single multi-level Array value yielded"
67
- fails "A block taking nested |a, (b, (c, d))| destructures a single multi-level Array value yielded"
68
- fails "A block taking nested |a, ((b, c), d)| assigns nil to the arguments when yielded no values"
69
- fails "A block taking nested |a, ((b, c), d)| destructures separate yielded values"
70
- fails "A block taking nested |a, ((b, c), d)| destructures a single multi-level Array value yielded"
71
- fails "A block taking nested |a, ((b, c), d)| destructures a single multi-level Array value yielded"
72
-
73
- fails "Break inside a while loop with a splat wraps a non-Array in an Array"
74
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from the scope creating the block"
75
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when invoking the block from a method"
76
- fails "The break statement in a captured block when the invocation of the scope creating the block is still active raises a LocalJumpError when yielding to the block"
77
- fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when calling the block from a method"
78
- fails "The break statement in a captured block from a scope that has returned raises a LocalJumpError when yielding to the block"
79
- fails "The break statement in a lambda when the invocation of the scope creating the lambda is still active raises a LocalJumpError when yielding to a lambda passed as a block argument"
80
- fails "The break statement in a lambda from a scope that has returned raises a LocalJumpError when yielding to a lambda passed as a block argument"
81
- fails "Executing break from within a block returns from the original invoking method even in case of chained calls"
82
-
83
- fails "A class variable can be accessed from a subclass"
84
- fails "A class variable is set in the superclass"
85
- fails "A class variable defined in a module can be accessed from classes that extend the module"
86
- fails "A class variable defined in a module is not defined in these classes"
87
- fails "A class variable defined in a module is only updated in the module a method defined in the module is used"
88
- fails "A class variable defined in a module is updated in the class when a Method defined in the class is used"
89
- fails "A class variable defined in a module can be accessed inside the class using the module methods"
90
- fails "A class variable defined in a module can be accessed from modules that extend the module"
91
- fails "A class variable defined in a module is defined in the extended module"
92
- fails "A class variable defined in a module is not defined in the extending module"
93
-
94
- fails "A class definition raises TypeError if the constant qualifying the class is nil"
95
- fails "A class definition raises TypeError if any constant qualifying the class is not a Module"
96
- fails "A class definition allows using self as the superclass if self is a class"
97
- fails "A class definition raises TypeError if constant given as class name exists and is not a Module"
98
- fails "A class definition raises a TypeError if inheriting from a metaclass"
99
- fails "A class definition extending an object (sclass) raises a TypeError when trying to extend numbers"
100
- fails "A class definition extending an object (sclass) allows accessing the block of the original scope"
101
- fails "A class definition extending an object (sclass) can use return to cause the enclosing method to return"
102
- fails "An outer class definition contains the inner classes"
103
- fails "An outer class definition contains the inner classes"
104
- fails "A class definition stores instance variables defined in the class body in the class object"
105
- fails "Reopening a class adds new methods to subclasses"
106
-
107
- fails "Constant resolution within methods with ||= assignes constant if previously undefined"
108
- fails "Constant resolution within methods with dynamically assigned constants does not search the lexical scope of qualifying modules"
109
- fails "Constant resolution within methods with dynamically assigned constants returns the updated value when a constant is reassigned"
110
- fails "Constant resolution within methods with dynamically assigned constants searches Object as a lexical scope only if Object is explicitly opened"
111
- fails "Constant resolution within methods with dynamically assigned constants searches the superclass chain"
112
- fails "Constant resolution within methods with dynamically assigned constants searches a module included in the superclass"
113
- fails "Constant resolution within methods with dynamically assigned constants searches the superclass before a module included in the superclass"
114
- fails "Constant resolution within methods with statically assigned constants does not search the lexical scope of qualifying modules"
115
- fails "Constant resolution within methods with statically assigned constants searches Object as a lexical scope only if Object is explicitly opened"
116
- fails "Constant resolution within methods with statically assigned constants searches the lexical scope of the method not the receiver's immediate class"
117
- fails "Constant resolution within methods sends #const_missing to the original class or module scope"
118
- fails "Literal (A::X) constant resolution with dynamically assigned constants evaluates the right hand side before evaluating a constant path"
119
- fails "Literal (A::X) constant resolution with dynamically assigned constants does not search the singleton class of the class or module"
120
- fails "Literal (A::X) constant resolution with dynamically assigned constants searches the superclass chain"
121
- fails "Literal (A::X) constant resolution with dynamically assigned constants searches a module included in the superclass"
122
- fails "Literal (A::X) constant resolution with dynamically assigned constants searches the superclass before a module included in the superclass"
123
- fails "Literal (A::X) constant resolution with dynamically assigned constants searches a module included in the immediate class before the superclass"
124
- fails "Literal (A::X) constant resolution with statically assigned constants does not search the singleton class of the class or module"
125
- fails "Literal (A::X) constant resolution raises a TypeError if a non-class or non-module qualifier is given"
126
-
127
-
128
- fails "The def keyword within a closure looks outside the closure for the visibility"
129
- fails "a method definition that sets more than one default parameter all to the same value treats the argument after the multi-parameter normally"
130
- fails "a method definition that sets more than one default parameter all to the same value only allows overriding the default value of the first such parameter in each set"
131
- fails "A method definition in an eval creates a singleton method"
132
- fails "A method definition in an eval creates a class method"
133
- fails "A method definition in an eval creates an instance method"
134
- fails "A method definition inside an instance_eval creates a class method when the receiver is a class"
135
- fails "A method definition inside a metaclass scope raises RuntimeError if frozen"
136
- fails "A singleton method defined with extreme default arguments may use a lambda as a default"
137
- fails "A singleton method defined with extreme default arguments may use preceding arguments as defaults"
138
- fails "A singleton method defined with extreme default arguments evaluates the defaults in the singleton scope"
139
- fails "A singleton method defined with extreme default arguments may use an fcall as a default"
140
- fails "A singleton method defined with extreme default arguments may use a method definition as a default"
141
- fails "A method defined with extreme default arguments may use an fcall as a default"
142
- fails "A method defined with extreme default arguments can redefine itself when the default is evaluated"
143
- fails "Redefining a singleton method does not inherit a previously set visibility "
144
- fails "Redefining a singleton method does not inherit a previously set visibility "
145
- fails "A singleton method definition raises RuntimeError if frozen"
146
- fails "A singleton method definition can be declared for a class variable"
147
- fails "A singleton method definition can be declared for a global variable"
148
- fails "A singleton method definition can be declared for an instance variable"
149
- fails "A singleton method definition can be declared for a local variable"
150
- fails "An instance method with keyword arguments when there is a single keyword argument raises an argument error when an unknown keyword argument is provided"
151
-
79
+ fails "The defined? keyword for a scoped constant does not call .const_missing if the constant is not defined"
152
80
  fails "The defined? keyword for a scoped constant returns nil when an undefined constant is scoped to a defined constant"
81
+ fails "The defined? keyword for a simple constant does not call Object.const_missing if the constant is not defined"
82
+ fails "The defined? keyword for a simple constant returns 'constant' for a constant defined in an included module"
83
+ fails "The defined? keyword for a simple constant returns 'constant' for an included module"
84
+ fails "The defined? keyword for a simple constant returns 'constant' when the constant is defined"
85
+ fails "The defined? keyword for a simple constant returns nil when the constant is not defined"
153
86
  fails "The defined? keyword for a top-level scoped constant returns nil when an undefined constant is scoped to a defined constant"
154
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset instance variable"
155
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset global variable"
156
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset instance variable"
87
+ fails "The defined? keyword for an expression returns nil for an expression with != and an undefined method"
88
+ fails "The defined? keyword for an expression returns nil for an expression with !~ and an undefined method"
89
+ fails "The defined? keyword for an expression returns nil for an expression with == and an undefined method"
90
+ fails "The defined? keyword for an expression with logical connectives does not propagate an exception raised by a method in a 'not' expression"
91
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an undefined method"
92
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset class variable"
157
93
  fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset global variable"
94
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset instance variable"
95
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an undefined method"
158
96
  fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset class variable"
159
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an unset class variable"
160
- fails "The defined? keyword for loop expressions returns 'expression' for a 'for' expression"
161
- fails "The defined? keyword for loop expressions returns 'expression' for a 'retry' expression"
162
- fails "The defined? keyword for literals for a literal Array returns nil if one element is not defined"
97
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset global variable"
98
+ fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an unset instance variable"
163
99
  fails "The defined? keyword for literals for a literal Array returns nil if all elements are not defined"
100
+ fails "The defined? keyword for literals for a literal Array returns nil if one element is not defined"
101
+ fails "The defined? keyword for loop expressions returns 'expression' for a 'retry' expression"
102
+ fails "The defined? keyword for super for a method taking arguments returns nil from a #define_method when no superclass method exists"
103
+ fails "The defined? keyword for super for a method taking arguments returns nil from a block in a #define_method when no superclass method exists"
104
+ fails "The defined? keyword for super for a method taking arguments returns nil from a block when no superclass method exists"
105
+ fails "The defined? keyword for super for a method taking arguments returns nil when no superclass method exists"
106
+ fails "The defined? keyword for super for a method taking no arguments returns nil from a #define_method when no superclass method exists"
107
+ fails "The defined? keyword for super for a method taking no arguments returns nil from a block in a #define_method when no superclass method exists"
108
+ fails "The defined? keyword for super for a method taking no arguments returns nil from a block when no superclass method exists"
109
+ fails "The defined? keyword for super for a method taking no arguments returns nil when no superclass method exists"
110
+ fails "The defined? keyword for super returns nil when a superclass undef's the method"
111
+ fails "The defined? keyword for variables returns 'instance-variable' for an instance variable that has been assigned to nil"
164
112
  fails "The defined? keyword for variables returns nil for a global variable that has been read but not assigned to"
165
-
166
- fails "An ensure block inside a begin block is executed even when a symbol is thrown in it's corresponding begin block"
167
- fails "An ensure block inside a method is executed even when a symbol is thrown in the method"
168
-
169
- fails "`` returns the output of the executed sub-process"
170
- fails "%x is the same as ``"
171
-
172
- fails "The for expression repeats current iteration with 'redo'"
173
- fails "The for expression starts the next iteration with 'next'"
174
- fails "The for expression allows 'break' to have an argument which becomes the value of the for expression"
175
- fails "The for expression breaks out of a loop upon 'break', returning nil"
176
- fails "The for expression returns expr"
177
- fails "The for expression executes code in containing variable scope with 'do'"
178
- fails "The for expression executes code in containing variable scope"
179
- fails "The for expression allows body begin on the same line if do is used"
180
- fails "The for expression optionally takes a 'do' after the expression"
181
- fails "The for expression yields only as many values as there are arguments"
182
- fails "The for expression allows a constant as an iterator name"
183
- fails "The for expression allows a class variable as an iterator name"
184
- fails "The for expression allows an instance variable as an iterator name"
185
- fails "The for expression iterates over any object responding to 'each'"
186
- fails "The for expression iterates over an Hash passing each key-value pair to the block"
187
- fails "The for expression iterates over an Enumerable passing each element to the block"
188
-
189
- fails "The if expression with a boolean range ('flip-flop' operator) keeps flip-flops from interfering"
190
- fails "The if expression with a boolean range ('flip-flop' operator) scopes state by flip-flop"
191
- fails "The if expression with a boolean range ('flip-flop' operator) evaluates the second conditions lazily with exclusive-end range"
192
- fails "The if expression with a boolean range ('flip-flop' operator) evaluates the second conditions lazily with inclusive-end range"
113
+ fails "The defined? keyword for variables when a Regexp matches a String returns nil for non-captures"
114
+ fails "The defined? keyword for variables when a String matches a Regexp returns nil for non-captures"
115
+ fails "The defined? keyword for yield returns nil if no block is passed to a method not taking a block parameter"
116
+ fails "The defined? keyword for yield returns nil if no block is passed to a method taking a block parameter"
117
+ fails "The defined? keyword when called with a method name having a local variable as receiver returns nil if the variable does not exist"
118
+ fails "The defined? keyword when called with a method name having a method call as a receiver returns nil if evaluating the receiver raises an exception"
119
+ fails "The defined? keyword when called with a method name having a module as receiver returns nil if the class is not defined"
120
+ fails "The defined? keyword when called with a method name having a module as receiver returns nil if the subclass is not defined"
121
+ fails "The if expression with a boolean range ('flip-flop' operator) allows combining two flip-flops"
193
122
  fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with exclusive-end range"
194
123
  fails "The if expression with a boolean range ('flip-flop' operator) evaluates the first conditions lazily with inclusive-end range"
195
- fails "The if expression with a boolean range ('flip-flop' operator) allows combining two flip-flops"
124
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the second conditions lazily with exclusive-end range"
125
+ fails "The if expression with a boolean range ('flip-flop' operator) evaluates the second conditions lazily with inclusive-end range"
126
+ fails "The if expression with a boolean range ('flip-flop' operator) keeps flip-flops from interfering"
196
127
  fails "The if expression with a boolean range ('flip-flop' operator) mimics a sed conditional with a many-element exclusive-end range"
197
128
  fails "The if expression with a boolean range ('flip-flop' operator) mimics a sed conditional with a zero-element exclusive-end range"
198
129
  fails "The if expression with a boolean range ('flip-flop' operator) mimics an awk conditional with a many-element inclusive-end range"
199
130
  fails "The if expression with a boolean range ('flip-flop' operator) mimics an awk conditional with a single-element inclusive-end range"
200
-
201
- fails "The !~ operator evaluates as a call to !~"
202
- fails "The =~ operator calls the =~ method"
203
-
204
- fails "calling methods on the metaclass calls a method defined on the metaclass of the metaclass"
205
- fails "calling methods on the metaclass calls a method in deeper chains of metaclasses"
206
- fails "A constant on a metaclass is preserved when the object is cloned"
207
- fails "A constant on a metaclass is not preserved when the object is duped"
208
- fails "A constant on a metaclass does not appear in the object's class constant list"
209
- fails "A constant on a metaclass appears in the metaclass constant list"
210
- fails "A constant on a metaclass raises a NameError for anonymous_module::CONST"
211
- fails "A constant on a metaclass cannot be accessed via object::CONST"
212
- fails "A constant on a metaclass is not defined in the metaclass opener's scope"
213
- fails "A constant on a metaclass is not defined on the object's class"
214
- fails "self in a metaclass body (class << obj) raises a TypeError for symbols"
215
- fails "self in a metaclass body (class << obj) raises a TypeError for numbers"
216
-
217
- fails "The module keyword raises a TypeError if the constant in nil"
218
- fails "The module keyword creates a new module with a variable qualified constant name"
219
- fails "The module keyword creates a new module with a qualified constant name"
220
- fails "The module keyword creates a new module with a non-qualified constant name"
221
-
222
- fails "Assignment via next assigns splatted objects"
223
-
131
+ fails "The if expression with a boolean range ('flip-flop' operator) scopes state by flip-flop"
224
132
  fails "The or operator has a lower precedence than 'next' in 'next true or false'"
225
-
226
- fails "A method call evaluates block pass after arguments"
227
- fails "A method call evaluates arguments after receiver"
228
-
229
- fails "not() returns false if the argument is true"
230
- fails "not() returns true if the argument is false"
231
- fails "not() returns true if the argument is nil"
232
-
233
- fails "Operators or/and have higher precedence than if unless while until modifiers"
234
- fails "Operators = %= /= -= += |= &= >>= <<= *= &&= ||= **= have higher precedence than defined? operator"
235
- fails "Operators = %= /= -= += |= &= >>= <<= *= &&= ||= **= are right-associative"
236
- fails "Operators rescue has higher precedence than ="
237
- fails "Operators + - have higher precedence than >> <<"
238
- fails "Operators + - are left-associative"
239
- fails "Operators * / % are left-associative"
240
-
241
- fails "A Proc taking |(a, b)| arguments raises an TypeError if #to_ary does not return an Array"
242
- fails "A Proc taking |(a, b)| arguments calls #to_ary to convert a single passed object to an Array"
243
- fails "A Proc taking |(a, b)| arguments destructures a single Array value yielded"
244
- fails "A Proc taking |(a, b)| arguments raises an ArgumentError when passed no values"
245
- fails "A Proc taking |a, | arguments does not call #to_ary to convert a single passed object to an Array"
246
- fails "A Proc taking |a, | arguments does not destructure when passed a single Array"
247
- fails "A Proc taking |a, | arguments assigns the argument the value passed"
248
- fails "A Proc taking |a, | arguments raises an ArgumentError when passed more than one value"
249
- fails "A Proc taking |a, | arguments raises an ArgumentError when passed no values"
250
- fails "A Proc taking |*a| arguments does not call #to_ary to convert a single passed object to an Array"
251
- fails "A Proc taking |*| arguments does not call #to_ary to convert a single passed object to an Array"
252
- fails "A Proc taking |*| arguments does not raise an exception when passed multiple values"
253
- fails "A Proc taking |*| arguments does not raise an exception when passed no values"
254
- fails "A Proc taking |a, *b| arguments does not call #to_ary to convert a single passed object to an Array"
255
- fails "A Proc taking |a, *b| arguments raises an ArgumentError if passed no values"
256
- fails "A Proc taking |a, b| arguments does not call #to_ary to convert a single passed object to an Array"
257
- fails "A Proc taking |a, b| arguments raises an ArgumentError if passed one value"
258
- fails "A Proc taking |a, b| arguments raises an ArgumentError if passed no values"
259
- fails "A Proc taking |a| arguments raises an ArgumentError if no value is passed"
260
- fails "A Proc taking |a| arguments does not call #to_ary to convert a single passed object to an Array"
261
- fails "A Proc taking || arguments raises an ArgumentError if a value is passed"
262
- fails "A Proc taking zero arguments raises an ArgumentErro if a value is passed"
263
-
264
- fails "The redo statement raises a LocalJumpError if used not within block or while/for loop"
265
-
133
+ fails "The redo statement in a method is invalid and raises a SyntaxError"
134
+ fails "The redo statement triggers ensure block when re-executing a block"
266
135
  fails "The rescue keyword parses 'a += b rescue c' as 'a += (b rescue c)'"
267
- fails "The rescue keyword will not rescue errors raised in an else block in the rescue block above it"
268
- fails "The rescue keyword will not execute an else block if an exception was raised"
269
136
  fails "The rescue keyword will execute an else block only if no exceptions were raised"
270
-
271
- fails "The retry statement re-executes the closest block"
272
- fails "The retry statement re-executes the entire enumeration"
273
- fails "The retry statement raises a SyntaxError when used outside of a begin statement"
274
- fails "The retry statement raises a LocalJumpError if used outside of a block"
137
+ fails "The rescue keyword will not rescue errors raised in an else block in the rescue block above it"
138
+ fails "The rescue keyword without classes will not rescue Exception"
275
139
  fails "The retry keyword inside a begin block's rescue block causes the begin block to be executed again"
276
-
277
-
278
- fails "The return keyword within a begin returns last value returned in nested ensures"
279
- fails "The return keyword within a begin executes nested ensures before returning"
280
- fails "The return keyword when passed a splat calls 'to_a' on the splatted value first"
281
- fails "The return keyword when passed a splat returns an array when used as a splat"
282
- fails "The return keyword in a Thread raises a LocalJumpError if used to exit a thread"
283
-
284
- fails "Invoking a method with manditory and optional arguments raises an ArgumentError if too many values are passed"
285
- fails "Invoking a method with optional arguments raises ArgumentError if extra arguments are passed"
286
- fails "Invoking a method raises a SyntaxError with both a literal block and an object as block"
287
- fails "Invoking a method with an object as a block uses 'to_proc' for coercion"
288
-
289
- fails "Instantiating a singleton class raises a TypeError when allocate is called"
290
- fails "Instantiating a singleton class raises a TypeError when new is called"
291
- fails "Class methods of a singleton class for a singleton class include class methods of the singleton class of Class"
292
- fails "Class methods of a singleton class for a class include instance methods of the singleton class of Class"
293
- fails "Class methods of a singleton class for a class include class methods of Class"
294
- fails "Instance methods of a singleton class for a singleton class includes instance methods of the singleton class of Class"
295
- fails "Defining instance methods on a singleton class define public methods"
296
- fails "A constant on a singleton class is preserved when the object is cloned"
297
- fails "A constant on a singleton class is not preserved when the object is duped"
298
- fails "A constant on a singleton class does not appear in the object's class constant list"
299
- fails "A constant on a singleton class raises a NameError for anonymous_module::CONST"
300
- fails "A constant on a singleton class cannot be accessed via object::CONST"
301
- fails "A constant on a singleton class is not defined in the singleton class opener's scope"
302
- fails "A constant on a singleton class is not defined on the object's class"
303
- fails "A singleton class doesn't have singleton class"
304
- fails "A singleton class for BasicObject has the proper level of superclass for Class"
305
- fails "A singleton class for BasicObject has Class as it's superclass"
306
- fails "A singleton class is a subclass of the same level of superclass's singleton class"
307
- fails "A singleton class is a subclass of a superclass's singleton class"
308
- fails "A singleton class is a subclass of the same level of Class's singleton class"
309
- fails "A singleton class is a subclass of Class's singleton class"
310
- fails "A singleton class inherits from Class for classes"
311
- fails "A singleton class is a singleton Class instance"
312
- fails "A singleton class raises a TypeError for symbols"
313
- fails "A singleton class raises a TypeError for Fixnum's"
314
-
315
- fails "The super keyword searches class methods including modules"
140
+ fails "The retry statement raises a SyntaxError when used outside of a begin statement"
141
+ fails "The retry statement re-executes the closest block"
316
142
  fails "The super keyword calls the correct method when the method visibility is modified"
317
143
  fails "The super keyword passes along modified rest args when they were originally empty"
318
144
  fails "The super keyword passes along modified rest args when they weren't originally empty"
319
- fails "The super keyword sees the included version of a module a method is alias from"
320
- fails "The super keyword can't be used with implicit arguments from a method defined with define_method"
321
- fails "The super keyword raises an error error when super method does not exist"
322
- fails "The super keyword calls the correct method when the superclass argument list is different from the subclass"
323
- fails "The super keyword respects the original module a method is aliased from"
324
145
  fails "The super keyword raises a RuntimeError when called with implicit arguments from a method defined with define_method"
325
-
326
- fails "The until modifier with begin .. end block restart the current iteration without reevaluting condition with redo"
327
- fails "The until modifier with begin .. end block skips to end of body with next"
146
+ fails "The super keyword raises an error error when super method does not exist"
147
+ fails "The super keyword uses given block even if arguments are passed explicitly"
148
+ fails "The super keyword without explicit arguments passes arguments and rest arguments including any modifications"
149
+ fails "The super keyword without explicit arguments passes optional arguments that have a default value but were modified"
150
+ fails "The super keyword without explicit arguments passes optional arguments that have a default value"
151
+ fails "The super keyword without explicit arguments passes optional arguments that have a non-default value but were modified"
152
+ fails "The super keyword without explicit arguments passes rest arguments including any modifications"
153
+ # can be removed when https://github.com/opal/opal/pull/1153 is merged
154
+ fails "The undef keyword allows undefining multiple methods at a time"
155
+ fails "The unpacking splat operator (*) unpacks arguments as if they were listed statically"
156
+ fails "The until expression restarts the current iteration without reevaluating condition with redo"
157
+ fails "The until modifier restarts the current iteration without reevaluating condition with redo"
328
158
  fails "The until modifier with begin .. end block evaluates condition after block execution"
159
+ fails "The until modifier with begin .. end block restart the current iteration without reevaluting condition with redo"
329
160
  fails "The until modifier with begin .. end block runs block at least once (even if the expression is true)"
330
- fails "The until modifier restarts the current iteration without reevaluating condition with redo"
331
- fails "The until expression restarts the current iteration without reevaluating condition with redo"
332
-
333
- fails "Multiple assignment, array-style returns an array of all rhs values"
334
- fails "Multiple assignment has the proper return value"
335
- fails "Multiple assignments with grouping supports multiple levels of nested groupings"
336
- fails "Multiple assignments with grouping A group on the lhs is considered one position and treats its corresponding rhs position like an Array"
337
- fails "Operator assignment 'obj[idx] op= expr' returns result of rhs not result of []="
338
- fails "Operator assignment 'obj[idx] op= expr' handles splat index (idx) arguments with normal arguments"
339
- fails "Operator assignment 'obj[idx] op= expr' handles multiple splat index (idx) arguments"
340
- fails "Operator assignment 'obj[idx] op= expr' handles single splat index (idx) arguments"
341
- fails "Operator assignment 'obj[idx] op= expr' handles empty splat index (idx) arguments"
342
- fails "Operator assignment 'obj[idx] op= expr' handles complex index (idx) arguments"
343
- fails "Operator assignment 'obj[idx] op= expr' handles empty index (idx) arguments"
344
- fails "Conditional operator assignment 'obj[idx] op= expr' uses short-circuit arg evaluation"
345
- fails "Conditional operator assignment 'obj[idx] op= expr' may not assign at all, depending on the truthiness of lhs"
346
- fails "Conditional operator assignment 'obj[idx] op= expr' is equivalent to 'obj[idx] op obj[idx] = expr'"
347
- fails "Unconditional operator assignment 'obj[idx] op= expr' is equivalent to 'obj[idx] = obj[idx] op expr'"
348
- fails "Conditional operator assignment 'obj.meth op= expr' uses short-circuit arg evaluation"
349
- fails "Conditional operator assignment 'obj.meth op= expr' may not assign at all, depending on the truthiness of lhs"
350
- fails "Conditional operator assignment 'var op= expr' uses short-circuit arg evaluation"
351
- fails "Conditional operator assignment 'var op= expr' may not assign at all, depending on the truthiness of lhs"
352
- fails "Assigning multiple values allows complex parallel assignment"
353
- fails "Assigning multiple values calls #to_ary on RHS arg if the corresponding LHS var is a splat"
354
- fails "Assigning multiple values returns the rhs values used for assignment as an array"
355
- fails "Basic multiple assignment with a splatted single RHS value does not call #to_ary on an object"
356
- fails "Basic multiple assignment with a splatted single RHS value calls #to_a on an object if #to_ary is not defined"
357
- fails "Basic multiple assignment with a splatted single RHS value does not call #to_a on an Array subclass instance"
358
- fails "Basic multiple assignment with a splatted single RHS value does not call #to_ary on an Array subclass instance"
359
- fails "Basic multiple assignment with a splatted single RHS value does not call #to_a on an Array instance"
360
- fails "Basic multiple assignment with a splatted single RHS value does not call #to_ary on an Array instance"
361
- fails "Basic multiple assignment with a single RHS value does not call #to_a on an object if #to_ary is not defined"
362
- fails "Basic multiple assignment with a single RHS value calls #to_ary on an object"
363
- fails "Basic multiple assignment with a single RHS value does not call #to_a on an Array subclass instance"
364
- fails "Basic multiple assignment with a single RHS value does not call #to_ary on an Array subclass instance"
365
- fails "Basic multiple assignment with a single RHS value does not call #to_a on an Array instance"
366
- fails "Basic multiple assignment with a single RHS value does not call #to_ary on an Array instance"
367
- fails "Basic assignment allows the assignment of the rhs to the lhs using the rhs splat operator"
368
- fails "Multiple assignments with splats * on the LHS has to be applied to any parameter"
369
-
370
- fails "The while modifier with begin .. end block runs block at least once (even if the expression is false)"
371
- fails "The while modifier with begin .. end block evaluates condition after block execution"
372
- fails "The while modifier with begin .. end block skips to end of body with next"
373
- fails "The while modifier with begin .. end block restarts the current iteration without reevaluting condition with redo"
374
-
375
- fails "The yield call taking no arguments ignores assignment to the explicit block argument and calls the passed block"
376
- fails "The yield call taking a single splatted argument passes no values when give nil as an argument"
377
- fails "The yield call taking multiple arguments with a splat does not pass an argument value if the splatted argument is nil"
378
-
379
- fails "The defined? keyword when called with a method name without a receiver returns nil if the method is not defined"
380
- fails "The defined? keyword when called with a method name having a module as receiver returns nil if the method is not defined"
381
- fails "The defined? keyword when called with a method name having a module as receiver returns nil if the class is not defined"
382
- fails "The defined? keyword when called with a method name having a module as receiver returns nil if the subclass is not defined"
383
- fails "The defined? keyword when called with a method name having a local variable as receiver returns nil if the variable does not exist"
384
- fails "The defined? keyword when called with a method name having a global variable as receiver returns nil if the variable does not exist"
385
- fails "The defined? keyword when called with a method name having a method call as a receiver returns nil if evaluating the receiver raises an exception"
386
- fails "The defined? keyword for an expression returns nil for an expression with == and an undefined method"
387
- fails "The defined? keyword for an expression returns nil for an expression with != and an undefined method"
388
- fails "The defined? keyword for an expression returns nil for an expression with !~ and an undefined method"
389
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with '!' and an undefined method"
390
- fails "The defined? keyword for an expression with logical connectives returns nil for an expression with 'not' and an undefined method"
391
- fails "The defined? keyword for an expression with logical connectives does not propagate an exception raised by a method in a 'not' expression"
392
- fails "The defined? keyword for an expression with logical connectives calls a method in a 'not' expression and returns 'method'"
393
- fails "The defined? keyword for variables when a String matches a Regexp returns nil for non-captures"
394
- fails "The defined? keyword for variables when a Regexp matches a String returns nil for non-captures"
395
- fails "The defined? keyword for a simple constant returns 'constant' when the constant is defined"
396
- fails "The defined? keyword for a simple constant returns nil when the constant is not defined"
397
- fails "The defined? keyword for a simple constant does not call Object.const_missing if the constant is not defined"
398
- fails "The defined? keyword for a simple constant returns 'constant' for an included module"
399
- fails "The defined? keyword for a simple constant returns 'constant' for a constant defined in an included module"
400
- fails "The defined? keyword for a scoped constant does not call .const_missing if the constant is not defined"
401
- fails "The defined? keyword for yield returns nil if no block is passed to a method not taking a block parameter"
402
- fails "The defined? keyword for yield returns nil if no block is passed to a method taking a block parameter"
403
- fails "The defined? keyword for super returns nil when a superclass undef's the method"
404
- fails "The defined? keyword for super for a method taking no arguments returns nil when no superclass method exists"
405
- fails "The defined? keyword for super for a method taking no arguments returns nil from a block when no superclass method exists"
406
- fails "The defined? keyword for super for a method taking arguments returns nil when no superclass method exists"
407
- fails "The defined? keyword for super for a method taking arguments returns nil from a block when no superclass method exists"
408
-
409
- fails "The defined? keyword for super for a method taking no arguments returns nil from a #define_method when no superclass method exists"
410
- fails "The defined? keyword for super for a method taking no arguments returns nil from a block in a #define_method when no superclass method exists"
411
- fails "The defined? keyword for super for a method taking arguments returns nil from a #define_method when no superclass method exists"
412
- fails "The defined? keyword for super for a method taking arguments returns nil from a block in a #define_method when no superclass method exists"
413
-
414
- fails "The __FILE__ pseudo-variable equals the absolute path of a file loaded by an absolute path" # we can't clear $LOADED_FEATURES, should be treated as readonly
161
+ fails "The until modifier with begin .. end block skips to end of body with next"
415
162
  fails "The __FILE__ pseudo-variable equals the absolute path of a file loaded by a relative path" # we can't clear $LOADED_FEATURES, should be treated as readonly
416
-
417
- fails "Assigning an anonymous module to a constant does not set the name of a module scoped by an anonymous module"
418
- fails "A number literal can be an integer literal with trailing 'r' to represent a Rational"
419
- fails "A number literal can be a decimal literal with trailing 'r' to represent a Rational"
420
- fails "A number literal can be a hexadecimal literal with trailing 'r' to represent a Rational"
421
- fails "A number literal can be an octal literal with trailing 'r' to represent a Rational"
422
- fails "A number literal can be a binary literal with trailing 'r' to represent a Rational"
423
- fails "A number literal can be an integer literal with trailing 'i' to represent a Complex"
424
- fails "A number literal can be a decimal literal with trailing 'i' to represent a Complex"
425
- fails "A number literal can be a hexadecimal literal with trailing 'i' to represent a Complex"
426
- fails "A number literal can be a octal literal with trailing 'i' to represent a Complex"
427
- fails "A number literal can be a binary literal with trailing 'i' to represent a Complex"
428
- fails "The while expression stops running body if interrupted by break in a parenthesized element op-assign value"
429
- fails "The while expression stops running body if interrupted by break in a begin ... end element op-assign value"
163
+ fails "The __FILE__ pseudo-variable equals the absolute path of a file loaded by an absolute path" # we can't clear $LOADED_FEATURES, should be treated as readonly
430
164
  end