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-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=no 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 14B101F54E for ; Sat, 27 Aug 2022 15:15:06 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sendgrid.me header.i=@sendgrid.me header.b="NS4+PRvw"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 094CC121150; Sun, 28 Aug 2022 00:15:03 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id E39401211B3 for ; Sun, 28 Aug 2022 00:15:00 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=smtpapi; bh=6gCWFYcfkCxPY13m7e1ikv+FWmfTePxOLwzQkNAhMsk=; b=NS4+PRvwkza8ZcO/Bg09vplWwEYj6QUf2O0dq3BG3X0Zfx0iuRmdFVRw05jjtRJ5RbN/ QupifhHsRLdibifS7Qw6Jbr3YKnEMc+3fA/pwKs366302StLE9Fi48wKPJ9j38yyig0O+v OdLiwm3JxLSaNIFLNqNG2XLK0R1oW4Sgs= Received: by filterdrecv-54c4d84b8c-kgfh8 with SMTP id filterdrecv-54c4d84b8c-kgfh8-1-630A34F3-B 2022-08-27 15:14:59.181609882 +0000 UTC m=+147841.780039867 Received: from herokuapp.com (unknown) by geopod-ismtpd-6-2 (SG) with ESMTP id HLQ2i71WSAC_NrFpNJyjFw for ; Sat, 27 Aug 2022 15:14:59.115 +0000 (UTC) Date: Sat, 27 Aug 2022 15:14:59 +0000 (UTC) From: retro Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 18951 X-Redmine-Issue-Author: byroot X-Redmine-Sender: retro 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-Redmine-MailingListIntegration-Message-Ids: 86181 X-SG-EID: =?us-ascii?Q?KiMdjn6Cw4V1gEmFM3gv0RAz25=2FqrKA1qx+Sp+16gOZzFINWgjp5mp6uC4S=2Fts?= =?us-ascii?Q?MAu9jl6TYVpswIlj0A0qVZAjcHOdSOt9CrVtGJr?= =?us-ascii?Q?EhFsimnuSi3=2FYULno3WtReg3ET+ELUzLDxSiLTf?= =?us-ascii?Q?fy7XEOPWsy4E0OnZ7yfkZsxEZMluQY+BcrTQF47?= =?us-ascii?Q?g536IsrOZSiDsmRwiqm6aXCUOy+HG8Dw39mU5qg?= =?us-ascii?Q?+gmlcBAvYEX5pD1HjMaiCM06pQMjFog1qQ2dkE7?= =?us-ascii?Q?t3hO6ZcM9=2F6LMSovmHmkA=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109740 Subject: [ruby-core:109740] [Ruby master Feature#18951] Object#with to set and restore attributes around a block X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE4OTUxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgcmV0cm8gKEpvc2VmIMWgaW3DoW5layku DQoNCg0KVGhlcmUgYXJlIHNpbWlsYXIgbWV0aG9kcyAoYHdpdGhfKmApIGFjcm9zcyB2YXJpb3Vz IHBvcHVsYXIgZ2Vtcy4gRm9yIGV4YW1wbGUgYEkxOG4ud2l0aF9sb2NhbGUobG9jYWxlKWAuIEJ1 dCBgV0lUSGAgaXMgYWxzbyBTUUwga2V5d29yZCBhbmQgd2FzIHJlY2VudGx5IGFkZGVkIHRvIGBB Y3RpdmVSZWNvcmRgIChodHRwczovL2dpdGh1Yi5jb20vcmFpbHMvcmFpbHMvY29tbWl0LzA5OGIw ZWI1ZGJjZjFhOTQyYzRlNzI3ZGNkYzE1MDE1MWJlYTUxYWIpLg0KDQpJIHdhcyB0aGlua2luZyBh Ym91dCBleHRlbmRpbmcgYHRhcGAuDQoNCmBgYHJ1YnkNCkkxOG4udGFwKHdpdGg6IHtsb2NhbGU6 IDplbmR9KSBkbw0KICAjDQplbmQNCmBgYA0KDQpidXQgdGhhdCBzZWVtcyB0byB2ZXJib3NlLiBP dGhlciBvcHRpb24gd291bGQgYmUgdG8gaW50cm9kdWNlIGB0YXBfd2l0aGAgbWV0aG9kLg0KDQpg YGBydWJ5DQpJMThuLnRhcF93aXRoKGxvY2FsZTogOmVuZCkgZG8NCiAgIw0KZW5kDQpgYGANCg0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMTg5NTE6 IE9iamVjdCN3aXRoIHRvIHNldCBhbmQgcmVzdG9yZSBhdHRyaWJ1dGVzIGFyb3VuZCBhIGJsb2Nr DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTg5NTEjY2hhbmdlLTk4OTc2DQoN CiogQXV0aG9yOiBieXJvb3QgKEplYW4gQm91c3NpZXIpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlv cml0eTogTm9ybWFsDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoj IyMgVXNlIGNhc2UNCg0KQSB2ZXJ5IGNvbW1vbiBwYXR0ZXJuIGluIFJ1YnksIGVzcGVjaWFsbHkg aW4gdGVzdGluZyBpcyB0byBzYXZlIHRoZSB2YWx1ZSBvZiBhbiBhdHRyaWJ1dGUsIHNldCBhIG5l dyB2YWx1ZSwgYW5kIHRoZW4gcmVzdG9yZSB0aGUgb2xkIHZhbHVlIGluIGFuIGBlbnN1cmVgIGNs YXVzZS4NCg0KZS5nLiBpbiB1bml0IHRlc3RzDQoNCmBgYHJ1YnkNCmRlZiB0ZXN0X3NvbWV0aGlu Z193aGVuX2VuYWJsZWQNCiAgZW5hYmxlZF93YXMsIFNvbWVMaWJyYXJ5LmVuYWJsZWQgPSBTb21l TGlicmFyeS5lbmFibGVkLCB0cnVlDQogICMgdGVzdCB0aGluZ3MNCmVuc3VyZQ0KICBTb21lTGli cmFyeS5lbmFibGVkID0gZW5hYmxlZF93YXMNCmVuZA0KYGBgDQoNCk9yIHNvbWV0aW1lIGluIGFj dHVhbCBBUElzOg0KDQpgYGBydWJ5DQpkZWYgd2l0aF9zb21ldGhpbmdfZW5hYmxlZA0KICBlbmFi bGVkX3dhcyA9IEBlbmFibGVkDQogIEBlbmFibGVkID0gdHJ1ZQ0KICB5aWVsZA0KZW5zdXJlDQog IEBlbmFibGVkID0gZW5hYmxlZF93YXMNCmVuZA0KYGBgDQoNClRoZXJlIGlzIG5vIGluaGVyZW50 IHByb2JsZW0gd2l0aCB0aGlzIHBhdHRlcm4sIGJ1dCBpdCBjYW4gYmUgZWFzeSB0byBtYWtlIGEg bWlzdGFrZSwgZm9yIGluc3RhbmNlIHRoZSB1bml0IHRlc3QgZXhhbXBsZToNCg0KYGBgcnVieQ0K ZGVmIHRlc3Rfc29tZXRoaW5nX3doZW5fZW5hYmxlZA0KICBzb21lX2NhbGxfdGhhdF9tYXlfcmFp c2UNCiAgZW5hYmxlZF93YXMsIFNvbWVMaWJyYXJ5LmVuYWJsZWQgPSBTb21lTGlicmFyeS5lbmFi bGVkLCB0cnVlDQogICMgdGVzdCB0aGluZ3MNCmVuc3VyZQ0KICBTb21lTGlicmFyeS5lbmFibGVk ID0gZW5hYmxlZF93YXMNCmVuZA0KYGBgDQoNCkluIHRoZSBhYm92ZSBpZiBgc29tZV9jYWxsX3Ro YXRfbWF5X3JhaXNlYCBhY3R1YWxseSByYWlzZXMsIGBTb21lTGlicmFyeS5lbmFibGVkYCBpcyBz ZXQgYmFjayB0byBgbmlsYCByYXRoZXIgdGhhbiBpdHMgb3JpZ2luYWwgdmFsdWUuIEkndmUgc2Vl biB0aGlzIG1pc3Rha2UgcXVpdGUgZnJlcXVlbnRseS4NCg0KIyMjIFByb3Bvc2FsDQoNCkkgdGhp bmsgaXQgd291bGQgYmUgdmVyeSB1c2VmdWwgdG8gaGF2ZSBhIG1ldGhvZCBvbiBPYmplY3QgdG8g aW1wbGVtZW50IHRoaXMgcGF0dGVybiBpbiBhIGNvcnJlY3QgYW5kIGVhc3kgdG8gdXNlIHdheS4g VGhlIG5haXZlIFJ1YnkgaW1wbGVtZW50YXRpb24gd291bGQgYmU6DQoNCmBgYHJ1YnkNCmNsYXNz IE9iamVjdA0KICBkZWYgd2l0aCgqKmF0dHJpYnV0ZXMpDQogICAgb2xkX3ZhbHVlcyA9IHt9DQog ICAgYXR0cmlidXRlcy5lYWNoX2tleSBkbyB8a2V5fA0KICAgICAgb2xkX3ZhbHVlc1trZXldID0g cHVibGljX3NlbmQoa2V5KQ0KICAgIGVuZA0KICAgIGJlZ2luDQogICAgICBhdHRyaWJ1dGVzLmVh Y2ggZG8gfGtleSwgdmFsdWV8DQogICAgICAgIHB1YmxpY19zZW5kKCIje2tleX09IiwgdmFsdWUp DQogICAgICBlbmQNCiAgICAgIHlpZWxkDQogICAgZW5zdXJlDQogICAgICBvbGRfdmFsdWVzLmVh Y2ggZG8gfGtleSwgb2xkX3ZhbHVlfA0KICAgICAgICBwdWJsaWNfc2VuZCgiI3trZXl9PSIsIG9s ZF92YWx1ZSkNCiAgICAgIGVuZA0KICAgIGVuZA0KICBlbmQNCmVuZA0KYGBgDQoNCk5COiBgcHVi bGljX3NlbmRgIGlzIHVzZWQgYmVjYXVzZSBJIGRvbid0IHRoaW5rIHN1Y2ggbWV0aG9kIHNob3Vs ZCBiZSB1c2FibGUgaWYgdGhlIGFjY2Vzc29ycyBhcmUgcHJpdmF0ZS4NCg0KV2l0aCB1c2FnZToN Cg0KYGBgcnVieQ0KZGVmIHRlc3Rfc29tZXRoaW5nX3doZW5fZW5hYmxlZA0KICBTb21lTGlicmFy eS53aXRoKGVuYWJsZWQ6IHRydWUpIGRvDQogICAgIyB0ZXN0IHRoaW5ncw0KICBlbmQNCmVuZA0K YGBgDQoNCmBgYHJ1YnkNCkdDLndpdGgobWVhc3VyZV90b3RhbF90aW1lOiB0cnVlLCBhdXRvX2Nv bXBhY3Q6IGZhbHNlKSBkbw0KICAjIGRvIHNvbWV0aGluZw0KZW5kDQpgYGANCg0KIyMjIEFsdGVy bmF0ZSBuYW1lcyBhbmQgc2lnbmF0dXJlcw0KDQpJZiBgI3dpdGhgIGlzbid0IGdvb2QsIEkgY2Fu IGFsc28gdGhpbmsgb2Y6DQoNCiAgLSBgT2JqZWN0I3NldGANCiAgLSBgT2JqZWN0I2FwcGx5YA0K DQpCdXQgdGhlIGB3aXRoX2AgcHJlZml4IGlzIGJ5IGZhciB0aGUgbW9zdCB1c2VkIG9uZSB3aGVu IGltcGxlbWVudGluZyBtZXRob2RzIHRoYXQgZm9sbG93IHRoaXMgcGF0dGVybi4NCg0KQWxzbyBp ZiBhY2NlcHRpbmcgYSBIYXNoIGlzIGRpbW1lZCB0b28gbXVjaCwgYWx0ZXJuYXRpdmUgc2lnbmF0 dXJlcyBjb3VsZCBiZToNCg0KICAtIGBPYmplY3Qjc2V0KGF0dHJfbmFtZSwgdmFsdWUpYA0KICAt IGBPYmplY3Qjc2V0KGF0dHIxLCB2YWx1ZTEsIFthdHRyMiwgdmFsdWUyXSwgLi4uKWANCg0KDQoN Cg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0K