mail
mail copied to clipboard
Warnings when parsing
When I create a new Mail::Address object, a long list of warnings it output. For example, this code:
#!/usr/bin/ruby -w
require 'mail'
Mail::Address.new '[email protected]'
produces these errors:
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32454: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32615: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32651: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32740: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32756: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32822: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32863: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32888: warning: statement not reached
/var/lib/gems/2.5.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:31984: warning: assigned but unused variable - testEof
The fixes are actually pretty easy... all that's needed is removing some lines. I've attached a file in which I made those changes. Just search for "CHANGE:"
A fix would be really appreciated. I get the warnings in all my RSpec tests even though my app does not have anything to do with the mail gem:
/home/mic/.rbenv/versions/2.6.5/bin/ruby -I/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rspec-core-3.9.1/lib:/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rspec-support-3.9.2/lib /home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rspec-core-3.9.1/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32454: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32615: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32651: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32740: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32756: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32822: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32863: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:32888: warning: statement not reached
/home/mic/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/mail-2.7.1/lib/mail/parsers/address_lists_parser.rb:31984: warning: assigned but unused variable - testEof
I get the following warnings when I run tests for my project:
/home/ruslan/.rvm/gems/ruby-2.7.1/gems/mail-2.7.1/lib/mail/parsers/content_type_parser.rb:939: warning: statement not reached
/home/ruslan/.rvm/gems/ruby-2.7.1/gems/mail-2.7.1/lib/mail/parsers/content_type_parser.rb:963: warning: statement not reached
/home/ruslan/.rvm/gems/ruby-2.7.1/gems/mail-2.7.1/lib/mail/parsers/content_type_parser.rb:709: warning: assigned but unused variable - testEof
In the case of unreachable statements, it looks like there are at least two instances where a block is preceded by next, making the block unreachable.
Did a blog post on how to suppress those when it's not patched upstream: https://dev.to/qortex/ruby-suppress-those-warnings-you-can-t-do-anything-about-6ie