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,666 @@
1
+ class String
2
+ include Comparable
3
+ # pure: true
4
+ # builtin: true
5
+ # returns: String=
6
+ def %(format)
7
+ end
8
+ # pure: true
9
+ # builtin: true
10
+ # returns: String=
11
+ # integer: Fixnum= | Bignum= | Float=
12
+ # raises: never
13
+ def *(integer)
14
+ end
15
+ # pure: true
16
+ # builtin: true
17
+ # returns: String=
18
+ # other_str: String=
19
+ # raises: never
20
+ def +(other_str)
21
+ end
22
+ # pure: true
23
+ # builtin: true
24
+ # returns: String=
25
+ # int_or_obj: Fixnum= | Bignum= | String=
26
+ # raises: never
27
+ def <<(int_or_obj)
28
+ end
29
+ # pure: true
30
+ # builtin: true
31
+ # returns: NilClass | Fixnum=
32
+ # raises: never
33
+ def <=>(other_str)
34
+ end
35
+ # pure: true
36
+ # builtin: true
37
+ # returns: Boolean
38
+ # raises: never
39
+ def ==(other_str)
40
+ end
41
+ # pure: true
42
+ # builtin: true
43
+ # returns: Boolean
44
+ # raises: never
45
+ def ===(other_str)
46
+ end
47
+ # pure: true
48
+ # builtin: true
49
+ def =~(obj_or_reg)
50
+ end
51
+ # pure: true
52
+ # builtin: true
53
+ # returns: String=
54
+ def [](*args)
55
+ end
56
+ # pure: true
57
+ # builtin: true
58
+ # returns: String=
59
+ def []=(*args, val)
60
+ end
61
+ # pure: true
62
+ # builtin: true
63
+ # returns: Boolean
64
+ # raises: never
65
+ def ascii_only?
66
+ end
67
+ # pure: true
68
+ # builtin: true
69
+ # yield_usage: optional
70
+ # raises: never
71
+ def bytes
72
+ end
73
+ # pure: true
74
+ # builtin: true
75
+ # returns: Fixnum= | Bignum=
76
+ # raises: never
77
+ def bytesize
78
+ end
79
+ # pure: true
80
+ # builtin: true
81
+ # returns: String=
82
+ # raises: never
83
+ def capitalize
84
+ end
85
+ # pure: true
86
+ # builtin: true
87
+ # returns: NilClass | String=
88
+ # raises: never
89
+ def capitalize!
90
+ end
91
+ # pure: true
92
+ # builtin: true
93
+ # overload: String= -> Fixnum=
94
+ # overload: BasicObject -> NilClass
95
+ # raises: never
96
+ def casecmp(other_str)
97
+ end
98
+ # pure: true
99
+ # builtin: true
100
+ # returns: String=
101
+ # integer: Fixnum= | Bignum= | Float=
102
+ # raises: never
103
+ def center(integer, padstr=' ')
104
+ end
105
+ # pure: true
106
+ # builtin: true
107
+ # returns: String=
108
+ # yield_usage: optional
109
+ # raises: never
110
+ def chars
111
+ end
112
+ # pure: true
113
+ # builtin: true
114
+ # returns: String=
115
+ # separator: String=
116
+ # raises: never
117
+ def chomp(separator=$/)
118
+ end
119
+ # pure: true
120
+ # builtin: true
121
+ # separator: String=
122
+ # returns: String= | NilCLass
123
+ # raises: never
124
+ def chomp!(separator=$/)
125
+ end
126
+ # pure: true
127
+ # builtin: true
128
+ # returns: String=
129
+ # raises: never
130
+ def chop
131
+ end
132
+ # pure: true
133
+ # builtin: true
134
+ # raises: never
135
+ def chop!
136
+ end
137
+ # pure: true
138
+ # builtin: true
139
+ # returns: String=
140
+ # raises: never
141
+ def chr
142
+ end
143
+ # pure: true
144
+ # builtin: true
145
+ # returns: String=
146
+ # raises: never
147
+ def clear
148
+ end
149
+ # pure: true
150
+ # builtin: true
151
+ # yield_usage: optional
152
+ # raises: never
153
+ def codepoints
154
+ end
155
+ # pure: true
156
+ # builtin: true
157
+ # returns: String=
158
+ # int_or_obj: Fixnum= | Bignum= | String=
159
+ # raises: never
160
+ def concat(int_or_obj)
161
+ end
162
+ # pure: true
163
+ # builtin: true
164
+ # raises: never
165
+ # other_str: String=
166
+ def count(other_str, *more_strs)
167
+ end
168
+ # pure: true
169
+ # builtin: true
170
+ # returns: String=
171
+ # raises: never
172
+ # other_str: String=
173
+ def crypt(other_str)
174
+ end
175
+ # pure: true
176
+ # builtin: true
177
+ # returns: String=
178
+ # raises: never
179
+ # other_str: String=
180
+ def delete(other_str, *more_strs)
181
+ end
182
+ # pure: true
183
+ # builtin: true
184
+ # returns: String= | NilClass
185
+ # raises: never
186
+ # other_str: String=
187
+ def delete!(other_str, *more_strs)
188
+ end
189
+ # pure: true
190
+ # builtin: true
191
+ # returns: String=
192
+ # raises: never
193
+ def downcase
194
+ end
195
+ # pure: true
196
+ # builtin: true
197
+ # raises: never
198
+ # returns: String= | NilClass
199
+ def downcase!
200
+ end
201
+ # pure: true
202
+ # builtin: true
203
+ # returns: String=
204
+ # raises: never
205
+ def dump
206
+ end
207
+
208
+ alias each_byte bytes
209
+ alias each_char chars
210
+ alias each_codepoint codepoints
211
+ # pure: true
212
+ # builtin: true
213
+ # returns: Boolean
214
+ # raises: never
215
+ def empty?
216
+ end
217
+ # pure: true
218
+ # builtin: true
219
+ def encode(*args)
220
+ end
221
+ # pure: true
222
+ # builtin: true
223
+ def encode!(*args)
224
+ end
225
+ # pure: true
226
+ # builtin: true
227
+ # raises: never
228
+ # returns: Encoding
229
+ def encoding
230
+ end
231
+ # pure: true
232
+ # builtin: true
233
+ # returns: Boolean
234
+ # other_str: String=
235
+ # raises: never
236
+ def end_with?(other_str, *more_strs)
237
+ end
238
+ # pure: true
239
+ # builtin: true
240
+ # returns: Boolean
241
+ # raises: never
242
+ def eql?(other)
243
+ end
244
+ # pure: true
245
+ # builtin: true
246
+ def force_encoding(encoding)
247
+ end
248
+ # pure: true
249
+ # builtin: true
250
+ # index: Fixnum= | Float=
251
+ # returns: Fixnum=
252
+ # raises: IndexError=
253
+ def getbyte(index)
254
+ end
255
+ # pure: true
256
+ # builtin: true
257
+ # returns: String=
258
+ # yield_usage: optional
259
+ # pattern: Regexp= | String=
260
+ # maybe_arg: String= | Hash=
261
+ # raises: never
262
+ def gsub(pattern, maybe_arg=nil)
263
+ end
264
+ # pure: true
265
+ # builtin: true
266
+ # yield_usage: optional
267
+ # returns: String= | NilClass=
268
+ # pattern: Regexp= | String=
269
+ # maybe_arg: String= | Hash=
270
+ # raises: never
271
+ def gsub!(pattern, maybe_arg=nil)
272
+ end
273
+ # pure: true
274
+ # builtin: true
275
+ # returns: Fixnum= | Bignum=
276
+ # raises: never
277
+ def hash
278
+ end
279
+ # pure: true
280
+ # builtin: true
281
+ # returns: Fixnum= | Bignum=
282
+ # raises: never
283
+ def hex
284
+ end
285
+ # pure: true
286
+ # builtin: true
287
+ # returns: Boolean
288
+ # raises: never
289
+ # other_str: String=
290
+ def include?(other_str)
291
+ end
292
+ # pure: true
293
+ # builtin: true
294
+ # substring_or_reg: String= | Regexp=
295
+ # offset: Fixnum= | Bignum= | Float=
296
+ # raises: never
297
+ # returns: Fixnum= | Bignum= | NilClass=
298
+ def index(substring_or_reg, offset=0)
299
+ end
300
+ # pure: true
301
+ # builtin: true
302
+ # index: Fixnum= | Bignum=
303
+ # other_str: String=
304
+ # raises: IndexError=
305
+ def insert(index, other_str)
306
+ end
307
+ # pure: true
308
+ # builtin: true
309
+ # returns: String=
310
+ # raises: never
311
+ def inspect
312
+ end
313
+ # pure: true
314
+ # builtin: true
315
+ # returns: Symbol
316
+ # raises: never
317
+ def intern
318
+ end
319
+ # pure: true
320
+ # builtin: true
321
+ # returns: Fixnum= | Bignum=
322
+ # raises: never
323
+ def length
324
+ end
325
+ # pure: true
326
+ # builtin: true
327
+ # yield_usage: optional
328
+ # lines: String=
329
+ # raises: never
330
+ def lines(separator = $/)
331
+ end
332
+ alias each_line lines
333
+ # pure: true
334
+ # builtin: true
335
+ # returns: String=
336
+ # amt: Fixnum= | Bignum=
337
+ # padstr: String
338
+ # raises: never
339
+ def ljust(amt, padstr='')
340
+ end
341
+ # pure: true
342
+ # builtin: true
343
+ # returns: String=
344
+ # raises: never
345
+ def lstrip
346
+ end
347
+ # pure: true
348
+ # builtin: true
349
+ # returns: String= | NilClass
350
+ # raises: never
351
+ def lstrip!
352
+ end
353
+ # pure: true
354
+ # builtin: true
355
+ # raises: IndexError=
356
+ # pattern: String= | Regexp=
357
+ # pos: Fixnum= | Bignum=
358
+ def match(pattern, pos=0)
359
+ end
360
+ # pure: true
361
+ # builtin: true
362
+ # returns: String=
363
+ # raises: never
364
+ def next
365
+ end
366
+ # pure: true
367
+ # builtin: true
368
+ # returns: String=
369
+ # raises: never
370
+ def next!
371
+ end
372
+ # pure: true
373
+ # builtin: true
374
+ # returns: Fixnum= | Bignum=
375
+ # raises: never
376
+ def oct
377
+ end
378
+ # pure: true
379
+ # builtin: true
380
+ # returns: Fixnum= | Bignum=
381
+ # raises: never
382
+ def ord
383
+ end
384
+ # pure: true
385
+ # builtin: true
386
+ # returns: Array=
387
+ # raises: never
388
+ # sep_or_regex: String= | Regexp=
389
+ def partition(sep_or_regex)
390
+ end
391
+ # pure: true
392
+ # builtin: true
393
+ # raises: never
394
+ # other_str: String=
395
+ # returns: String
396
+ def replace(other_str)
397
+ end
398
+ # pure: true
399
+ # builtin: true
400
+ # returns: String=
401
+ # raises: never
402
+ def reverse
403
+ end
404
+ # pure: true
405
+ # builtin: true
406
+ # returns: String=
407
+ # raises: never
408
+ def reverse!
409
+ end
410
+ # pure: true
411
+ # builtin: true
412
+ # substring_or_reg: String= | Regexp=
413
+ # offset: Fixnum= | Bignum= | Float=
414
+ # raises: never
415
+ # returns: Fixnum= | Bignum= | NilClass=
416
+ def rindex(substring_or_regex, pos=0)
417
+ end
418
+ # pure: true
419
+ # builtin: true
420
+ # returns: String=
421
+ # amt: Fixnum= | Bignum=
422
+ # padstr: String
423
+ # raises: never
424
+ def rjust(integer, padstr=' ')
425
+ end
426
+ # pure: true
427
+ # builtin: true
428
+ # returns: Array=
429
+ # raises: never
430
+ # sep_or_regex: String= | Regexp=
431
+ def rpartition(sep_or_regex)
432
+ end
433
+ # pure: true
434
+ # builtin: true
435
+ # returns: String=
436
+ # raises: never
437
+ def rstrip
438
+ end
439
+ # pure: true
440
+ # builtin: true
441
+ # returns: String= | NilClass
442
+ # raises: never
443
+ def rstrip!
444
+ end
445
+ # pure: true
446
+ # builtin: true
447
+ # yield_usage: optional
448
+ # pattern: Regexp= | String=
449
+ # returns: Array=
450
+ # raises: never
451
+ def scan(pattern)
452
+ end
453
+ # pure: true
454
+ # builtin: true
455
+ # index: Fixnum= | Float=
456
+ # returns: Fixnum=
457
+ # raises: IndexError=
458
+ # int: Fixnum= | Float=
459
+ def setbyte(index, int)
460
+ end
461
+ # pure: true
462
+ # builtin: true
463
+ # returns: Fixnum= | Bignum=
464
+ # raises: never
465
+ def size
466
+ end
467
+ # pure: true
468
+ # builtin: true
469
+ # returns: String=
470
+ def slice(*args)
471
+ end
472
+ # pure: true
473
+ # builtin: true
474
+ def slice!(*args)
475
+ end
476
+ # pure: true
477
+ # builtin: true
478
+ # returns: Array=
479
+ # pattern: String= | Regexp=
480
+ # limit: Fixnum=
481
+ # raises: never
482
+ def split(pattern=$;, limit=nil)
483
+ end
484
+ # pure: true
485
+ # builtin: true
486
+ # returns: String=
487
+ # raises: never
488
+ def squeeze(*other_strs)
489
+ end
490
+ # pure: true
491
+ # builtin: true
492
+ # returns: String= | NilClass
493
+ # raises: never
494
+ def squeeze!(*other_strs)
495
+ end
496
+ # pure: true
497
+ # builtin: true
498
+ # returns: Boolean
499
+ # other_str: String=
500
+ # raises: never
501
+ def start_with?(prefix, *prefixes)
502
+ end
503
+ # pure: true
504
+ # builtin: true
505
+ # returns: String=
506
+ # raises: never
507
+ def strip
508
+ end
509
+ # pure: true
510
+ # builtin: true
511
+ # returns: String= | NilClass
512
+ # raises: never
513
+ def strip!
514
+ end
515
+ # pure: true
516
+ # builtin: true
517
+ # returns: String=
518
+ # yield_usage: optional
519
+ # pattern: String= | Regexp=
520
+ def sub(pattern, *rest)
521
+ end
522
+ # pure: true
523
+ # builtin: true
524
+ # yield_usage: optional
525
+ # returns: String= | NilClass
526
+ # pattern: String= | Regexp=
527
+ def sub!(pattern, *rest)
528
+ end
529
+ # pure: true
530
+ # builtin: true
531
+ # returns: String=
532
+ # raises: never
533
+ def succ
534
+ end
535
+ # pure: true
536
+ # builtin: true
537
+ # returns: String=
538
+ # raises: never
539
+ def succ!
540
+ end
541
+ # pure: true
542
+ # builtin: true
543
+ # returns: Fixnum= | Bignum=
544
+ # n: Fixnum=
545
+ # raises: never
546
+ def sum(n=16)
547
+ end
548
+ # pure: true
549
+ # builtin: true
550
+ # returns: String=
551
+ # raises: never
552
+ def swapcase
553
+ end
554
+ # pure: true
555
+ # builtin: true
556
+ # returns: String=
557
+ # raises: never
558
+ def swapcase!
559
+ end
560
+ # pure: true
561
+ # builtin: true
562
+ # returns: Complex
563
+ # raises: never
564
+ def to_c
565
+ end
566
+ # pure: true
567
+ # builtin: true
568
+ # returns: Float
569
+ # raises: never
570
+ def to_f
571
+ end
572
+ # pure: true
573
+ # builtin: true
574
+ # returns: Fixnum= | Bignum=
575
+ # base: Fixnum=
576
+ # raises: ArgumentError=
577
+ def to_i(base=10)
578
+ end
579
+ # pure: true
580
+ # builtin: true
581
+ # raises: never
582
+ def to_r
583
+ end
584
+ # pure: true
585
+ # builtin: true
586
+ # returns: String=
587
+ # raises: never
588
+ def to_s
589
+ end
590
+ # pure: true
591
+ # builtin: true
592
+ # returns: String=
593
+ # raises: never
594
+ def to_str
595
+ end
596
+ # pure: true
597
+ # builtin: true
598
+ # returns: Symbol
599
+ # raises: never
600
+ def to_sym
601
+ end
602
+ # pure: true
603
+ # builtin: true
604
+ # returns: String=
605
+ # from_str: String=
606
+ # to_str: String=
607
+ # raises: never
608
+ def tr(from_str, to_str)
609
+ end
610
+ # pure: true
611
+ # builtin: true
612
+ # from_str: String=
613
+ # to_str: String=
614
+ # raises: never
615
+ # returns: String= | NilClass=
616
+ def tr!(from_str, to_str)
617
+ end
618
+ # pure: true
619
+ # builtin: true
620
+ # returns: String=
621
+ # from_str: String=
622
+ # to_str: String=
623
+ # raises: never
624
+ def tr_s(from_str, to_str)
625
+ end
626
+ # pure: true
627
+ # builtin: true
628
+ # from_str: String=
629
+ # to_str: String=
630
+ # raises: never
631
+ # returns: String= | NilClass=
632
+ def tr_s!(from_str, to_str)
633
+ end
634
+ # pure: true
635
+ # builtin: true
636
+ # returns: Array
637
+ # raises: ArgumentError=
638
+ # format: String=
639
+ def unpack(format)
640
+ end
641
+ # pure: true
642
+ # builtin: true
643
+ # returns: String=
644
+ # raises: never
645
+ def upcase
646
+ end
647
+ # pure: true
648
+ # builtin: true
649
+ # raises: never
650
+ # returns: String= | NilCLass=
651
+ def upcase!
652
+ end
653
+ # pure: true
654
+ # builtin: true
655
+ # yield_usage: optional
656
+ # other_str: String=
657
+ # raises: never
658
+ def upto(other_str, exclusive = false)
659
+ end
660
+ # pure: true
661
+ # builtin: true
662
+ # returns: Boolean
663
+ # raises: never
664
+ def valid_encoding?
665
+ end
666
+ end