brakeman 5.2.0 → 5.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +38 -0
  3. data/bundle/load.rb +4 -4
  4. data/bundle/ruby/2.7.0/gems/{parallel-1.21.0 → parallel-1.22.1}/MIT-LICENSE.txt +0 -0
  5. data/bundle/ruby/2.7.0/gems/{parallel-1.21.0 → parallel-1.22.1}/lib/parallel/processor_count.rb +2 -3
  6. data/bundle/ruby/2.7.0/gems/parallel-1.22.1/lib/parallel/version.rb +4 -0
  7. data/bundle/ruby/2.7.0/gems/{parallel-1.21.0 → parallel-1.22.1}/lib/parallel.rb +84 -4
  8. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/History.rdoc +28 -0
  9. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/Manifest.txt +2 -0
  10. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/README.rdoc +8 -6
  11. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/compare/normalize.rb +0 -0
  12. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/debugging.md +0 -0
  13. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/gauntlet.md +19 -18
  14. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/rp_extensions.rb +0 -0
  15. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/rp_stringscanner.rb +0 -0
  16. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby20_parser.rb +10973 -0
  17. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby20_parser.y +14 -27
  18. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby21_parser.rb +10980 -0
  19. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby21_parser.y +14 -27
  20. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby22_parser.rb +11123 -0
  21. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby22_parser.y +14 -27
  22. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby23_parser.rb +11132 -0
  23. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby23_parser.y +14 -27
  24. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby24_parser.rb +11231 -0
  25. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby24_parser.y +14 -27
  26. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby25_parser.rb +11231 -0
  27. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby25_parser.y +14 -27
  28. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby26_parser.rb +11253 -0
  29. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby26_parser.y +14 -27
  30. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby27_parser.rb +12980 -0
  31. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby27_parser.y +19 -41
  32. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby30_parser.rb +13242 -0
  33. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby30_parser.y +65 -90
  34. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby31_parser.rb +13622 -0
  35. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1/lib/ruby3_parser.yy → ruby_parser-3.19.1/lib/ruby31_parser.y} +110 -105
  36. data/bundle/ruby/2.7.0/gems/ruby_parser-3.19.1/lib/ruby3_parser.yy +3536 -0
  37. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby_lexer.rb +0 -0
  38. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby_lexer.rex +0 -0
  39. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby_lexer.rex.rb +0 -0
  40. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby_lexer_strings.rb +0 -0
  41. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby_parser.rb +2 -0
  42. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby_parser.yy +19 -41
  43. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/lib/ruby_parser_extras.rb +55 -2
  44. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/tools/munge.rb +0 -0
  45. data/bundle/ruby/2.7.0/gems/{ruby_parser-3.18.1 → ruby_parser-3.19.1}/tools/ripper.rb +0 -0
  46. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/History.rdoc +6 -0
  47. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/Manifest.txt +0 -0
  48. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/README.rdoc +0 -0
  49. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/lib/composite_sexp_processor.rb +0 -0
  50. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/lib/pt_testcase.rb +7 -3
  51. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/lib/sexp.rb +0 -0
  52. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/lib/sexp_matcher.rb +0 -0
  53. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/lib/sexp_processor.rb +1 -1
  54. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/lib/strict_sexp.rb +0 -0
  55. data/bundle/ruby/2.7.0/gems/{sexp_processor-4.16.0 → sexp_processor-4.16.1}/lib/unique.rb +0 -0
  56. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/COPYING +0 -0
  57. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/asciidoc.rb +0 -0
  58. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/babel.rb +0 -0
  59. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/bluecloth.rb +0 -0
  60. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/builder.rb +0 -0
  61. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/coffee.rb +0 -0
  62. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/commonmarker.rb +11 -1
  63. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/creole.rb +0 -0
  64. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/csv.rb +1 -1
  65. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/dummy.rb +0 -0
  66. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/erb.rb +0 -0
  67. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/erubi.rb +0 -0
  68. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/erubis.rb +0 -0
  69. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/etanni.rb +0 -0
  70. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/haml.rb +0 -0
  71. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/kramdown.rb +0 -0
  72. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/less.rb +0 -0
  73. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/liquid.rb +0 -0
  74. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/livescript.rb +0 -0
  75. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/mapping.rb +0 -0
  76. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/markaby.rb +0 -0
  77. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/maruku.rb +0 -0
  78. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/nokogiri.rb +0 -0
  79. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/pandoc.rb +23 -15
  80. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/plain.rb +0 -0
  81. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/prawn.rb +0 -0
  82. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/radius.rb +0 -0
  83. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/rdiscount.rb +0 -0
  84. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/rdoc.rb +0 -0
  85. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/redcarpet.rb +5 -2
  86. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/redcloth.rb +0 -0
  87. data/bundle/ruby/2.7.0/gems/tilt-2.0.11/lib/tilt/rst-pandoc.rb +23 -0
  88. data/bundle/ruby/2.7.0/gems/tilt-2.0.11/lib/tilt/sass.rb +78 -0
  89. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/sigil.rb +0 -0
  90. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/string.rb +0 -0
  91. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/template.rb +12 -1
  92. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/typescript.rb +0 -0
  93. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/wikicloth.rb +0 -0
  94. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt/yajl.rb +0 -0
  95. data/bundle/ruby/2.7.0/gems/{tilt-2.0.10 → tilt-2.0.11}/lib/tilt.rb +2 -1
  96. data/lib/brakeman/app_tree.rb +9 -1
  97. data/lib/brakeman/checks/check_basic_auth.rb +4 -2
  98. data/lib/brakeman/checks/check_basic_auth_timing_attack.rb +2 -1
  99. data/lib/brakeman/checks/check_content_tag.rb +8 -4
  100. data/lib/brakeman/checks/check_cookie_serialization.rb +2 -1
  101. data/lib/brakeman/checks/check_create_with.rb +4 -2
  102. data/lib/brakeman/checks/check_cross_site_scripting.rb +6 -3
  103. data/lib/brakeman/checks/check_csrf_token_forgery_cve.rb +2 -1
  104. data/lib/brakeman/checks/check_default_routes.rb +6 -3
  105. data/lib/brakeman/checks/check_deserialize.rb +2 -1
  106. data/lib/brakeman/checks/check_detailed_exceptions.rb +4 -2
  107. data/lib/brakeman/checks/check_digest_dos.rb +2 -1
  108. data/lib/brakeman/checks/check_divide_by_zero.rb +2 -1
  109. data/lib/brakeman/checks/check_dynamic_finders.rb +2 -1
  110. data/lib/brakeman/checks/check_escape_function.rb +2 -1
  111. data/lib/brakeman/checks/check_evaluation.rb +2 -1
  112. data/lib/brakeman/checks/check_execute.rb +6 -3
  113. data/lib/brakeman/checks/check_file_access.rb +2 -1
  114. data/lib/brakeman/checks/check_file_disclosure.rb +2 -1
  115. data/lib/brakeman/checks/check_filter_skipping.rb +2 -1
  116. data/lib/brakeman/checks/check_force_ssl.rb +2 -1
  117. data/lib/brakeman/checks/check_forgery_setting.rb +4 -2
  118. data/lib/brakeman/checks/check_header_dos.rb +2 -1
  119. data/lib/brakeman/checks/check_i18n_xss.rb +2 -1
  120. data/lib/brakeman/checks/check_jruby_xml.rb +2 -1
  121. data/lib/brakeman/checks/check_json_encoding.rb +2 -1
  122. data/lib/brakeman/checks/check_json_entity_escape.rb +4 -2
  123. data/lib/brakeman/checks/check_json_parsing.rb +4 -2
  124. data/lib/brakeman/checks/check_link_to.rb +2 -1
  125. data/lib/brakeman/checks/check_link_to_href.rb +4 -2
  126. data/lib/brakeman/checks/check_mail_to.rb +2 -1
  127. data/lib/brakeman/checks/check_mass_assignment.rb +6 -3
  128. data/lib/brakeman/checks/check_mime_type_dos.rb +2 -1
  129. data/lib/brakeman/checks/check_model_attr_accessible.rb +2 -1
  130. data/lib/brakeman/checks/check_model_attributes.rb +4 -2
  131. data/lib/brakeman/checks/check_model_serialize.rb +2 -1
  132. data/lib/brakeman/checks/check_nested_attributes.rb +2 -1
  133. data/lib/brakeman/checks/check_nested_attributes_bypass.rb +2 -1
  134. data/lib/brakeman/checks/check_number_to_currency.rb +4 -2
  135. data/lib/brakeman/checks/check_page_caching_cve.rb +2 -1
  136. data/lib/brakeman/checks/check_pathname.rb +48 -0
  137. data/lib/brakeman/checks/check_permit_attributes.rb +2 -1
  138. data/lib/brakeman/checks/check_quote_table_name.rb +2 -1
  139. data/lib/brakeman/checks/check_redirect.rb +7 -2
  140. data/lib/brakeman/checks/check_regex_dos.rb +2 -1
  141. data/lib/brakeman/checks/check_render.rb +4 -2
  142. data/lib/brakeman/checks/check_render_dos.rb +2 -1
  143. data/lib/brakeman/checks/check_render_inline.rb +4 -2
  144. data/lib/brakeman/checks/check_response_splitting.rb +2 -1
  145. data/lib/brakeman/checks/check_reverse_tabnabbing.rb +2 -1
  146. data/lib/brakeman/checks/check_route_dos.rb +2 -1
  147. data/lib/brakeman/checks/check_safe_buffer_manipulation.rb +2 -1
  148. data/lib/brakeman/checks/check_sanitize_config_cve.rb +120 -0
  149. data/lib/brakeman/checks/check_sanitize_methods.rb +6 -3
  150. data/lib/brakeman/checks/check_secrets.rb +2 -1
  151. data/lib/brakeman/checks/check_select_tag.rb +2 -1
  152. data/lib/brakeman/checks/check_select_vulnerability.rb +2 -1
  153. data/lib/brakeman/checks/check_send.rb +2 -1
  154. data/lib/brakeman/checks/check_session_manipulation.rb +2 -1
  155. data/lib/brakeman/checks/check_session_settings.rb +6 -3
  156. data/lib/brakeman/checks/check_simple_format.rb +4 -2
  157. data/lib/brakeman/checks/check_single_quotes.rb +2 -1
  158. data/lib/brakeman/checks/check_skip_before_filter.rb +4 -2
  159. data/lib/brakeman/checks/check_sprockets_path_traversal.rb +2 -1
  160. data/lib/brakeman/checks/check_sql.rb +7 -4
  161. data/lib/brakeman/checks/check_sql_cves.rb +4 -2
  162. data/lib/brakeman/checks/check_ssl_verify.rb +2 -1
  163. data/lib/brakeman/checks/check_strip_tags.rb +6 -3
  164. data/lib/brakeman/checks/check_symbol_dos.rb +2 -1
  165. data/lib/brakeman/checks/check_symbol_dos_cve.rb +2 -1
  166. data/lib/brakeman/checks/check_template_injection.rb +2 -1
  167. data/lib/brakeman/checks/check_translate_bug.rb +2 -1
  168. data/lib/brakeman/checks/check_unsafe_reflection.rb +9 -3
  169. data/lib/brakeman/checks/check_unsafe_reflection_methods.rb +2 -1
  170. data/lib/brakeman/checks/check_unscoped_find.rb +2 -1
  171. data/lib/brakeman/checks/check_validation_regex.rb +2 -1
  172. data/lib/brakeman/checks/check_verb_confusion.rb +2 -1
  173. data/lib/brakeman/checks/check_weak_hash.rb +6 -3
  174. data/lib/brakeman/checks/check_weak_rsa_key.rb +112 -0
  175. data/lib/brakeman/checks/check_without_protection.rb +2 -1
  176. data/lib/brakeman/checks/check_xml_dos.rb +2 -1
  177. data/lib/brakeman/checks/check_yaml_parsing.rb +4 -2
  178. data/lib/brakeman/checks/eol_check.rb +4 -2
  179. data/lib/brakeman/options.rb +1 -1
  180. data/lib/brakeman/processors/alias_processor.rb +69 -7
  181. data/lib/brakeman/processors/lib/find_all_calls.rb +1 -0
  182. data/lib/brakeman/processors/lib/rails3_config_processor.rb +1 -1
  183. data/lib/brakeman/report/ignore/interactive.rb +2 -2
  184. data/lib/brakeman/report/report_codeclimate.rb +1 -1
  185. data/lib/brakeman/report/report_csv.rb +2 -0
  186. data/lib/brakeman/report/report_junit.rb +2 -2
  187. data/lib/brakeman/report/report_table.rb +5 -5
  188. data/lib/brakeman/report/report_text.rb +2 -0
  189. data/lib/brakeman/report/templates/controller_warnings.html.erb +2 -0
  190. data/lib/brakeman/report/templates/ignored_warnings.html.erb +2 -0
  191. data/lib/brakeman/report/templates/model_warnings.html.erb +2 -0
  192. data/lib/brakeman/report/templates/security_warnings.html.erb +2 -0
  193. data/lib/brakeman/report/templates/view_warnings.html.erb +2 -0
  194. data/lib/brakeman/tracker/config.rb +26 -24
  195. data/lib/brakeman/version.rb +1 -1
  196. data/lib/brakeman/warning.rb +5 -2
  197. data/lib/brakeman/warning_codes.rb +7 -0
  198. metadata +98 -93
  199. data/bundle/ruby/2.7.0/gems/parallel-1.21.0/lib/parallel/version.rb +0 -4
  200. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby20_parser.rb +0 -7128
  201. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby21_parser.rb +0 -7182
  202. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby22_parser.rb +0 -7228
  203. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby23_parser.rb +0 -7237
  204. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby24_parser.rb +0 -7268
  205. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby25_parser.rb +0 -7268
  206. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby26_parser.rb +0 -7287
  207. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby27_parser.rb +0 -8517
  208. data/bundle/ruby/2.7.0/gems/ruby_parser-3.18.1/lib/ruby30_parser.rb +0 -8751
  209. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/rst-pandoc.rb +0 -18
  210. data/bundle/ruby/2.7.0/gems/tilt-2.0.10/lib/tilt/sass.rb +0 -52
