From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 9DFC61F66F for ; Sat, 21 Nov 2020 05:35:30 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 338DC120B43; Sat, 21 Nov 2020 14:34:43 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 60F5C120B42 for ; Sat, 21 Nov 2020 14:34:40 +0900 (JST) Received: by filterdrecv-p3iad2-5dc87598f5-6zpmd with SMTP id filterdrecv-p3iad2-5dc87598f5-6zpmd-20-5FB8A713-19 2020-11-21 05:35:15.666944132 +0000 UTC m=+378268.058135767 Received: from herokuapp.com (unknown) by ismtpd0121p1mdw1.sendgrid.net (SG) with ESMTP id YPKaV-VRSf2n2Af_8leJDQ for ; Sat, 21 Nov 2020 05:35:15.558 +0000 (UTC) Date: Sat, 21 Nov 2020 05:35:15 +0000 (UTC) From: naruse@airemix.jp Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 76872 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Bug X-Redmine-Issue-Id: 10845 X-Redmine-Issue-Author: sawa X-Redmine-Issue-Assignee: matz X-Redmine-Sender: naruse X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-SG-EID: =?us-ascii?Q?UqoG4vcRhHM9V1I4f4J7DhjzUfTg+8muXbMD6UD+LVT2XRGTBXGqgLDK75y4Qe?= =?us-ascii?Q?7ctD=2FiBQITvvILTV4b7toxMCEgNw4=2FpHpKcj5rg?= =?us-ascii?Q?Ve=2FRRfGebgwXnN=2FIXRV=2F+q=2F2Kq0OOXKcXlMC9uV?= =?us-ascii?Q?Gx2vZ4Z144KYXHy8WNst5M5VgXlurSE0DaFWr8A?= =?us-ascii?Q?wnuTUnVx3HCJ9q9IT1QPlG7=2FIOofYVMqpChy=2Fk4?= =?us-ascii?Q?yxYsrTOfI2dT7IQ2A=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 100998 Subject: [ruby-core:100998] [Ruby master Bug#10845] Subclassing String X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #10845 has been updated by naruse (Yui NARUSE). In 2.7 we break large compatibilities, and this tickets breaks Rails again. "Rails master already fixes it" doesn't care the problem; we breaks compatibility. Breaking compatibility itself is not problem, but we can provide very small benefit for Rails application in 2.7 and 3.0. We only provide disadvantages in recent versions. Ractor and types are great milestone for future Rails, but they are not for Rails at this time. I'm serious about the motivation of upgrading to Ruby 3.0 for Rails users. I worry that so much. ---------------------------------------- Bug #10845: Subclassing String https://bugs.ruby-lang.org/issues/10845#change-88665 * Author: sawa (Tsuyoshi Sawada) * Status: Closed * Priority: Normal * Assignee: matz (Yukihiro Matsumoto) * ruby -v: 2.2 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- If I make a subclass of `String`, the method `*` returns an instance of that class. ~~~ruby class MyString < String end MyString.new("foo").*(2).class #=> MyString ~~~ This is different from other similar operations like `+` and `%`, which return a `String` instance. ~~~ruby MyString.new("foo").+("bar").class #=> String MyString.new("%{foo}").%(foo: "bar").class #=> String ~~~ I don't see clear reason why `*` is to be different from `+` and `%`, and thought that perhaps either the behaviour with `*` is a bug, or the behaviour with `+` and `%` is a bug. Or, is a reason why they are different? -- https://bugs.ruby-lang.org/