laser 0.7.0.pre1

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 (319) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +14 -0
  4. data/LICENSE +661 -0
  5. data/README.md +158 -0
  6. data/Rakefile +104 -0
  7. data/VERSION +1 -0
  8. data/bin/laser +7 -0
  9. data/design_docs/goals.md +57 -0
  10. data/design_docs/object_regex.md +426 -0
  11. data/design_docs/type_annotations.md +80 -0
  12. data/ext/laser/BasicBlock.cpp +572 -0
  13. data/ext/laser/BasicBlock.h +118 -0
  14. data/ext/laser/extconf.rb +3 -0
  15. data/features/laser.feature +25 -0
  16. data/features/step_definitions/laser_steps.rb +39 -0
  17. data/features/support/env.rb +14 -0
  18. data/features/support/testdata/1_input +1 -0
  19. data/features/support/testdata/1_output +1 -0
  20. data/features/support/testdata/2_input +4 -0
  21. data/features/support/testdata/2_output +4 -0
  22. data/features/support/testdata/3_input +8 -0
  23. data/features/support/testdata/3_output +11 -0
  24. data/features/support/testdata/4_input +5 -0
  25. data/features/support/testdata/4_output +5 -0
  26. data/features/support/testdata/5_input +13 -0
  27. data/laser.gemspec +382 -0
  28. data/lib/laser.rb +98 -0
  29. data/lib/laser/analysis/annotations.rb +95 -0
  30. data/lib/laser/analysis/annotations/annotation_config.yaml +3 -0
  31. data/lib/laser/analysis/annotations/comment_attachment_annotation.rb +66 -0
  32. data/lib/laser/analysis/annotations/node_pointers_annotation.rb +36 -0
  33. data/lib/laser/analysis/annotations/runtime_annotation.rb +55 -0
  34. data/lib/laser/analysis/argument_expansion.rb +132 -0
  35. data/lib/laser/analysis/arity.rb +34 -0
  36. data/lib/laser/analysis/bindings.rb +144 -0
  37. data/lib/laser/analysis/bootstrap/bootstrap.rb +298 -0
  38. data/lib/laser/analysis/bootstrap/laser_class.rb +106 -0
  39. data/lib/laser/analysis/bootstrap/laser_method.rb +255 -0
  40. data/lib/laser/analysis/bootstrap/laser_module.rb +403 -0
  41. data/lib/laser/analysis/bootstrap/laser_module_copy.rb +74 -0
  42. data/lib/laser/analysis/bootstrap/laser_object.rb +69 -0
  43. data/lib/laser/analysis/bootstrap/laser_proc.rb +150 -0
  44. data/lib/laser/analysis/bootstrap/laser_singleton_class.rb +44 -0
  45. data/lib/laser/analysis/comments.rb +35 -0
  46. data/lib/laser/analysis/control_flow.rb +28 -0
  47. data/lib/laser/analysis/control_flow/alias_analysis.rb +31 -0
  48. data/lib/laser/analysis/control_flow/basic_block.rb +105 -0
  49. data/lib/laser/analysis/control_flow/cfg_builder.rb +2505 -0
  50. data/lib/laser/analysis/control_flow/cfg_instruction.rb +190 -0
  51. data/lib/laser/analysis/control_flow/constant_propagation.rb +742 -0
  52. data/lib/laser/analysis/control_flow/control_flow_graph.rb +370 -0
  53. data/lib/laser/analysis/control_flow/lifetime_analysis.rb +91 -0
  54. data/lib/laser/analysis/control_flow/method_call_search.rb +26 -0
  55. data/lib/laser/analysis/control_flow/raise_properties.rb +25 -0
  56. data/lib/laser/analysis/control_flow/simulation.rb +385 -0
  57. data/lib/laser/analysis/control_flow/static_single_assignment.rb +185 -0
  58. data/lib/laser/analysis/control_flow/unreachability_analysis.rb +57 -0
  59. data/lib/laser/analysis/control_flow/unused_variables.rb +91 -0
  60. data/lib/laser/analysis/control_flow/yield_properties.rb +103 -0
  61. data/lib/laser/analysis/errors.rb +131 -0
  62. data/lib/laser/analysis/laser_utils.rb +18 -0
  63. data/lib/laser/analysis/lexical_analysis.rb +172 -0
  64. data/lib/laser/analysis/method_call.rb +68 -0
  65. data/lib/laser/analysis/protocol_registry.rb +30 -0
  66. data/lib/laser/analysis/scope.rb +118 -0
  67. data/lib/laser/analysis/sexp.rb +159 -0
  68. data/lib/laser/analysis/sexp_analysis.rb +40 -0
  69. data/lib/laser/analysis/sexp_extensions/constant_extraction.rb +115 -0
  70. data/lib/laser/analysis/sexp_extensions/source_location.rb +164 -0
  71. data/lib/laser/analysis/sexp_extensions/type_inference.rb +47 -0
  72. data/lib/laser/analysis/signature.rb +76 -0
  73. data/lib/laser/analysis/special_methods/send.rb +67 -0
  74. data/lib/laser/analysis/unused_methods.rb +21 -0
  75. data/lib/laser/analysis/visitor.rb +141 -0
  76. data/lib/laser/annotation_parser/annotations.treetop +126 -0
  77. data/lib/laser/annotation_parser/annotations_parser.rb +748 -0
  78. data/lib/laser/annotation_parser/class_annotations.treetop +82 -0
  79. data/lib/laser/annotation_parser/class_annotations_parser.rb +654 -0
  80. data/lib/laser/annotation_parser/overload.treetop +24 -0
  81. data/lib/laser/annotation_parser/overload_parser.rb +167 -0
  82. data/lib/laser/annotation_parser/parsers.rb +6 -0
  83. data/lib/laser/annotation_parser/structural.treetop +37 -0
  84. data/lib/laser/annotation_parser/structural_parser.rb +406 -0
  85. data/lib/laser/annotation_parser/useful_parsers.treetop +47 -0
  86. data/lib/laser/annotation_parser/useful_parsers_parser.rb +674 -0
  87. data/lib/laser/rake/task.rb +46 -0
  88. data/lib/laser/runner.rb +189 -0
  89. data/lib/laser/scanner.rb +169 -0
  90. data/lib/laser/standard_library/_thread.rb +110 -0
  91. data/lib/laser/standard_library/abbrev.rb +103 -0
  92. data/lib/laser/standard_library/array.rb +418 -0
  93. data/lib/laser/standard_library/base64.rb +91 -0
  94. data/lib/laser/standard_library/basic_object.rb +55 -0
  95. data/lib/laser/standard_library/benchmark.rb +556 -0
  96. data/lib/laser/standard_library/bignum.rb +185 -0
  97. data/lib/laser/standard_library/cgi.rb +275 -0
  98. data/lib/laser/standard_library/cgi/cookie.rb +147 -0
  99. data/lib/laser/standard_library/cgi/core.rb +791 -0
  100. data/lib/laser/standard_library/cgi/html.rb +1021 -0
  101. data/lib/laser/standard_library/cgi/session.rb +537 -0
  102. data/lib/laser/standard_library/cgi/session/pstore.rb +111 -0
  103. data/lib/laser/standard_library/cgi/util.rb +188 -0
  104. data/lib/laser/standard_library/class_definitions.rb +333 -0
  105. data/lib/laser/standard_library/comparable.rb +125 -0
  106. data/lib/laser/standard_library/complex.rb +162 -0
  107. data/lib/laser/standard_library/enumerable.rb +178 -0
  108. data/lib/laser/standard_library/exceptions.rb +135 -0
  109. data/lib/laser/standard_library/fixnum.rb +188 -0
  110. data/lib/laser/standard_library/float.rb +180 -0
  111. data/lib/laser/standard_library/hash.rb +237 -0
  112. data/lib/laser/standard_library/integer.rb +123 -0
  113. data/lib/laser/standard_library/laser_magic.rb +7 -0
  114. data/lib/laser/standard_library/nil_false_true.rb +113 -0
  115. data/lib/laser/standard_library/numbers.rb +192 -0
  116. data/lib/laser/standard_library/proc.rb +31 -0
  117. data/lib/laser/standard_library/set.rb +1348 -0
  118. data/lib/laser/standard_library/string.rb +666 -0
  119. data/lib/laser/standard_library/stringio.rb +2 -0
  120. data/lib/laser/standard_library/symbol.rb +125 -0
  121. data/lib/laser/standard_library/tsort.rb +242 -0
  122. data/lib/laser/support/acts_as_struct.rb +66 -0
  123. data/lib/laser/support/frequency.rb +55 -0
  124. data/lib/laser/support/inheritable_attributes.rb +145 -0
  125. data/lib/laser/support/module_extensions.rb +94 -0
  126. data/lib/laser/support/placeholder_object.rb +13 -0
  127. data/lib/laser/third_party/rgl/adjacency.rb +221 -0
  128. data/lib/laser/third_party/rgl/base.rb +228 -0
  129. data/lib/laser/third_party/rgl/bidirectional.rb +39 -0
  130. data/lib/laser/third_party/rgl/condensation.rb +47 -0
  131. data/lib/laser/third_party/rgl/connected_components.rb +138 -0
  132. data/lib/laser/third_party/rgl/control_flow.rb +170 -0
  133. data/lib/laser/third_party/rgl/depth_first_spanning_tree.rb +37 -0
  134. data/lib/laser/third_party/rgl/dominators.rb +124 -0
  135. data/lib/laser/third_party/rgl/dot.rb +93 -0
  136. data/lib/laser/third_party/rgl/graphxml.rb +51 -0
  137. data/lib/laser/third_party/rgl/implicit.rb +174 -0
  138. data/lib/laser/third_party/rgl/mutable.rb +117 -0
  139. data/lib/laser/third_party/rgl/rdot.rb +445 -0
  140. data/lib/laser/third_party/rgl/topsort.rb +72 -0
  141. data/lib/laser/third_party/rgl/transitivity.rb +180 -0
  142. data/lib/laser/third_party/rgl/traversal.rb +348 -0
  143. data/lib/laser/types/types.rb +433 -0
  144. data/lib/laser/version.rb +14 -0
  145. data/lib/laser/warning.rb +149 -0
  146. data/lib/laser/warning_sets/default.yml +13 -0
  147. data/lib/laser/warnings/assignment_in_condition.rb +20 -0
  148. data/lib/laser/warnings/comment_spacing.rb +31 -0
  149. data/lib/laser/warnings/extra_blank_lines.rb +30 -0
  150. data/lib/laser/warnings/extra_whitespace.rb +16 -0
  151. data/lib/laser/warnings/hash_symbol_18_warning.rb +63 -0
  152. data/lib/laser/warnings/hash_symbol_19_warning.rb +29 -0
  153. data/lib/laser/warnings/line_length.rb +115 -0
  154. data/lib/laser/warnings/misaligned_unindentation.rb +17 -0
  155. data/lib/laser/warnings/operator_spacing.rb +68 -0
  156. data/lib/laser/warnings/parens_on_declaration.rb +30 -0
  157. data/lib/laser/warnings/rescue_exception.rb +42 -0
  158. data/lib/laser/warnings/semicolon.rb +25 -0
  159. data/lib/laser/warnings/sexp_errors.rb +24 -0
  160. data/lib/laser/warnings/uncalled_method_warning.rb +7 -0
  161. data/lib/laser/warnings/useless_double_quotes.rb +38 -0
  162. data/spec/analysis_specs/annotations_spec.rb +47 -0
  163. data/spec/analysis_specs/annotations_specs/comment_attachment_spec.rb +68 -0
  164. data/spec/analysis_specs/annotations_specs/node_pointers_annotation_spec.rb +90 -0
  165. data/spec/analysis_specs/annotations_specs/runtime_annotation_spec.rb +135 -0
  166. data/spec/analysis_specs/annotations_specs/spec_helper.rb +33 -0
  167. data/spec/analysis_specs/argument_expansion_spec.rb +113 -0
  168. data/spec/analysis_specs/bindings_spec.rb +36 -0
  169. data/spec/analysis_specs/comment_spec.rb +93 -0
  170. data/spec/analysis_specs/control_flow_specs/cfg_instruction_spec.rb +111 -0
  171. data/spec/analysis_specs/control_flow_specs/constant_propagation_spec.rb +560 -0
  172. data/spec/analysis_specs/control_flow_specs/control_flow_graph_spec.rb +5 -0
  173. data/spec/analysis_specs/control_flow_specs/raise_properties_spec.rb +310 -0
  174. data/spec/analysis_specs/control_flow_specs/raise_type_inference_spec.rb +301 -0
  175. data/spec/analysis_specs/control_flow_specs/return_type_inference_spec.rb +431 -0
  176. data/spec/analysis_specs/control_flow_specs/simulation_spec.rb +158 -0
  177. data/spec/analysis_specs/control_flow_specs/spec_helper.rb +110 -0
  178. data/spec/analysis_specs/control_flow_specs/tuple_misuse_inference_spec.rb +125 -0
  179. data/spec/analysis_specs/control_flow_specs/unreachability_analysis_spec.rb +76 -0
  180. data/spec/analysis_specs/control_flow_specs/unused_variable_spec.rb +99 -0
  181. data/spec/analysis_specs/control_flow_specs/yield_properties_spec.rb +372 -0
  182. data/spec/analysis_specs/error_spec.rb +30 -0
  183. data/spec/analysis_specs/laser_class_spec.rb +322 -0
  184. data/spec/analysis_specs/lexical_analysis_spec.rb +184 -0
  185. data/spec/analysis_specs/protocol_registry_spec.rb +63 -0
  186. data/spec/analysis_specs/scope_annotation_spec.rb +1013 -0
  187. data/spec/analysis_specs/scope_spec.rb +126 -0
  188. data/spec/analysis_specs/sexp_analysis_spec.rb +30 -0
  189. data/spec/analysis_specs/sexp_extension_specs/constant_extraction_spec.rb +309 -0
  190. data/spec/analysis_specs/sexp_extension_specs/source_location_spec.rb +231 -0
  191. data/spec/analysis_specs/sexp_extension_specs/spec_helper.rb +1 -0
  192. data/spec/analysis_specs/sexp_extension_specs/type_inference_spec.rb +252 -0
  193. data/spec/analysis_specs/sexp_spec.rb +167 -0
  194. data/spec/analysis_specs/spec_helper.rb +27 -0
  195. data/spec/analysis_specs/unused_methods_spec.rb +65 -0
  196. data/spec/analysis_specs/visitor_spec.rb +64 -0
  197. data/spec/annotation_parser_specs/annotations_parser_spec.rb +89 -0
  198. data/spec/annotation_parser_specs/class_annotation_parser_spec.rb +120 -0
  199. data/spec/annotation_parser_specs/overload_parser_spec.rb +39 -0
  200. data/spec/annotation_parser_specs/parsers_spec.rb +14 -0
  201. data/spec/annotation_parser_specs/spec_helper.rb +1 -0
  202. data/spec/annotation_parser_specs/structural_parser_spec.rb +67 -0
  203. data/spec/laser_spec.rb +14 -0
  204. data/spec/rake_specs/spec_helper.rb +1 -0
  205. data/spec/rake_specs/task_spec.rb +67 -0
  206. data/spec/runner_spec.rb +207 -0
  207. data/spec/scanner_spec.rb +75 -0
  208. data/spec/spec_helper.rb +121 -0
  209. data/spec/standard_library/exceptions_spec.rb +19 -0
  210. data/spec/standard_library/globals_spec.rb +14 -0
  211. data/spec/standard_library/set_spec.rb +31 -0
  212. data/spec/standard_library/spec_helper.rb +1 -0
  213. data/spec/standard_library/standard_library_spec.rb +302 -0
  214. data/spec/support_specs/acts_as_struct_spec.rb +94 -0
  215. data/spec/support_specs/frequency_spec.rb +23 -0
  216. data/spec/support_specs/module_extensions_spec.rb +117 -0
  217. data/spec/support_specs/spec_helper.rb +1 -0
  218. data/spec/type_specs/spec_helper.rb +1 -0
  219. data/spec/type_specs/types_spec.rb +133 -0
  220. data/spec/warning_spec.rb +95 -0
  221. data/spec/warning_specs/assignment_in_condition_spec.rb +68 -0
  222. data/spec/warning_specs/comment_spacing_spec.rb +65 -0
  223. data/spec/warning_specs/extra_blank_lines_spec.rb +70 -0
  224. data/spec/warning_specs/extra_whitespace_spec.rb +33 -0
  225. data/spec/warning_specs/hash_symbol_18_warning_spec.rb +89 -0
  226. data/spec/warning_specs/hash_symbol_19_warning_spec.rb +63 -0
  227. data/spec/warning_specs/line_length_spec.rb +173 -0
  228. data/spec/warning_specs/misaligned_unindentation_spec.rb +35 -0
  229. data/spec/warning_specs/operator_spacing_spec.rb +104 -0
  230. data/spec/warning_specs/parens_on_declaration_spec.rb +57 -0
  231. data/spec/warning_specs/rescue_exception_spec.rb +105 -0
  232. data/spec/warning_specs/semicolon_spec.rb +58 -0
  233. data/spec/warning_specs/spec_helper.rb +1 -0
  234. data/spec/warning_specs/useless_double_quotes_spec.rb +74 -0
  235. data/status_reports/2010/12/2010-12-14.md +163 -0
  236. data/status_reports/2010/12/2010-12-23.md +298 -0
  237. data/status_reports/2010/12/2010-12-24.md +6 -0
  238. data/test/third_party_tests/rgl_tests/TestComponents.rb +65 -0
  239. data/test/third_party_tests/rgl_tests/TestCycles.rb +61 -0
  240. data/test/third_party_tests/rgl_tests/TestDirectedGraph.rb +125 -0
  241. data/test/third_party_tests/rgl_tests/TestDot.rb +18 -0
  242. data/test/third_party_tests/rgl_tests/TestEdge.rb +34 -0
  243. data/test/third_party_tests/rgl_tests/TestGraph.rb +71 -0
  244. data/test/third_party_tests/rgl_tests/TestGraphXML.rb +57 -0
  245. data/test/third_party_tests/rgl_tests/TestImplicit.rb +52 -0
  246. data/test/third_party_tests/rgl_tests/TestRdot.rb +863 -0
  247. data/test/third_party_tests/rgl_tests/TestTransitivity.rb +129 -0
  248. data/test/third_party_tests/rgl_tests/TestTraversal.rb +220 -0
  249. data/test/third_party_tests/rgl_tests/TestUnDirectedGraph.rb +102 -0
  250. data/test/third_party_tests/rgl_tests/examples/north/Graph.log +128 -0
  251. data/test/third_party_tests/rgl_tests/examples/north/g.10.0.graphml +28 -0
  252. data/test/third_party_tests/rgl_tests/examples/north/g.10.1.graphml +28 -0
  253. data/test/third_party_tests/rgl_tests/examples/north/g.10.11.graphml +31 -0
  254. data/test/third_party_tests/rgl_tests/examples/north/g.10.12.graphml +27 -0
  255. data/test/third_party_tests/rgl_tests/examples/north/g.10.13.graphml +27 -0
  256. data/test/third_party_tests/rgl_tests/examples/north/g.10.14.graphml +27 -0
  257. data/test/third_party_tests/rgl_tests/examples/north/g.10.15.graphml +26 -0
  258. data/test/third_party_tests/rgl_tests/examples/north/g.10.16.graphml +26 -0
  259. data/test/third_party_tests/rgl_tests/examples/north/g.10.17.graphml +26 -0
  260. data/test/third_party_tests/rgl_tests/examples/north/g.10.19.graphml +37 -0
  261. data/test/third_party_tests/rgl_tests/examples/north/g.10.2.graphml +28 -0
  262. data/test/third_party_tests/rgl_tests/examples/north/g.10.20.graphml +38 -0
  263. data/test/third_party_tests/rgl_tests/examples/north/g.10.22.graphml +43 -0
  264. data/test/third_party_tests/rgl_tests/examples/north/g.10.24.graphml +30 -0
  265. data/test/third_party_tests/rgl_tests/examples/north/g.10.25.graphml +45 -0
  266. data/test/third_party_tests/rgl_tests/examples/north/g.10.27.graphml +38 -0
  267. data/test/third_party_tests/rgl_tests/examples/north/g.10.28.graphml +30 -0
  268. data/test/third_party_tests/rgl_tests/examples/north/g.10.29.graphml +38 -0
  269. data/test/third_party_tests/rgl_tests/examples/north/g.10.3.graphml +26 -0
  270. data/test/third_party_tests/rgl_tests/examples/north/g.10.30.graphml +34 -0
  271. data/test/third_party_tests/rgl_tests/examples/north/g.10.31.graphml +42 -0
  272. data/test/third_party_tests/rgl_tests/examples/north/g.10.34.graphml +42 -0
  273. data/test/third_party_tests/rgl_tests/examples/north/g.10.37.graphml +28 -0
  274. data/test/third_party_tests/rgl_tests/examples/north/g.10.38.graphml +38 -0
  275. data/test/third_party_tests/rgl_tests/examples/north/g.10.39.graphml +36 -0
  276. data/test/third_party_tests/rgl_tests/examples/north/g.10.4.graphml +26 -0
  277. data/test/third_party_tests/rgl_tests/examples/north/g.10.40.graphml +37 -0
  278. data/test/third_party_tests/rgl_tests/examples/north/g.10.41.graphml +37 -0
  279. data/test/third_party_tests/rgl_tests/examples/north/g.10.42.graphml +26 -0
  280. data/test/third_party_tests/rgl_tests/examples/north/g.10.45.graphml +28 -0
  281. data/test/third_party_tests/rgl_tests/examples/north/g.10.46.graphml +32 -0
  282. data/test/third_party_tests/rgl_tests/examples/north/g.10.5.graphml +31 -0
  283. data/test/third_party_tests/rgl_tests/examples/north/g.10.50.graphml +30 -0
  284. data/test/third_party_tests/rgl_tests/examples/north/g.10.56.graphml +29 -0
  285. data/test/third_party_tests/rgl_tests/examples/north/g.10.57.graphml +32 -0
  286. data/test/third_party_tests/rgl_tests/examples/north/g.10.58.graphml +32 -0
  287. data/test/third_party_tests/rgl_tests/examples/north/g.10.6.graphml +26 -0
  288. data/test/third_party_tests/rgl_tests/examples/north/g.10.60.graphml +32 -0
  289. data/test/third_party_tests/rgl_tests/examples/north/g.10.61.graphml +34 -0
  290. data/test/third_party_tests/rgl_tests/examples/north/g.10.62.graphml +34 -0
  291. data/test/third_party_tests/rgl_tests/examples/north/g.10.68.graphml +30 -0
  292. data/test/third_party_tests/rgl_tests/examples/north/g.10.69.graphml +32 -0
  293. data/test/third_party_tests/rgl_tests/examples/north/g.10.7.graphml +29 -0
  294. data/test/third_party_tests/rgl_tests/examples/north/g.10.70.graphml +26 -0
  295. data/test/third_party_tests/rgl_tests/examples/north/g.10.71.graphml +27 -0
  296. data/test/third_party_tests/rgl_tests/examples/north/g.10.72.graphml +28 -0
  297. data/test/third_party_tests/rgl_tests/examples/north/g.10.74.graphml +29 -0
  298. data/test/third_party_tests/rgl_tests/examples/north/g.10.75.graphml +29 -0
  299. data/test/third_party_tests/rgl_tests/examples/north/g.10.78.graphml +27 -0
  300. data/test/third_party_tests/rgl_tests/examples/north/g.10.79.graphml +34 -0
  301. data/test/third_party_tests/rgl_tests/examples/north/g.10.8.graphml +29 -0
  302. data/test/third_party_tests/rgl_tests/examples/north/g.10.80.graphml +34 -0
  303. data/test/third_party_tests/rgl_tests/examples/north/g.10.82.graphml +35 -0
  304. data/test/third_party_tests/rgl_tests/examples/north/g.10.83.graphml +32 -0
  305. data/test/third_party_tests/rgl_tests/examples/north/g.10.85.graphml +34 -0
  306. data/test/third_party_tests/rgl_tests/examples/north/g.10.86.graphml +34 -0
  307. data/test/third_party_tests/rgl_tests/examples/north/g.10.88.graphml +37 -0
  308. data/test/third_party_tests/rgl_tests/examples/north/g.10.89.graphml +29 -0
  309. data/test/third_party_tests/rgl_tests/examples/north/g.10.9.graphml +26 -0
  310. data/test/third_party_tests/rgl_tests/examples/north/g.10.90.graphml +32 -0
  311. data/test/third_party_tests/rgl_tests/examples/north/g.10.91.graphml +31 -0
  312. data/test/third_party_tests/rgl_tests/examples/north/g.10.92.graphml +26 -0
  313. data/test/third_party_tests/rgl_tests/examples/north/g.10.93.graphml +32 -0
  314. data/test/third_party_tests/rgl_tests/examples/north/g.10.94.graphml +34 -0
  315. data/test/third_party_tests/rgl_tests/examples/north/g.12.8.graphml +40 -0
  316. data/test/third_party_tests/rgl_tests/examples/north/g.14.9.graphml +36 -0
  317. data/test/third_party_tests/rgl_tests/test_helper.rb +7 -0
  318. data/test/third_party_tests/test_inheritable_attributes.rb +187 -0
  319. metadata +470 -0