@@ -689,8 +689,7 @@ rule
689
689
 
690
690
  cpath: tCOLON3 cname
691
691
  {
692
- _, (name, line) = val
693
- result = s(:colon3, name.to_sym).line line
692
+ result = wrap :colon3, val[1]
694
693
  }
695
694
  | cname
696
695
  {
@@ -715,9 +714,7 @@ rule
715
714
 
716
715
  fitem: fname
717
716
  {
718
- (id, line), = val
719
-
720
- result = s(:lit, id.to_sym).line line
717
+ result = wrap :lit, val[0]
721
718
  }
722
719
  | symbol
723
720
 
@@ -786,9 +783,9 @@ rule
786
783
  }
787
784
  | tCOLON3 tCONSTANT tOP_ASGN arg_rhs
788
785
  {
789
- _, (lhs, line), op, rhs = val
786
+ _, lhs, op, rhs = val
790
787
 
791
- lhs = s(:colon3, lhs.to_sym).line line
788
+ lhs = wrap :colon3, lhs
792
789
  result = new_const_op_asgn [lhs, op, rhs]
793
790
  }
794
791
  | backref tOP_ASGN arg_rhs
@@ -1190,9 +1187,7 @@ rule
1190
1187
  }
1191
1188
  | tCOLON3 tCONSTANT
