Project

General

Profile

Actions

Bug #14732

closed

CGI.unescape returns different instance between Ruby 2.3 and 2.4

Added by jnchito (Junichi Ito) almost 6 years ago. Updated almost 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:86847]
Tags:

Description

In Ruby 2.3, CGI.unescape always returns String object:

$ ruby -v -rcgi/util -e 'class S < String; end; puts CGI.unescape(S.new("a")).class'

ruby 2.3.6p384 (2017-12-14 revision 61254) [x86_64-darwin17]
String

But in Ruby 2.4, it might return non-String object when the argument value is not a String instance:

$ ruby -v -rcgi/util -e 'class S < String; end; puts CGI.unescape(S.new("a")).class'

ruby 2.4.4p296 (2018-03-28 revision 63013) [x86_64-darwin17]
S

This change triggered the following issue:

https://github.com/rest-client/rest-client/issues/662

Is this change intentional?

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0