@@ -0,0 +1,237 @@
1
+ class Hash
2
+ # pure: true
3
+ # builtin: true
4
+ # returns: Hash=
5
+ def self.[](*args)
6
+ end
7
+ # pure: true
8
+ # builtin: true
9
+ # yield_usage: optional
10
+ def initialize(default_obj = nil)
11
+ end
12
+ # pure: true
13
+ # builtin: true
14
+ def ==(other)
15
+ end
16
+ # pure: true
17
+ # builtin: true
18
+ def [](key)
19
+ end
20
+ # pure: true
21
+ # builtin: true
22
+ def []=(key, value)
23
+ end
24
+ # pure: true
25
+ # builtin: true
26
+ def assoc(obj)
27
+ end
28
+ # pure: true
29
+ # builtin: true
30
+ def clear
31
+ end
32
+ # pure: true
33
+ # builtin: true
34
+ def compare_by_identity
35
+ end
36
+ # pure: true
37
+ # builtin: true
38
+ def compare_by_identity?
39
+ end
40
+ # pure: true
41
+ # builtin: true
42
+ def default(key = nil)
43
+ end
44
+ # pure: true
45
+ # builtin: true
46
+ def default=(obj)
47
+ end
48
+ # pure: true
49
+ # builtin: true
50
+ def default_proc
51
+ end
52
+ # pure: true
53
+ # builtin: true
54
+ def default_proc=(proc_obj)
55
+ end
56
+ # pure: true
57
+ # builtin: true
58
+ # yield_usage: optional
59
+ def delete(key)
60
+ end
61
+ # pure: true
62
+ # builtin: true
63
+ # yield_usage: optional
64
+ def delete_if
65
+ end
66
+ # pure: true
67
+ # builtin: true
68
+ # yield_usage: optional
69
+ def each
70
+ end
71
+ # pure: true
72
+ # builtin: true
73
+ # yield_usage: optional
74
+ def each_key
75
+ end
76
+ # pure: true
77
+ # builtin: true
78
+ # yield_usage: optional
79
+ def each_pair
80
+ end
81
+ # pure: true
82
+ # builtin: true
83
+ # yield_usage: optional
84
+ def each_value
85
+ end
86
+ # pure: true
87
+ # builtin: true
88
+ def empty?
89
+ end
90
+ # pure: true
91
+ # builtin: true
92
+ def eql?(other)
93
+ end
94
+ # pure: true
95
+ # builtin: true
96
+ # yield_usage: optional
97
+ def fetch(key, default=nil)
98
+ end
99
+ # pure: true
100
+ # builtin: true
101
+ def flatten(level=1)
102
+ end
103
+ # pure: true
104
+ # builtin: true
105
+ def has_key?(key)
106
+ end
107
+ # pure: true
108
+ # builtin: true
109
+ def has_value?(value)
110
+ end
111
+ # pure: true
112
+ # builtin: true
113
+ def hash
114
+ end
115
+ # pure: true
116
+ # builtin: true
117
+ def include?(key)
118
+ end
119
+ # pure: true
120
+ # builtin: true
121
+ def index
122
+ end
123
+ # pure: true
124
+ # builtin: true
125
+ def inspect
126
+ end
127
+ # pure: true
128
+ # builtin: true
129
+ def invert
130
+ end
131
+ # pure: true
132
+ # builtin: true
133
+ # yield_usage: optional
134
+ def keep_if
135
+ end
136
+ # pure: true
137
+ # builtin: true
138
+ def key(value)
139
+ end
140
+ # pure: true
141
+ # builtin: true
142
+ def key?(key)
143
+ end
144
+ # pure: true
145
+ # builtin: true
146
+ def keys
147
+ end
148
+ # pure: true
149
+ # builtin: true
150
+ def length
151
+ end
152
+ # pure: true
153
+ # builtin: true
154
+ def member?(key)
155
+ end
156
+ # pure: true
157
+ # builtin: true
158
+ # yield_usage: optional
159
+ def merge(other)
160
+ end
161
+ # pure: true
162
+ # builtin: true
163
+ # yield_usage: optional
164
+ def merge!(merge)
165
+ end
166
+ alias update merge!
167
+ # pure: true
168
+ # builtin: true
169
+ def rassoc(key)
170
+ end
171
+ # pure: true
172
+ # builtin: true
173
+ def rehash
174
+ end
175
+ # pure: true
176
+ # builtin: true
177
+ # yield_usage: optional
178
+ def reject
179
+ end
180
+ # pure: true
181
+ # builtin: true
182
+ # yield_usage: optional
183
+ def reject!
184
+ end
185
+ # pure: true
186
+ # builtin: true
187
+ def replace(other_hash)
188
+ end
189
+ # pure: true
190
+ # builtin: true
191
+ # yield_usage: optional
192
+ def select
193
+ end
194
+ # pure: true
195
+ # builtin: true
196
+ # yield_usage: optional
197
+ def select!
198
+ end
199
+ # pure: true
200
+ # builtin: true
201
+ def shift
202
+ end
203
+ # pure: true
204
+ # builtin: true
205
+ def size
206
+ end
207
+ # pure: true
208
+ # builtin: true
209
+ def store(key, val)
210
+ end
211
+ # pure: true
212
+ # builtin: true
213
+ # returns: Array=
214
+ def to_a
215
+ end
216
+ # pure: true
217
+ # builtin: true
218
+ def to_hash
219
+ end
220
+ # pure: true
221
+ # builtin: true
222
+ # returns: String=
223
+ def to_s
224
+ end
225
+ # pure: true
226
+ # builtin: true
227
+ def value?(value)
228
+ end
229
+ # pure: true
230
+ # builtin: true
231
+ def values
232
+ end
233
+ # pure: true
234
+ # builtin: true
235
+ def values_at(*keys)
236
+ end
237
+ end
@@ -0,0 +1,123 @@
1
+ class Integer < Numeric
2
+ # builtin: true
3
+ # pure: true
4
+ # raise: false
5
+ def ceil
6
+ end
7
+ # builtin: true
8
+ # pure: true
9
+ # raise: false
10
+ def chr
11
+ end
12
+ # builtin: true
13
+ # pure: true
14
+ # raise: false
15
+ def denominator
16
+ end
17
+ # builtin: true
18
+ # pure: true
19
+ # yield_usage: optional
20
+ def downto(int)
21
+ end
22
+ # builtin: true
23
+ # pure: true
24
+ # raise: false
25
+ def even?
26
+ end
27
+ # builtin: true
28
+ # pure: true
29
+ # raise: false
30
+ def floor
31
+ end
32
+ # builtin: true
33
+ # pure: true
34
+ def gcd(int)
35
+ end
36
+ # builtin: true
37
+ # pure: true
38
+ def gcdlcm(int)
39
+ end
40
+ # builtin: true
41
+ # pure: true
42
+ # raise: false
43
+ def integer?
44
+ end
45
+ # builtin: true
46
+ # pure: true
47
+ def lcm(int)
48
+ end
49
+ # builtin: true
50
+ # pure: true
51
+ # raise: false
52
+ def next
53
+ end
54
+ # builtin: true
55
+ # pure: true
56
+ # raise: false
57
+ def numerator
58
+ end
59
+ # builtin: true
60
+ # pure: true
61
+ # raise: false
62
+ def odd?
63
+ end
64
+ # builtin: true
65
+ # pure: true
66
+ # raise: false
67
+ def ord
68
+ end
69
+ # builtin: true
70
+ # pure: true
71
+ # raise: false
72
+ def pred
73
+ end
74
+ # builtin: true
75
+ # pure: true
76
+ # raise: false
77
+ def rationalize
78
+ end
79
+ # builtin: true
80
+ # pure: true
81
+ def round(digits=0)
82
+ end
83
+ # builtin: true
84
+ # pure: true
85
+ # raise: false
86
+ def succ
87
+ end
88
+ # builtin: true
89
+ # pure: true
90
+ # raise: false
91
+ # yield_usage: optional
92
+ def times
93
+ end
94
+ # builtin: true
95
+ # pure: true
96
+ # raise: false
97
+ def to_i
98
+ end
99
+ # builtin: true
100
+ # pure: true
101
+ # raise: false
102
+ def to_int
103
+ end
104
+ # builtin: true
105
+ # pure: true
106
+ # raise: false
107
+ def to_r
108
+ end
109
+ # builtin: true
110
+ # pure: true
111
+ # raise: false
112
+ def truncate
113
+ end
114
+ # builtin: true
115
+ # pure: true
116
+ # raise: false
117
+ # yield_usage: optional
118
+ def upto(max)
119
+ end
120
+ end
121
+
122
+ require 'fixnum'
123
+ require 'bignum'
@@ -0,0 +1,7 @@
1
+ module LaserMagic
2
+ class LaserFakeBlock < Proc
3
+ end
4
+
5
+ class LaserFakeNil < NilClass
6
+ end
7
+ end
@@ -0,0 +1,113 @@
1
+ class NilClass
2
+ # pure: true
3
+ # raises: false
4
+ def &(other)
5
+ false
6
+ end
7
+ # pure: true
8
+ # raises: false
9
+ def ^(other)
10
+ !!other
11
+ end
12
+ # pure: true
13
+ # raises: false
14
+ def inspect
15
+ 'nil'
16
+ end
17
+ # pure: true
18
+ # raises: false
19
+ def nil?
20
+ true
21
+ end
22
+ # pure: true
23
+ # raises: false
24
+ def rationalize
25
+ 0.to_r
26
+ end
27
+ # pure: true
28
+ # raises: false
29
+ def to_a
30
+ []
31
+ end
32
+ # pure: true
33
+ # raises: false
34
+ def to_c
35
+ 0.to_c
36
+ end
37
+ # pure: true
38
+ # raises: false
39
+ def to_f
40
+ 0.0
41
+ end
42
+ # pure: true
43
+ # raises: false
44
+ def to_i
45
+ 0
46
+ end
47
+ alias to_r rationalize
48
+
49
+ # pure: true
50
+ # raises: false
51
+ def to_s
52
+ ''
53
+ end
54
+
55
+ # pure: true
56
+ # raises: false
57
+ def |(other)
58
+ !!other
59
+ end
60
+ end
61
+
62
+ class FalseClass
63
+ # pure: true
64
+ # raises: false
65
+ def &(other)
66
+ false
67
+ end
68
+
69
+ # pure: true
70
+ # raises: false
71
+ def ^(other)
72
+ !!other
73
+ end
74
+
75
+ # pure: true
76
+ # raises: false
77
+ def to_s
78
+ 'false'
79
+ end
80
+
81
+ # pure: true
82
+ # raises: false
83
+ def |(other)
84
+ !!other
85
+ end
86
+ end
87
+
88
+ class TrueClass
89
+
90
+ # pure: true
91
+ # raises: false
92
+ def &(other)
93
+ !!other
94
+ end
95
+
96
+ # pure: true
97
+ # raises: false
98
+ def ^(other)
99
+ !other
100
+ end
101
+
102
+ # pure: true
103
+ # raises: false
104
+ def to_s
105
+ 'true'
106
+ end
107
+
108
+ # pure: true
109
+ # raises: false
110
+ def |(other)
111
+ !other
112
+ end
113
+ end