1192
1189
  {
1193
- _, (id, line) = val
1194
-
1195
- result = s(:colon3, id.to_sym).line line
1190
+ result = wrap :colon3, val[1]
1196
1191
  }
1197
1192
  | tLBRACK { result = lexer.lineno } aref_args tRBRACK
1198
1193
  {
@@ -1686,8 +1681,7 @@ opt_block_args_tail: tCOMMA block_args_tail
1686
1681
 
1687
1682
  bvar: tIDENTIFIER
1688
1683
  {
1689
- (id, line), = val
1690
- result = s(:shadow, id.to_sym).line line
1684
+ result = wrap :shadow, val[0]
1691
1685
  }
1692
1686
  | f_bad_arg
1693
1687
 
@@ -2202,18 +2196,15 @@ regexp_contents: none
2202
2196
 
2203
2197
  string_dvar: tGVAR
2204
2198
  {
2205
- (id, line), = val
2206
- result = s(:gvar, id.to_sym).line line
2199
+ result = wrap :gvar, val[0]
2207
2200
  }
2208
2201
  | tIVAR
2209
2202
  {
2210
- (id, line), = val
2211
- result = s(:ivar, id.to_sym).line line
2203
+ result = wrap :ivar, val[0]
2212
2204
  }
2213
2205
  | tCVAR
2214
2206
  {
2215
- (id, line), = val
2216
- result = s(:cvar, id.to_sym).line line
2207
+ result = wrap :cvar, val[0]
2217
2208
  }
2218
2209
  | backref
2219
2210
 
@@ -2222,17 +2213,13 @@ regexp_contents: none
2222
2213
 
2223
2214
  ssym: tSYMBEG sym
2224
2215
  {
2225
- _, (id, line) = val
2226
-
2227
2216
  lexer.lex_state = EXPR_END
2228
- result = s(:lit, id.to_sym).line line
2217
+ result = wrap :lit, val[1]
2229
2218
  }
2230
2219
  | tSYMBOL
2231
2220
  {
2232
- (id, line), = val
2233
-
2234
2221
  lexer.lex_state = EXPR_END
2235
- result = s(:lit, id.to_sym).line line
2222
+ result = wrap :lit, val[0]
2236
2223
  }
2237
2224
 
2238
2225
  sym: fname | tIVAR | tGVAR | tCVAR
@@ -2676,10 +2663,10 @@ keyword_variable: kNIL { result = s(:nil).line lexer.lineno }
2676
2663
  }
2677
2664
  | tLABEL arg_value
2678
2665
  {
2679
- (label, line), arg = val
2666
+ label, arg = val
2680
2667
 
2681
- lit = s(:lit, label.to_sym).line line
2682
- result = s(:array, lit, arg).line line
2668
+ lit = wrap :lit, label
2669
+ result = s(:array, lit, arg).line lit.line
2683
2670
  }
2684
2671
  | tSTRING_BEG string_contents tLABEL_END arg_value
2685
2672
  {