From nobody Fri Sep 25 05:29:52 2026 Received: from CWXP265CU010.outbound.protection.outlook.com (mail-ukwestazon11022104.outbound.protection.outlook.com [52.101.101.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A20AB383C8D; Wed, 16 Sep 2026 12:12:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.101.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560727; cv=fail; b=EHX5GLVLINVkEHQ2SfWAWK0XpaHVLfx7AxccMFKm8xA/xfp9x4VLEsjkLEP6rf6TlzyP+z9Q2WmEArsrKQAzq6iROi+kdrBJ2T4BGyQg3S1s0RSzd/3bi/C8t+/LubnhB133sOxFV2V1Vvoxh3DOIBJI/dXF3KlKcco11IAR4OQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560727; c=relaxed/simple; bh=LCrmIdd4GhRIDnPRatlnHc41av4wF6QbVm9CpcOvar0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=lS8ssAliMDmmmi1wnNOvVyEqjbt+Y4qsGJC7aD0HzupLosYbv8STyxhqSJjl/45TBQ6BcfRYqOrbsabDLYvNg1Ja0Zneqk7Ygo/JB0ivSu69SgKjq3v1M5y4J6UlQtNDIkc157ZwwddLv77OHzXyt+hS6yqd8aa79EK1UcE7Eq8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=L4+DWxM8; arc=fail smtp.client-ip=52.101.101.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="L4+DWxM8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aTFgSE9ikbtAahlyM6gchvkBT8IKR8IF2v/AZzJNFk2JJemeSFzzgszm4cpBjTgxKKOLDVfgbW16mTvX3hioRV5CWxPomJFGVhkk6SPOwlwSviAIhh+Wbyo4iaY8J4kG2OdNNkoeEI51Zo/JRXfmwLQsRCtXF7FURDwUXiz5Vxjz52WN/TAVhyoio84px/elA2zIKxDFS74P1vKGsWZLOwrX4zlqubGOT+Df8Nb2fMPNvWy4hkRvo68CQi9HuBMVPu0GerdniGBDLWzLRNdWNzUDA7aIdFSeHpmiqNI7BZCHv1FXdrwBXXAovCRu+hhKdS6Zg1SaJ6+gZTzYlwR8zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PE5SP8QkQ0jHFHAbDKnYQSoUkeWTmtFaRjLmTOO4/mQ=; b=UU7/5rF9l0lF3LnjO5PY4czFkUKtUV462jGv4xD8L6s+RdIofnWQdrtCZjffi/dkL8e63Onx/K+hM9QuBIB7pVJZaOrBdRFENv+8RBl7zUuIFmRljjGs3mwyFfI3a6CUQIodDMUsXLWnG6UjSk1wznyCMqqV+l+Q752HVQzSd/392rTvWRGbSZbrMG2kjckl00kdogyNLchZcCvARqeTqBwU/KlyhldSmrYvoUdQT0Uvf1uaxjCyYij06X/eaqYTkjUvnTfYVJhMz8bTHD6ruQ/rUB8ZZnjIhxC8X8BOF3sPhOSwf7ZFb7QuH+1OfdMDCcLADbsafdzeaTcuDnsztA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PE5SP8QkQ0jHFHAbDKnYQSoUkeWTmtFaRjLmTOO4/mQ=; b=L4+DWxM8WrwgMcBwrUSqiJnJ6OIAMdsgsCaYEhghmB6Wns4ypcyqvH7oY9WBuZQbIjrD6cVhgEf9ldXG+hqUcZJbHWHMxRg9sil9ENneUNyOR+4BfMdQzJZheP1ggJag4TWrBKB1ytHcDKuUY9Ej7Adn6pYdXAUgR/Ccd+J//Nc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) by LO2P265MB3421.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:19b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.11; Wed, 16 Sep 2026 12:11:59 +0000 Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1]) by LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1%4]) with mapi id 15.21.0406.012; Wed, 16 Sep 2026 12:11:59 +0000 From: Gary Guo Date: Wed, 16 Sep 2026 13:11:32 +0100 Subject: [PATCH 1/3] rust: pin-init: internal: pin_init: emit `slot` using mixed site hygiene Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260916-dev-hygiene-v1-1-dfb6ae2588ba@garyguo.net> References: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> In-Reply-To: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> To: Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?utf-8?q?Onur_=C3=96zkan?= Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2597; i=gary@garyguo.net; h=from:subject:message-id; bh=LCrmIdd4GhRIDnPRatlnHc41av4wF6QbVm9CpcOvar0=; b=owJ4nJvAy8zAJca/kLG6/oLwNsbTakkMWavae/4tELa4elTj6ZHGfY/DvnrnTZb+58o/uf/kt IRzIRpGO5Z2lLIwiHExyIopsnh0M6ZtYpwte1mr/CXMHFYmkCEMXJwCMJFL7Qz/fVo23q6fv7bg tJF06vU/h8s/hlfvXiR2xtxIb9JTs61lbAz/882eL7jU0Hb/0sWEepvz2U1Ozv8fy/O5Xgx8sVD oYOdGVgCo4kzq X-Developer-Key: i=gary@garyguo.net; a=openpgp; fpr=E25A77AED6FDB55D05B304A09D8C6F14E3E60652 X-ClientProxiedBy: MA3P292CA0014.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:2c::15) To LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOAP265MB8560:EE_|LO2P265MB3421:EE_ X-MS-Office365-Filtering-Correlation-Id: 220c1d9b-682f-4ae0-2b21-08df13ebb595 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|10067099003|6133799003|22082099003|18002099003|56012099006|921020; X-Microsoft-Antispam-Message-Info: 3YqAQg7LqsUcbHjn2+N1TSeZJEd7ahcFWxYOI7+6GqDg7d2VVgqn+qr0j0rssafm8VbAuNosdjjJbYtC7ON2a1wp5tnMlJP6lOSpN7VErJevAMTUDz7oOeve4lVqBWBwGLOaBa5mXCzpDK0Ru/9rUQdHKbvBdOZKh/OWeGmBen1/Or5REaYMq8adLWGCKJaa5qiQ1QnK08B8JOdvOTzJVs9K96AsqVS7DbraYJ9SklEi5ZQnG8ApH5EDHyrSVc9PPpU5hLS30hbCwfLv1KIrwdx91aNMnxV7pNRjcEM74VVEcZFI/fJdlHAU/FgYwmSwWHc7AOu+4XoW/YC7/qjimGXl6dnkquMhZP18hNLYKoJztOqi9pZqMPZ+m5cwOP2ba1waWTPeKMXFhveevFWwWAIEbUbDF5YiRAHFtnWeQXx0HGVSZoopGA2lo9/8tj+FNHiZZnUJIcojE4g55I0vlsjEnmmf9hD8/Xi68Tgb5qKDXK/yPQl9JXtAONPOYJzdn/HwNjtk5R1kuuNPwHjXtAsbLCbKgbs5uvbgAJ30dU3Upz1fX79NpLGgWDmtLIRzaMbJEjo5cLKF7n+XxHPtERwBuDZ7JIk1cxbxHKhpTW3zpDS8gTybIDMR/5WqaKHBMNhFbhOWCBoSvOH/MkGERKo+PuQxd6FrMjYExr3EYcJMKePQM2snqhz+xibHISuwHRuB0uSqqTv/2hhO347IjA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NWZOOWFKSXlLZnNmTHJjMm01K2g1V3dlTjlaZGFVUjlaMkVCM1BYb0NsV1V3?= =?utf-8?B?YXcvb0UxY3lrNktYV1BlNUd4VUtpOE9ZWW9NUkcvbjVmcG1Ua0JMRGk0QVA4?= =?utf-8?B?OEljZnRwTTBnTzQ0WnU5NTdBWVY2N2hDZTlOS0xxUUpwUjRjSjJoS0U1Rk9O?= =?utf-8?B?dXloSTVNblRnVktGM2trY2xlalFYVjY2eGpScllKaHU4a1NtaDRIYUtJZHMy?= =?utf-8?B?R1RULzlvMk5HajkzY0piSHlpdU8rNXlPczFqS0ZGUk96ZVRNaVkrN2FwSWIv?= =?utf-8?B?c00wZVBMWm9JT3c0OEcrSlVZTUprdzlQWUhhS0hRSmZVZUdsNWc2QlVaNWxr?= =?utf-8?B?dWc4WTZ1ZlVzYmo5VUFEbWlmVWtHWWVZSG1pbzl1Tm5ZUVZqQXRnTStOekFx?= =?utf-8?B?VTl3TTNsV0FZby9LNlpnM2xRRzBxai9pQUN5bWhXY3EyS2tRU2l2cTZWazRS?= =?utf-8?B?bXhpOVVlSm81TlZSTHFMaGxXMVNOZGxWOWNaRVY5R2trbXdCcmptNk1CeWZO?= =?utf-8?B?UTR1cGpGaXB3aEI2ZndOZGRQT1lHZzM1YzNkcmpmRnZ1ZHFCRzQ4emxUbTg5?= =?utf-8?B?N2xTWVhUbllibTRDOEtoZ1ZaanNLejFyeEtVQlZWbVlORzlGZ2xKamIydWpY?= =?utf-8?B?UkFjT0RoMGh6MnBzbjVuL0pJb25kTGpEQS9pcnRmOGhiWG1CalBzbXI2eUhh?= =?utf-8?B?cE0rKzJaU3lXanRBYkQyY21Yc1hveVgxWWladmhxc09QajUyZHJVc0kyYTZG?= =?utf-8?B?MDlKTm9LWkVTekRBMjdlNUdKN2dDQUpGSnpKclZqc05KSk1oM3ZjTkhuZkFn?= =?utf-8?B?ZG9nM1Iza1I0MHNmRnhNUkpWTmRxQUE0WTVnK21hTGRtVnR3TU9sQmlaZC9s?= =?utf-8?B?SEFCQmNmN2JRNmt1MnZyaDQwTGVEb3lqUHpXK1ZZczFVUmF2QUZEN3grcG1m?= =?utf-8?B?czVsejRYMU82eUpLQkFXLy92ZE00ZE1xOHBGanM2MnkxSDkyYUFRa3h5djdW?= =?utf-8?B?bk1aOXZiaWtPekF1akN3b0U4NTM0U2VvZkp0amVnN0V6YUpEUUpNeUo4S2E4?= =?utf-8?B?MzQ0bGJjeERjZlM4c0NuSWxyWFNKMjk3ODlSODljbldhcitGa0ZvYVpPRFB6?= =?utf-8?B?R284alBDYStyVC9YUlBFbU01bE40Y1lpcGtXT01pWXRLQ1crYUlvd3J4NWQ2?= =?utf-8?B?NVY3Q1JaaVppSkd1S3VxTkRQaHlKano4Qm9LZmJnTXdqc0Q0NkNqNkZ4QWk5?= =?utf-8?B?d21yL3c0SUd0TVdWV2xMY0JJcHEvNk1ENFh0Yk5YSHI5K05CUUtNVVAzK0xv?= =?utf-8?B?WGh4Q0ttb2lZdTJCRXJYYmhIYnNTSUFpTU94WW9YeDA2NEgycmVUekNWMGNX?= =?utf-8?B?MVFmUDZGczIxOWE2MGcvc3B3dWtOSTVKVDFmL0FsWndzak9nRVBGdjgycmcr?= =?utf-8?B?TmZyVW9CVWFwc1V5dkNOcExKbmRRZEJqdTVTK0R1NUZoTUp6R2lBR3AyS0VG?= =?utf-8?B?dzR0NURmaVFNRVgydnhXYXN3RjduMTVqWkdrWUtuVkZDNFc1YWYvYVp1QWZF?= =?utf-8?B?UzFTY01iS0tTZG96MzliejBjTGNpRzBmQnB4WWZCbkFScU53Y3VSZU1wdEp6?= =?utf-8?B?V0Yrc2VzbU00MjNqWmVHNW9LMml2ZnMyemxmYkZCcVhiOEx4V1hpc0Zwa05t?= =?utf-8?B?dk95WG1GWk81Tk00MUxiRnJTc3YxbTBiM2xSZEZHSGRSb2U0VVJXeUFydjRs?= =?utf-8?B?TFpIWnEyeldPUEdCVWxqd1pMZ1Fia05tbys4cVByNHAvL09QbHlYOXNxVkJL?= =?utf-8?B?M0R2czkvVnNSdEtZZTNTdnhoZEJyYjdqQmYwRTlHQkQreHcwc3RJWGJvWFNo?= =?utf-8?B?cUJ3RVc1ZEpDeHZyZ0RyL3M2NmdlTzFCZlVvSWM5MFZuWmR4ZjVaaGtQSUZi?= =?utf-8?B?OEZGeU5scWRjT0IwVTljbklLcXdzRWZBUElHOXBOZ0lrUERlWGRFVjVhMjJq?= =?utf-8?B?VWpiRUdpSVp6ZVZ6K3huZFBRWWpZa0hTQzRTQkpyKys1cEZya3JpOFY2V3dT?= =?utf-8?B?M0h1RzFhbFZkZG1FYmhkWWs4YjV2dXF5Tm1JZ25DTTl2cFJVSklKb1dYWVkz?= =?utf-8?B?VUFMaVdqSmxXUU5IaWlXYkY3K0ZVTjdkZ2cvVmVpMStKaldrQzVUaXBhRklv?= =?utf-8?B?dFl2Q2l4eTZ3elBJVXoyUytWTVdPYjgyaUdoK0FjVW9jcmpYb0hSM1BTY3Y3?= =?utf-8?B?MHhFVlNUVCtmclBHOWxNYU42UVNEUWtPOEJzVzFtc3A2VWF2SzZXeWpKNHZE?= =?utf-8?B?VGpXNUNOSnBrSFRwZldkLzM2VW02a2pxS0xZbm0vUkhSTG5CTWFZUT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 220c1d9b-682f-4ae0-2b21-08df13ebb595 X-MS-Exchange-CrossTenant-AuthSource: LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:11:59.5727 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rj6A+CuBmRaBc2H5IjbkxafSEF2vjm54hk0fbfXM7ncrw0iFmendVWicDdOVdaSSUJxZlMbdyr/zEFgLAhAdrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO2P265MB3421 Syn/quote's default is the call site hygiene. If user provides a field named `slot`, it will conflict with pin-init generated `slot` identifier. Change it to use mixed site hygiene instead. Fixes: 4883830e9784 ("rust: pin-init: rewrite the initializer macros using = `syn`") Signed-off-by: Gary Guo --- rust/pin-init/internal/src/init.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rust/pin-init/internal/src/init.rs b/rust/pin-init/internal/sr= c/init.rs index dc5dfb2ca114..6ade192d27e6 100644 --- a/rust/pin-init/internal/src/init.rs +++ b/rust/pin-init/internal/src/init.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT =20 use proc_macro2::{Span, TokenStream}; -use quote::{format_ident, quote, ToTokens, TokenStreamExt}; +use quote::{format_ident, quote, quote_spanned, ToTokens, TokenStreamExt}; use syn::{ braced, parenthesized, parse::{End, Parse}, @@ -269,7 +269,7 @@ fn expand( }, |(_, err)| Box::new(err), ); - let slot =3D format_ident!("slot"); + let slot =3D Ident::new("slot", Span::mixed_site()); let (has_data_trait, get_data, init_from_closure) =3D if pinned { ( format_ident!("HasPinData"), @@ -302,7 +302,7 @@ fn assert_zeroable(_: *mut T) }; let this =3D match this { None =3D> quote!(), - Some(This { ident, .. }) =3D> quote! { + Some(This { ident, .. }) =3D> quote_spanned! { Span::mixed_site() = =3D> // Create the `this` so it can be referenced by the user insid= e of the // expressions creating the individual fields. let #ident =3D unsafe { ::core::ptr::NonNull::new_unchecked(sl= ot) }; @@ -312,7 +312,7 @@ fn assert_zeroable(_: *mut T) let data =3D Ident::new("__data", Span::mixed_site()); let init_fields =3D init_fields(&fields, pinned, &data, &slot); let field_check =3D make_field_check(&fields, init_kind, &path); - Ok(quote! {{ + Ok(quote_spanned! { Span::mixed_site() =3D> { // Get the data about fields from the supplied type. // SAFETY: TODO let #data =3D unsafe { @@ -512,7 +512,7 @@ fn make_field_check( ..::core::mem::zeroed() }), }; - quote! { + quote_spanned! { Span::mixed_site() =3D> #[allow(unreachable_code)] // We use unreachable code to perform field checks. They're still = checked by the compiler. // SAFETY: this code is never executed. --=20 2.54.0 From nobody Fri Sep 25 05:29:52 2026 Received: from CWXP265CU010.outbound.protection.outlook.com (mail-ukwestazon11022104.outbound.protection.outlook.com [52.101.101.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1AE5D3A5421; Wed, 16 Sep 2026 12:12:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.101.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560730; cv=fail; b=LCl0nYtxfg+csk17F0CYGYtl9kbmML2Hh2iDpdisw0B4SpXuEXUJ/1ZCQpToRvqh2r+rD8wRxbjyySpWzSFr5NVSSxpnEaPDgHn9oGyclePNeKhdKSmwkRi5zNWGRzP5lcxq/qQm0PeGQRIIepqLnxHazmuI9nUkin2zrGkP910= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560730; c=relaxed/simple; bh=TUpCJi89VK2o1Ffe/xiz6Ld3TJn9X3cvMsu16eFc9oc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ATUk0sAw9MUkvm12ztWoqAtuc+i0yMLuRh9hQ+o3lT/Cc2e5WAtTg6vgtcLByfGRLp83UAbczZ4ED7EV7YnbF05xQEaiT1iAUH7ev5TMSBxVvhu5keMwQvoG7LJskRnjr0CBkwXoc1R9Lwu6JgpeIA3TP4zr7wQwMHJZ013Zo5g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=tdZRuGoM; arc=fail smtp.client-ip=52.101.101.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="tdZRuGoM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xA4Mww2Z36jUJjWfn9aTvAcBSrQkedt8hBu0xnBnTCiZQyWBA7LNwDBwmaZPYgLCyGRSj/Q0JEPvnaAvnjrruBtCzbCJQShWK8GqlJnpF9iIwLtQAxvVsGOvmZNivsyGpofAx1leKUaRcqK8quxciaHajzw3tRRQB3v52vX30prCG7Ehxyx910JWlysfQDL5DzbUEm4By11fLaNuH1AkBamHSCKfSmg6jPtH6u1eE1J+HUxol140jGYZeoThs9BuUIiV5E1dzDwqp89Lm4l1BGW0uc/lMaIGk6P6hWU7PDIEkFXwbN0wS4JJ/3lLA/n3aiBXnIYPSs7kPTUvg4j/PQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ro0STTuK1KOsYMforwrE/9ZxHNhXFuJyKnXcsohBwC4=; b=FMgyxUVrFghlzdPA9B6jru6//aVc1PE6hjnfDmAYLD9V+TLhnz6gkMV8JyqOT/swYumrJ65wwSAM/gWjPIiUOSUCg+YnLzpDrf9XNR4u4EJIBxLUCV4WbaRqm/cCLUC+k1n7lARnd8Mytokjjvh+r8c8s5RvYG7sibaxki9c2smMv2aF+3hCNQuIuk5yHOJjvxT3IhqMdnI7hA9Rszbovxz6R0JctBC6ku18Jtcc4pvgXjDkYkn7ZfdCAHeJPH7Vmp/o53uhKxPGTHp9YLSV7JtrkaIVVKMeGQHYpEmKwXeR7eg1bRb2IySmZuShHU3OmbSktFt1MYSUUp/TQvNaNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ro0STTuK1KOsYMforwrE/9ZxHNhXFuJyKnXcsohBwC4=; b=tdZRuGoMGtfoLwa/uCGmGvx/Qp0JbNm9j3+EBHNow9SZpEg+weRPfN+ajlh6iE79NyaL5+Ootrx8a8Eb5uy3xB2WIdwy2WBKpAziZAAjW0uXhffD3mYIh7Y5A1KJPMD4sgbOFIzOA9qsOJ9bmWCuTAWPjhL8SLU2zajHhAjYdLg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) by LO2P265MB3421.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:19b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.11; Wed, 16 Sep 2026 12:12:01 +0000 Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1]) by LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1%4]) with mapi id 15.21.0406.012; Wed, 16 Sep 2026 12:12:01 +0000 From: Gary Guo Date: Wed, 16 Sep 2026 13:11:33 +0100 Subject: [PATCH 2/3] rust: pin-init: internal: pin_init: use `slot` identifier directly with mixed site Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260916-dev-hygiene-v1-2-dfb6ae2588ba@garyguo.net> References: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> In-Reply-To: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> To: Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?utf-8?q?Onur_=C3=96zkan?= Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5464; i=gary@garyguo.net; h=from:subject:message-id; bh=TUpCJi89VK2o1Ffe/xiz6Ld3TJn9X3cvMsu16eFc9oc=; b=owJ4nJvAy8zAJca/kLG6/oLwNsbTakkMWavaexLqs7YyM/19qX06/eSqu5omX6anHvhn9n9Km V+Q4YoTX7Z1lLIwiHExyIopsnh0M6ZtYpwte1mr/CXMHFYmkCEMXJwCMBGeiQz/I66fcdqhnr8h 0qfHzmrbLs3767dba6XtO2kop8QgvXy6PSPD258hn8UMK1sVLU7+E2B5b9cwZcVshjR+1kuJN/j 5NM4zAQDjUUYe X-Developer-Key: i=gary@garyguo.net; a=openpgp; fpr=E25A77AED6FDB55D05B304A09D8C6F14E3E60652 X-ClientProxiedBy: MA3P292CA0014.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:2c::15) To LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOAP265MB8560:EE_|LO2P265MB3421:EE_ X-MS-Office365-Filtering-Correlation-Id: 218bd64e-fe3c-4f50-911d-08df13ebb660 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|10067099003|6133799003|22082099003|18002099003|56012099006|921020; X-Microsoft-Antispam-Message-Info: XE59xB59kdSN7b0giOrL203FZSc4N4vkHEPBHyIXycui1pM9LUYkeXUuI78x/fIq68j3EWogF1muFozZGtgoeprbLVIQOJrGo3Gvqn83on0w9uzS6cs3XFTrNlKNrXtnD9CCGQNFgE8UCW0RLOjZMNpQwqv6ZVji3EM7sTCRqKDkRStkumhqaUwS9sQbEdwUYDMdaCdOPmq0pvIn86Z0MQjbn5XLkFb1pdRNicOTRR2Iae4zQDFOuDJLZOKjdtzE2S59CfxZvAOb8QfMwuaBu74/xKA6fPbj5wJgdUQw3P2HoAeuu2wvFzxp0dxU5ojQQMrtLGUUPYiB+7k7jxs3V2bK+9+VH7J+dywCzA9BXvvye14unOAXIVCZpAvyJa1vOrXlLzTMKgi4eKiVlDp8HVpJvLMps40h29nr7cFMHhmDEbRhSqch6jcfw91IMm2F4dM6Yx17WCDklBghNLbwoqmYv5usRcwUXB7w1KToLARyQ21dawD6M/gJ/u1tnwZKMu2ZDrqmJMxHv4bqLFFAnzJsPxxIYnLu84UFKcjyQaLqqbXJye1uNt7+HP/8C6P6CYqWOhr0/7SF5dTGsUOtbHiXH4IfZGrOeKi5ySfFdma35chadErug2xp6rWa/P1fSNwPofk6ZTW347ZKuEUnKZzl9+A7pUPKEzU2luPV6LbUAW6ptv2kjzIrcu7NRyo4bZnNj4/zdfMSmchgA6tAAg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UnZHRldWT0hVeFEvcDdQaU93MTBlQitqZEtHejREZkQ1TEpnSG9mM1dseHp6?= =?utf-8?B?cERIRmh2WFdpbGZObGVsV1Q0VldsUEQrMzlwemZGeWVWRktWYmlYb0h3bDZ2?= =?utf-8?B?RVBrRUc0allKNWxVWnUzTEw1TCtOUFBOV2N3c205cTFlTlpNRjR2KzRFelR6?= =?utf-8?B?aE5ocm1wdlhhemVjUlZxWWx4K0xyTU80cytENFpTeGJmdFk0TUVCVmFtOGNu?= =?utf-8?B?cU5rTkhGb3FsbjQ3d2tzNFdTVFpQYnEwL2tKSEdnT2VveVRyVDJ0MVA3dkJn?= =?utf-8?B?L1lyT2h1cWdhMWNMYnFrTk9ZOVZJRnZNRmVxMEtKaHZyaWVCMzBTRy9nTkVU?= =?utf-8?B?ZXhyR3VqUDdtNWt4bys4eVZ2Q3JtcHdrQ0p4aktjdGZnNitVTmZCSS9XOHdp?= =?utf-8?B?eGhZYzNJdmZ2amJUR0p0ZmR6WlNQQU1SbW5uUFlaS0kxRGRpbkt1WldZZi9I?= =?utf-8?B?OWc4ZjUrMzlBU1REKzVyZThlVnhFZUx4RXJSZERPZ001TytRTEpEN2dZR01Q?= =?utf-8?B?enRVeU5ubFQxVmpaZnNmMWJDRnZzc0l0cGtrbTcxZTdwNGZ2eUxmcTYwOGtB?= =?utf-8?B?cm5sd1N1eEt0cWN3RmVaTXA3NjA2NThnTmErOEN5cWlTOWY4dkUrY3lqV2Ix?= =?utf-8?B?YUx2Q0tMM1ZjM1dleGlGTitrM0k3UjNiUERPUUJlRE1MeG9vUVhMVWM0aWsx?= =?utf-8?B?RmtWZVh0bEVCSmtLRnpLSHhqMnJjdjg1RmRNZnd5bnZlWGNWT1FUSzdNUE5m?= =?utf-8?B?S2hVZzlUSTRKUDQzNHovdURlZ1NBMDA0RUprdk1BTWVsTWYvLzhoZWdOQVZO?= =?utf-8?B?b0RoTXhxeHlJMGtPQ25vYmFEa245RlRsN1hJZWtkZm1RZWZ0bU1qQWhCSkFU?= =?utf-8?B?dWtKd000bGpFSGVHTGVOL044YjR2elkreWR4QzlRdUlkSEQ4bWd6eTlNelhJ?= =?utf-8?B?b0F2U1doTzlTeWhVNjBEZldDeS9vMjhJWGJqTjQ2ZmcyRHhuKzNDRXZUSC96?= =?utf-8?B?ZkpUUzBVaDAwalJLWWlOc1hYM2o1Sm1PZDM0STM2WlNPayt3SkdqSlhTTElK?= =?utf-8?B?aDNJOXpqQ1loeXplYUpvT1RqOUdlVXg5NW1sZVZQL3FjK3BVVkZmVmpjb2t5?= =?utf-8?B?Z1VzUVEzUCtJbVlWNzF4MUd0WGRIbnRhTDUxdU82Z09MWE5lTTBNQ1UySUVt?= =?utf-8?B?UzBJRDR3OEg4bVpqazJ4OFRIYk1uaHhoVzNPYkJIUXNGODBOZHhUUFNkY3Fq?= =?utf-8?B?dUIzaWhNeHMxQzg3WkdLQmFRUEZyc0t2VXpZOE41LzBXL29DN011ZXBuRzdw?= =?utf-8?B?QW5hMHRVY1ZsLzlKaUhCalppc3FzYnQxNVZURWw1eWdkUW1wQlZTTEsydmVI?= =?utf-8?B?R1U0dWFBaS9NS1hwSUkwZVppMWNUd3Joamk5MDRPcTkxdmtoNXNjY0pBTmlB?= =?utf-8?B?K0NLRmZVb2krMEhVenY1Nzg0b210SDRib0d1VzlRdVoySDhEOHVtWnRMV3Yv?= =?utf-8?B?R2JSNFpZYm90cmlxNlptVXBVbnp1V2prN3VobzkvT01DNk11NDVFa2Z4cjJH?= =?utf-8?B?VXNOYjh4RWpGVllaZG9xWGlEMWdxaWF3M1VNNUxyN2g1dy92cjlSSEx6U3hk?= =?utf-8?B?S3ZhSXRPZkxwMnJBbnlIbmkwUk0vanhyRzlza2NKUzJCa0NKRndwaHUrL0dP?= =?utf-8?B?QUJ1bnMwNUJLUHFiUWpzTEdGUTdrUURlV01JaUJXUlVHbzlKeGo1aE1nSVUz?= =?utf-8?B?ZUI4c1VwKzU3WFpsZytadWlPeXBHeWUyVWFwSE1VbUN1TEw5ZTYxMDY1bmI0?= =?utf-8?B?eFh4N29YUmdWbzVpb0RQc2VsRGd6aHNqS3ppLzNRd2NzN0hDMzJFcGlDenhU?= =?utf-8?B?WGFRRWVWMm9zTUtrcTRHRUx2d2MwaTBNcWdPRWZMTXBwL0tsQXcwL0RQMkFV?= =?utf-8?B?OWY0SkkrQ2p1b1ZLNHRXTGdLQTVzeDg0TVA5WGJHM0twdDg4U09lRmpKajUw?= =?utf-8?B?RTNhbE5MaHQ1ZStsV3pWVklJVWN0UjhzTGhpWGQwcm9jR21LamNpYWljdmV4?= =?utf-8?B?VElROVUzc3BGZ2h0Q3ZVS1A3Z0FZcGFEOGlMZGZhRUF1SHpjQzJpejAyRWFM?= =?utf-8?B?ZDczUXA2OUV3MmM5eVF0ZVlnQTBqY3k4bXVoTXZhKzhzSlNrdVdEdlc0TTVq?= =?utf-8?B?YmF0a0xCWjlGYytYNEh3V2kwbTRIa3JVeEZVVzc3YWxLdm9mTG9YNjNrWDNm?= =?utf-8?B?OEJWcVg3bnNTUkVZdURycUhRTUhWTVNZdUlpQWpQTWpEdjQydTRRbDFhTDZN?= =?utf-8?B?V1BrTFMyaGdoQWFJRzhkajBBdlFPWXF4amRuaFY1QlNIbnpIOENXUT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 218bd64e-fe3c-4f50-911d-08df13ebb660 X-MS-Exchange-CrossTenant-AuthSource: LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:12:00.9190 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZMmeIdgyK1iYRfDJcSCUtKMePNWWRMUVQtyl+PeQkDDnO2PWxo87N4+KvBOZ2e7/KqIPrm39g50SWoPQSJNsYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO2P265MB3421 Use `quote_spanned!(Span::mixed_site() =3D> ...)` directly instead of creating `slot` identifier and interpolate it later. Do the same for `__data`, too. This is needed so that we can customize the location of the span without having the `slot` identifier getting in the way. For example: quote_spanned!(Span::mixed_site().located_at(loc) =3D> ...) with `slot` mentioned directly will have the diagnostic pointing to the desired location, while `#slot` won't. Signed-off-by: Gary Guo --- rust/pin-init/internal/src/init.rs | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/rust/pin-init/internal/src/init.rs b/rust/pin-init/internal/sr= c/init.rs index 6ade192d27e6..a77ffef9926b 100644 --- a/rust/pin-init/internal/src/init.rs +++ b/rust/pin-init/internal/src/init.rs @@ -269,7 +269,6 @@ fn expand( }, |(_, err)| Box::new(err), ); - let slot =3D Ident::new("slot", Span::mixed_site()); let (has_data_trait, get_data, init_from_closure) =3D if pinned { ( format_ident!("HasPinData"), @@ -286,7 +285,7 @@ fn expand( let init_kind =3D get_init_kind(rest, dcx); let zeroable_check =3D match init_kind { InitKind::Normal =3D> quote!(), - InitKind::Zeroing =3D> quote! { + InitKind::Zeroing =3D> quote_spanned! { Span::mixed_site() =3D> // The user specified `..Zeroable::zeroed()` at the end of the= list of fields. // Therefore we check if the struct implements `Zeroable` and = then zero the memory. // This allows us to also remove the check that all fields are= present (since we @@ -295,9 +294,9 @@ fn assert_zeroable(_: *mut T) where T: ::pin_init::Zeroable {} // Ensure that the struct is indeed `Zeroable`. - assert_zeroable(#slot); + assert_zeroable(slot); // SAFETY: The type implements `Zeroable` by the check above. - unsafe { ::core::ptr::write_bytes(#slot, 0, 1) }; + unsafe { ::core::ptr::write_bytes(slot, 0, 1) }; }, }; let this =3D match this { @@ -309,20 +308,19 @@ fn assert_zeroable(_: *mut= T) }, }; // `mixed_site` ensures that the data is not accessible to the user-co= ntrolled code. - let data =3D Ident::new("__data", Span::mixed_site()); - let init_fields =3D init_fields(&fields, pinned, &data, &slot); + let init_fields =3D init_fields(&fields, pinned); let field_check =3D make_field_check(&fields, init_kind, &path); Ok(quote_spanned! { Span::mixed_site() =3D> { // Get the data about fields from the supplied type. // SAFETY: TODO - let #data =3D unsafe { + let data =3D unsafe { use ::pin_init::__internal::#has_data_trait; // Can't use `<#path as #has_data_trait>::#get_data`, since th= e user is able to omit // generics (which need to be present with that syntax). #path::#get_data() }; - // Ensure that `#data` really is of type `#data` and help with typ= e inference: - let init =3D #data.__make_closure::<_, #error>( + // Ensure that `data` really is of type `data` and help with type = inference: + let init =3D data.__make_closure::<_, #error>( move |slot| { #zeroable_check #this @@ -380,12 +378,7 @@ fn get_init_kind(rest: Option<(Token![..], Expr)>, dcx= : &mut DiagCtxt) -> InitKi } =20 /// Generate the code that initializes the fields of the struct using the = initializers in `field`. -fn init_fields( - fields: &Punctuated, - pinned: bool, - data: &Ident, - slot: &Ident, -) -> TokenStream { +fn init_fields(fields: &Punctuated, pinned: b= ool) -> TokenStream { let mut guards =3D vec![]; let mut guard_attrs =3D vec![]; let mut res =3D TokenStream::new(); @@ -413,16 +406,16 @@ fn init_fields( let ident =3D member.as_ident(); =20 let slot =3D if pinned { - quote! { + quote_spanned! { Span::mixed_site() =3D> // SAFETY: // - `slot` is valid and properly aligned. // - `make_field_check` checks that `&raw mut (*slot).#mem= ber` is properly aligned. // - `make_field_check` prevents `#member` from being used= twice, therefore // `(*slot).#member` is exclusively accessed and has not= been initialized. - (unsafe { #data.#ident(#slot) }) + (unsafe { data.#ident(slot) }) } } else { - quote! { + quote_spanned! { Span::mixed_site() =3D> // For `init!()` macro, everything is unpinned. // SAFETY: // - `&raw mut (*slot).#member` is valid. @@ -431,7 +424,7 @@ fn init_fields( // `(*slot).#member` is exclusively accessed and has not= been initialized. (unsafe { ::pin_init::__internal::Slot::<::pin_init::__internal:= :Unpinned, _>::new( - &raw mut (*#slot).#member + &raw mut (*slot).#member ) }) } --=20 2.54.0 From nobody Fri Sep 25 05:29:52 2026 Received: from CWXP265CU010.outbound.protection.outlook.com (mail-ukwestazon11022104.outbound.protection.outlook.com [52.101.101.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D78BF3DA7E3; Wed, 16 Sep 2026 12:12:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.101.104 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560733; cv=fail; b=suBhgKablIKITrtJ5VauqX0hmDJXQasrWu0pAcdBY1kporSi/oPV28nixnO1m3wGsL7TZYrOvvaFXRUwqGJQ+9a/q/l8ENq+4qH0q7ji6xHrcly8dGOLutGpwLVR7KOVLvUjohuxE4XDsE9NfrRlx9SSbdceQdx2Vp0f++cA3J8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789560733; c=relaxed/simple; bh=9bB06ZAf3CJCVNJxnQlyWVsS8kE19FggGf5XHI0ESIk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=H17QwMF8RVvM2tneTk7RCcgJyEEGGlZ/z2iiPKvAkMDm4okxvg9XIImOAC4rwmH+yXbNDzRmbjN6tQfrhVkYeFxGd+/VIf84h0yEUnD+V93hTrB/yA696O5z9XSifTPP8460q3rwUFRC9u3K8WnuX6DxaZh/82m238OT2ohi9xc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=pD9M8y1n; arc=fail smtp.client-ip=52.101.101.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="pD9M8y1n" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vetPmoygiSQXYQFNdOLC8POlciW243K92fVjWsXpPMi2xBAYtoZqI3EPjH2254qH8da1UIujk4V2kwduJJYLDIQVmujlrQeNNWRi/n2Cdz+4tpj3bK3qcMhRqB7TepaMMcF/hJ2/pQ8baM09MVgK37iAbpXnDj++iSwhRuPQ9YtVQn+ho/8gzbxHDgomPW+ZeSKcmt5UhHK+74bRDu+nD/jUn7wOT3E4CbGYhKNXdOXWmpE3KWy/DyQwuV/Vw6lJKXD4UbF38w9b78zp6UEzCv6ONCaEniLM9c3v2qv6uiRpHwDmorSu/MK5gQCD7atKTqhwEuRz1fH/Li/9DW7V8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jojXNGWvqUC3Qvo06oNgndGrCNp7DLuC+dxc9j/PNu4=; b=MwEYpyPEBM+prHSrSAix5y8HxUnXdkr6zAZJpGV77L/p/nHv/ildJ23/8/xfxUa4LwtRpHy/AkhCGYOaJaAmxObjsrIzxM7Er/88lcKr931ted/z+7Dret9mPR0xhMOkLAHxO+TwIBBRSOKxBdt5ZGuNBhpPU77dNa9ylG62nHpMt8vl9+sreNGnBg5JE35gqTtOa7cEZQpIS4YT06yrHYw4Eg5BWabCj0KfOr3ocIBUFqS5E8gQ9Bf/0wRDjyp5YJeqcmywPtxr+sHWAmyKIX37nLhdm1bL6IC+8y6eYJkDcHYd/G56S5Gc9GBONJTO0EPRzuDf/Cqv1wPld1yYHw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jojXNGWvqUC3Qvo06oNgndGrCNp7DLuC+dxc9j/PNu4=; b=pD9M8y1nllViXlltrPV/Qd+j/umjxiZhcj0fLhFHmh5z2FerUa8HSCcz96ftven6ApTQfe08k9aDl6LwGYjOhbc3uqquvRdtgxhut0B+cbNeNuWAysFBsqmQXnDz+qOMdgccFMOCICqX9Sq6ZZjISf12czPI5NhB3h2AICCk7hY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) by LO2P265MB3421.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:19b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.11; Wed, 16 Sep 2026 12:12:02 +0000 Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1]) by LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1%4]) with mapi id 15.21.0406.012; Wed, 16 Sep 2026 12:12:02 +0000 From: Gary Guo Date: Wed, 16 Sep 2026 13:11:34 +0100 Subject: [PATCH 3/3] rust: pin-init: internal: pin_init: provide span for slot projection Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260916-dev-hygiene-v1-3-dfb6ae2588ba@garyguo.net> References: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> In-Reply-To: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> To: Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?utf-8?q?Onur_=C3=96zkan?= Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4175; i=gary@garyguo.net; h=from:subject:message-id; bh=9bB06ZAf3CJCVNJxnQlyWVsS8kE19FggGf5XHI0ESIk=; b=owJ4nJvAy8zAJca/kLG6/oLwNsbTakkMWavae4wCC5Re7DM33aIz7QDH/KWuiYdqN8ms+yS1J t/IxaSXy6OjlIVBjItBVkyRxaObMW0T42zZy1rlL2HmsDKBDGHg4hSAicgtZmQ4cmj+wuVSTXvd 7Q84uDAu3rTrhGzCrY9yZftcIj+zd/9gZfhf/fSv+swNL66tOvs1f/7r3383PT9T88VnxoLIaM6 OhKZLzACF/Eqt X-Developer-Key: i=gary@garyguo.net; a=openpgp; fpr=E25A77AED6FDB55D05B304A09D8C6F14E3E60652 X-ClientProxiedBy: MA3P292CA0014.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:2c::15) To LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOAP265MB8560:EE_|LO2P265MB3421:EE_ X-MS-Office365-Filtering-Correlation-Id: 1869ab13-8b19-4489-224b-08df13ebb739 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|23010399003|366016|10067099003|6133799003|22082099003|18002099003|56012099006|921020; X-Microsoft-Antispam-Message-Info: HxOwBv/FLMh/THerbYqGO/KywWH1tFFVTY+fKCFJp24IczilAZqa78/Ld+WmHT2cPPha3eIvBiyPJbn9mNxTh3bquAiEJAmSgV1h5tewiaAXtV/jXqBU2vS9A22Db4TWwEM5dwW2T976y5Hzx+4q6ssqP95YshBmeAJM7bQfAYhpEzYIxLDqnrdmWPqVy6IluSHzduMF3ZqOgcySCIYzISmNhvSgsBooUln4WRqxEMakz4kHHB033OASHdYPzMC+deMfhzRTLXR6eGGsiEXVstH6QQoLVU/k3rDmcm//TwGdsvx/9c95Sry7RT3vh+BO6Qsva5/cC0dary/ecFkCVkpGRA6Tbmsr4XGRIrJnr3LGPcsfZXC08rFtkIk3twGU+R4bUS49Pen2lF+gx8FlH1Od1SNPlu3siw72da5Z/yWWJa+rqnNkhCJlT/pFK3RsRMRzD7/NUT/nga0yicEz5UmoCe4Bvi6NJV6+URDoyPBlfJsgnlpd8SJOq2uvz3c8LP/XNzaPuH3xdzEtNmocI/GtqOI/X/m730/yUpps7wobf323nRBMPgVnjXDBXOayq09Zk8cYiqt/hbXF2f4ihX4e62PH3LlCXAtfblNQx8p6lpwrOjzDMndJBTSIB5CaN67NKUd07lUfIiujBrSjDsbuvq7W6S9Sbethj7AI82yd73Uqme0KZNeZvauNl2EwOXrXxhdG1coQCJ6fZ8BCWg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(23010399003)(366016)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ejl4cXJqRmtOblJoaTRQTGtBNUlRZHBnTmlSKzhNS0g1WC82M2cxbWdmZ2ZY?= =?utf-8?B?cERnc3Zoai9VRnlJYXVlSXBqeGVkOGNxbE1VUkk2dVF2Z1QzK251SjV6bzlQ?= =?utf-8?B?NUI0Wk5VWWUxd0Z0YjFMYnpHUlNqUVI2UFF0TWtML2k4ODJWbE9OMUwraWd3?= =?utf-8?B?R1V6NjFPOGorZk5hTEt6eERtN3U1ajR0ZDZLWkw1QmF6TTZxR1JvdUVLbStN?= =?utf-8?B?cndaaHFvT1ZQZ2JGUTJSWm8ydGNsS0NDZXdtTHdsUi9FckxuYnc0MStUdU56?= =?utf-8?B?dFFKekw5NEs5amFGWjROMWpNQ0dHU0JBUU8venFoTjZnVVp1SEFrN0tFQ0pJ?= =?utf-8?B?Qi9KTXc3T1lOWG1VMnphc2MrRDdDZHI4L1k2bjRQSUJrK3didlo0RlhtcXZI?= =?utf-8?B?c3I3Y09IMEUraFVkby8vUVhCcXBOZ045czNScnBYVDBLVjIzQXFPbHF2TU44?= =?utf-8?B?TXNVUUdCVGxEeDEzTk1BU1FGcElKOG9SVGhUcEo5TDkxMkZuSTVOeFkrZUt2?= =?utf-8?B?QThBVlVpR0xOOEFZbjFvbGF3NU1wbEh1L29WUVdIYTR5SWpEeXdlKy9lc0wv?= =?utf-8?B?SFhnZmtuSDdmZ05WMGZUa3lKLzdGRHdEdDFXUi9xNm96ZVFTQU94U04zSHpY?= =?utf-8?B?M05Id2RubHhYUGJZZ2ptV3Bmd3VsN2hQWXkweW9kWkFKbkZwVzlRU3ZnNXFy?= =?utf-8?B?TkxCZUhwTUJTVTlDZkpzUmpGSk5rRGFzUytpWHIrQURGL2M0aWVLWUJydDc2?= =?utf-8?B?cUZmMzN3ZVB2TkM3SUNoQllWbjRKVjZYa0E0dFFMZW9nTmNaVmh1dWVMV1M0?= =?utf-8?B?Znc4OXVFcEU0Y0lEL0ZUVnBzT09OL3paUm4xaFdERlNxN05RdkRJNC8rditq?= =?utf-8?B?RHErcXpuTklLbUdRYUNwWGhiSmFOenVycXRqclAxN2tqSEd1OStGWHkwN0dM?= =?utf-8?B?STBGZVJGQ2xPbXRwd050YkE2VVlWQ0hNS3VqUGJkU3lPTkdyL00xZjRiNjNU?= =?utf-8?B?YUdiN1YyOTB4NE1ZTlZ0YTZuNE9sa09xR0F4bWxwMElLYjFMV0ZzTlhmN2Fo?= =?utf-8?B?T1Qzb2liekZzTDF3Y2orTC81dWcrTWo4MG9YemN5cnozKzNTeHdrZVA4bzNC?= =?utf-8?B?ZUl6WWNEZGVTeHI1T2pRNXJ3eWtRUDhPYTF2UTl0M09BQnQwc2laRy9ZcDJZ?= =?utf-8?B?eDVjRHVhYklvaWJ3SEN2WFBPY2o5Si9uOEl5OWFlQm96bktCNC92dnhPY1g1?= =?utf-8?B?L0xsVW1LMm8ySEVEWjN3czVpb0dPV0dUSVF3R3hwNDhIYVFqc1BKQW1GUzZz?= =?utf-8?B?ZXJ0QzBwMmNRTHRHa3FhNi9MOC9GczR4cHdSM084TkJheUZqanlkdkJnV3hs?= =?utf-8?B?bWhlQTRQMDQ2OXE5M1dFTlI0eW9vT1pwNEVHRW9md0kxWndaNWJwM0x6aEFn?= =?utf-8?B?RDBmOWwwVVQrSkRhSWNDUkRvZmt5Sm9IRzNxNXJydzBLWUM1V0FxSWR3bFVN?= =?utf-8?B?UVA1T0k2YUxpSDZ2RzBYb0lvQkdpVFRpajk2bldMWmpiUTlhT240ekw5bW5r?= =?utf-8?B?RjhFRzA2V1hWRUJwdUc2UGN3WUJFQTNCSGpia09tYzg0R2dpd3hqV3cxZFR4?= =?utf-8?B?RzNnOHArcUxNcXdGNUphNFRaWUNseCtsTXc5ekwvaktlZmNzYW9IQ2pFdHRP?= =?utf-8?B?T2JPVFcvWGhzU0tuLzJSaFdoYjdYUzk4MUJKNUpyUmdTOEZydVdvaENoMkJu?= =?utf-8?B?SjNmY3U0dy9Ja1dlNFdSYjlXRmJPdnkya0tsU3pidzZnMUJUTmFvd2NFbTNl?= =?utf-8?B?bHl0OXorWVN0em9JRkF3QWYrUDZhcmtzTjhPMzI2SjhPeS9yQWFJV3RlTGFn?= =?utf-8?B?MGJHQXc0MHJYMjIvSUpTeXRtWXBaNkczWC9qS2xwV1BPS09NTlNJWXNyb0Uy?= =?utf-8?B?QXVkTjI3THVKVXNmcFFTa0pzb1k5dlUvc2ZTVjl5dUtZdGFjZFNNbFROdUtB?= =?utf-8?B?VkJ4d0JkQUNFSm4vRkkzenJYY09PakorMHFEM04yWVUwaVVyYkc0NnNpL3V1?= =?utf-8?B?eWF6ditENXM3Y0I2cTRGUDZIaUllUjVMU2dvZUVUc1FibHdwTDY3U0s2ZGpi?= =?utf-8?B?QlVXRDRib3BiNkQ0d3Q4Skc3dDJXdktuWVpLSHFvVXNHRUMzdjhKdytIWjdH?= =?utf-8?B?MFowaWRYZjJzaEVuN1pwY1FFZkFLSjVPN1MvSHZ4OVhhWWh6NTBqeGpMcmFE?= =?utf-8?B?cUJnN1dtV2p5T0p2OFlmaEJEWllnVGN5aXVMZm1WSzF3blNhKzBMcDZXcjlx?= =?utf-8?B?djdrNXRKdnBZM2xXOURxQkM5WS91UHlIYlNYckZMdGNCM2F6UFIyQT09?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 1869ab13-8b19-4489-224b-08df13ebb739 X-MS-Exchange-CrossTenant-AuthSource: LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 12:12:02.3477 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5DfdWT/93KCUftaQfC2k8aRnGWXnwSrRWgae51GmQfDW9JqAo51yiXW60LqIbBPcfUZJkPs+NIM2pdnh8MzASg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LO2P265MB3421 When initializing a field, pin-init first projects the full slot to a slot of the field, then initialize it by invoking a method. Currently the span location is not explicitly set, so the error message points to the full macro invocation. Improve it by provide a span, so Rust will point to the specific fields causing the error when type check fails. Old error message: error[E0308]: mismatched types --> tests/ui/compile-fail/init/field_value_wrong_type.rs:8:28 | 8 | let _ =3D init!(Foo { a: () }); | ---------------^^--- | | | | | expected `usize`, found `()` | arguments to this method are incorrect New error message: error[E0308]: mismatched types --> tests/ui/compile-fail/init/field_value_wrong_type.rs:8:28 | 8 | let _ =3D init!(Foo { a: () }); | ---^^ | | | | | expected `usize`, found `()` | arguments to this method are incorrect Signed-off-by: Gary Guo --- rust/pin-init/internal/src/init.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rust/pin-init/internal/src/init.rs b/rust/pin-init/internal/sr= c/init.rs index a77ffef9926b..1d2db93dd33d 100644 --- a/rust/pin-init/internal/src/init.rs +++ b/rust/pin-init/internal/src/init.rs @@ -404,9 +404,10 @@ fn init_fields(fields: &Punctuated, pinned: bool) - } }; let ident =3D member.as_ident(); + let span =3D Span::mixed_site().located_at(ident.span()); =20 let slot =3D if pinned { - quote_spanned! { Span::mixed_site() =3D> + quote_spanned! { span =3D> // SAFETY: // - `slot` is valid and properly aligned. // - `make_field_check` checks that `&raw mut (*slot).#mem= ber` is properly aligned. @@ -415,7 +416,7 @@ fn init_fields(fields: &Punctuated, pinned: bool) - (unsafe { data.#ident(slot) }) } } else { - quote_spanned! { Span::mixed_site() =3D> + quote_spanned! { span =3D> // For `init!()` macro, everything is unpinned. // SAFETY: // - `&raw mut (*slot).#member` is valid. @@ -432,6 +433,7 @@ fn init_fields(fields: &Punctuated, pinned: bool) - =20 // `mixed_site` ensures that the guard is not accessible to the us= er-controlled code. let guard =3D format_ident!("__{ident}_guard", span =3D Span::mixe= d_site()); + let full_span =3D kind.span(); =20 let init =3D match kind { InitializerKind::Value { value, .. } =3D> { @@ -440,14 +442,13 @@ fn init_fields(fields: &Punctuated, pinned: bool) - .map(|(_, value)| quote!(#value)) .unwrap_or_else(|| quote!(#member)); =20 - quote! { + quote_spanned! { full_span =3D> #(#attrs)* let mut #guard =3D #slot.write(#value); - } } InitializerKind::Init { value, .. } =3D> { - quote! { + quote_spanned! { full_span =3D> #(#attrs)* let mut #guard =3D #slot.init(#value)?; } @@ -458,7 +459,7 @@ fn init_fields(fields: &Punctuated, pinned: bool) - // A tuple field has no name that could be bound here (the `_0` id= entifiers are considered // implementation detail and not user-facing). let binding =3D match member { - Member::Named(ident) =3D> quote! { + Member::Named(ident) =3D> quote_spanned! { span =3D> #(#cfgs)* // Allow `non_snake_case` since the same warning is going = to be reported for the // struct field. --=20 2.54.0 From nobody Fri Sep 25 05:29:52 2026 Received: from LO0P265CU003.outbound.protection.outlook.com (mail-uksouthazon11022119.outbound.protection.outlook.com [52.101.96.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC7244E433B; Wed, 16 Sep 2026 18:42:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.96.119 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789584129; cv=fail; b=HlLV6Md30nzPZeGXc7UZHVlbTxF0ogQarQkwOynGW+xWXKdJ2Q3/VSNGltth8XecpGKC2RWsV19gN61TTX2uq4Q0NVTlCv4c1T+lVKSRebGcAFKRXPS9kpKq2n0P9M1ftyngyZpRX3eQ3LOd2vl5LLpc/jAwidbDQY20EKziTDQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789584129; c=relaxed/simple; bh=k43PUx0891FzbbrRtcwcXA6ZtBr64ZGfSVdei4SgYsQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=cUUSrh+8SgBlWmogaZLemWngzIdsIMEoleiD9sbtZtBsEl9FbehJVPHLqIe6dqB14G1o9HKsUTqAu8FnjOwOAFvc+1EK2wTYo7aClz9iCUKxa07yLl7WDxUHgO1EDhzHUo0B7DxoZQxbvKgfZTWAPmn6Wq3a7f2U8TJLSAhu4Qg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net; spf=pass smtp.mailfrom=garyguo.net; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b=XNv9aMsJ; arc=fail smtp.client-ip=52.101.96.119 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=garyguo.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=garyguo.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=garyguo.net header.i=@garyguo.net header.b="XNv9aMsJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xcRmr7TtLohXE8Z8RWQ0dOGVuhNEpGedfoNWWhfpW3Qej4UTu9L4hehqkls9rsOCQQ4/We0zKprwY9zGA3ZsDI4pM9nkXZrqzcUNrF3Wn2+yCNaewOc3ml8XuFwSLoDnPBql9gDD66vY2hNI+oTrMX5dzRtMYRaWpL3PxPW+WaySMus9TAjHIJw/L4ahfHN2IBtoUAsabH+7iDXl/dhH4lX98GDSmSn4YmQFqJV3jeKOJdkmpZ37noLXclUnCDhE1j2OJArn1dKge1SytvsSKtW287cU5U4UaagSrND1uoVMKPMcEPbXtOv9LQMJwJ6YK88/2gz04qAHMWSV4YTEsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=C4obBBvvOgM7dEw0jkj6E5t/dzu2jk7RWFjFZdCHTpo=; b=gVGP8/DawZq1MDJFUSNhVJGxdM5JhgW/o2LUI9VbZJsWwucxVAPNs19SJ2fmBbe4XfCKO2CbyB85asXZHy2D5zKZx3hj1MJ0EJ1a0fcalsOjTb/LaUvTA24UnBxSoJZKz87oeKblaTqZht8JbkgXUgZJAV8bB39bO5Tnq89FHchJLB9gDMw+wzFYn/C0cRskZ3tL8zlA1hPEdapqgvRi3jucI+HAAKzfZUIL9tDyhnrNUY3waZk0HZwrQCRCtnl0QPWkJaDk8mmtTAbfrjN74kOxBSZDHDQJFfv+cbr9mBPTtictSAeTCgZJsIu3obKPcnmNNGHklLfmTaKjH0jMtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=garyguo.net; dmarc=pass action=none header.from=garyguo.net; dkim=pass header.d=garyguo.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=garyguo.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C4obBBvvOgM7dEw0jkj6E5t/dzu2jk7RWFjFZdCHTpo=; b=XNv9aMsJU2vQPvk/wKcj2gS38ilQKpb6wNIaH4deQT6X7/l7VsJH3m/T+JVRXyORGZasOqLaoR/JkO5tfyGjWQTZU6GYFCAEGJ4BTLjtKNrmMkYIpvDTAbto9oum6arB3jeBRPfs01FgmQb2OVDTDcVrqLf6gcmBAcMZy4XM25s= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=garyguo.net; Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) by CWLP265MB5236.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1c4::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.10; Wed, 16 Sep 2026 18:41:53 +0000 Received: from LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1]) by LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM ([fe80::f60b:1537:68d7:4fc1%4]) with mapi id 15.21.0406.012; Wed, 16 Sep 2026 18:41:53 +0000 From: Gary Guo To: Benno Lossin , Gary Guo , Miguel Ojeda , Boqun Feng , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Daniel Almeida , Tamir Duberstein , Alexandre Courbot , =?UTF-8?q?Onur=20=C3=96zkan?= Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/3] rust: pin-init: util: use span of `Index` for generated identifiers Date: Wed, 16 Sep 2026 19:41:30 +0100 Message-ID: <20260916184131.435059-1-gary@garyguo.net> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> References: <20260916-dev-hygiene-v1-0-dfb6ae2588ba@garyguo.net> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA4P292CA0007.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:2d::12) To LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:4ab::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LOAP265MB8560:EE_|CWLP265MB5236:EE_ X-MS-Office365-Filtering-Correlation-Id: 97502729-63bd-4f39-a7e8-08df14222d49 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|23010399003|1800799024|376014|18002099003|22082099003|921020|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: 0Cv1JAH0wgh1G8P1sMBMoq4VDtNwuBInglpIa7w74I+F/z/3BGprBxhilAHtfi95Bb7d/9ohAsBznxWEox7NvmrEeWiAsUQ3X3AHcZVHTNOWRGSAJsj4JmnW0DSe6/YqPjxUD1Z5STbnWFGfllBiazwo+6u0fAVW3LcQuEe9Avr+ceL4dAV/OAUzNCdpb8dUD3i41RI90pdSlGQRyJk2tqziVxo5LkqDxosTK6FMH/VM/34cIA5MA7vUu3v1/Kja7RBOhkgk8zjWdNnRqwHFrK1L4yxiV+kjohNc4CcO2Bm5DM7r4rFuuQQXpl15lZo3hvXJxQZWUI1clYVP0XFRO8vd4NaclOGNpdTFVPEPx9YVY1s4bxECqTrDm7kxvo8JH1fCsOvEs079lA7x1EeQn51AS0qrUBHtyhJRYnAp6vkBvY/dYfAxKiw+Ast8xgaAVDkerHm6Y/4oHQWhXA3lJsrxLHrlOOy5e57LfYN1CQAX6zCsh+btWlWWVwfMlZkOpHoIAQnWCfFzq8jRuemLmGRfR3GsJ2xVSE8xJ7fPwb18EiYRstqN6OrenZPDAQzc7IapwLr8rbQoGe9AjvIhwsF84sgV3dl7ZWtt1A8UPtQDgQ3rfqKjQdAEtHwq6BgI4yopMW1dyZBiWjjdlOkEb0AKd5TyjVid7QwAWY5iHXuEL2eB6/u0kuiRhIPOTAp7BCa4l7tn+3rKtD8i+LU35Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(23010399003)(1800799024)(376014)(18002099003)(22082099003)(921020)(10067099003)(56012099006);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Rv1KZFc0SpsCE3qiPXLvocfT/2s8Qf5s1R0aQU7V1w2a4YmWeJB8VjPH2JAv?= =?us-ascii?Q?adtJ3lIUW3pmRFnxlcSH2vFC6jIP7nWMQe0ChnBnCYWZeMIhAdSdO0rF8kPj?= =?us-ascii?Q?Cgru42zxo8FfgKPOxdIg5d9WiV7kqCH8zT2+7RypT74GKWF1naWRT0AswTcj?= =?us-ascii?Q?90ELE77ApFtLjHdTNttqWwTxPZFFOsKUm3unRgCOtBPRqT6MGehurdKpA0Se?= =?us-ascii?Q?5rqyLayPbeRp2L2Yvvn2zf5m2F45MNdr2+zNQ05M8Mg/3dA46ZaXuw4caeLp?= =?us-ascii?Q?JGUGahz/fRW1kefl1kDluvutcQ6S4sgRIcpIIdZt1XxWPSFO4AVk0iAjprmH?= =?us-ascii?Q?IGTuhUNYIdqg77H1I3DC4ZL/RO/Qz9aG7CgW8n2deIUjmQXXgk0epU34xZnF?= =?us-ascii?Q?ljiuHfnC1ky8DZWXP/y7C7kQpA7qTHY7TYStQxIbLmglLB+k98w7BBNsjpP3?= =?us-ascii?Q?zjmzR3bI0fV4RiBZV7rTalsZClclhEmBreAIeXCHAw+j2ECF790w8jNlgJc6?= =?us-ascii?Q?kPJ9C+y52QKfv+YgKPkCFhHWT9NUL6e5GziH11NOK67KzU7GirYMwsSH128g?= =?us-ascii?Q?F+kyJ1MS9itOZ6I6Ze5xhkOS9WNYs2Abf7hDmZs+NgjjjP73f8ubeZRHzGo4?= =?us-ascii?Q?v9psvLUCtYISeApnJ9TNj8VZuCYA5UiP6Q0d2y3IIBUyFub8jcfr/6LShxxs?= =?us-ascii?Q?DW5/X6tYh4wcgba9Duh5WuiMjS/fmaQ9xxCrIxYq1da4M5ulIW2c5rowmdxs?= =?us-ascii?Q?V02RgcPVQ8ID06hKjddR1RqtlGL7SsdqGcJG3A7idcfaXT0YjgSY9gqAXymU?= =?us-ascii?Q?ankLLrgoDrkzWyYxoO+KQcRLMFccFyUE3qKfZMTCxPP2T67/CIZrnYR7EWEj?= =?us-ascii?Q?SI3VoYwg5XBNxZ2FiasGs64UVxdhcVKlC4aFrYgpP+fP+d09CeV2e3iEGDMT?= =?us-ascii?Q?/O9ytSGrvvYEE9mnuhvKsQxxlYmKQKUt8r4y+R2vKoawwuINZ0BJ19VuY8DH?= =?us-ascii?Q?lWo8Tfa4jwOU7PhNHrVFDz1IX2iuHxEFaAkZeRBX9gbOzUmjHHDlEXjIRv1P?= =?us-ascii?Q?Zemj+9vAokEVVXCix01egDorh9Rd2e0aj4LUVQZENAVcJtS3m1Ds8QeGRlMU?= =?us-ascii?Q?2RWUBBaxAZIQ5689AxVpTtNGPGAwafl5+GOAt3p1wijZ3bpTAnZljNOQo1Ni?= =?us-ascii?Q?V1zPuqWhBivtFJ7fq0RUQiFm+uA5N5/d7xEeHuASc6IADAmIQcw1DViMG5KR?= =?us-ascii?Q?sBcMnnPZvWLUzutfOic6b0pSC7aNfBvdxbqEfGgRIvmAebPYWmp87AWtASSW?= =?us-ascii?Q?ZKC/wGTdH5vwQp7G/RxuobmI2VpWG5zdeWXujnQfFiH0aOLzGHNdIFf7rpjh?= =?us-ascii?Q?I/VBdMKnbcRhvfSy/igR2RqZj2u8LGxy32JSJ++CZpn6HQL+pYCWPtcr+W1L?= =?us-ascii?Q?q4ox715bWDMv3qNkAF6kamJNwrHluFxOWXNJTpeVaUpv6JM6Q4HFfHeSQoKC?= =?us-ascii?Q?ArsOqps8bQgTW6Ep8TAVZl140IdX3gINfDGRX3sMA8q0YZhT7lx3laBsMQfn?= =?us-ascii?Q?bj8P6LUbl5vBcbSpW6CL83mmhOn5uNRwT5MMVsMYxfZoBZk+35bv1YSUpgdZ?= =?us-ascii?Q?5n5VECA8MRS30oSddf42H6kZOoTdTtfj3Ick18sQpODIVXNvutwxpo+u0s5l?= =?us-ascii?Q?R32sWOdxP9UH0xhshqHTSZeshGqjAO0dlPahkU66/OejaVKV?= X-OriginatorOrg: garyguo.net X-MS-Exchange-CrossTenant-Network-Message-Id: 97502729-63bd-4f39-a7e8-08df14222d49 X-MS-Exchange-CrossTenant-AuthSource: LOAP265MB8560.GBRP265.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2026 18:41:53.2998 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bbc898ad-b10f-4e10-8552-d9377b823d45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uGJ31hsuJBR06MA37bHvt4qbdgdrsCxi6PbEKo1ZgZaycVZj9xSGkvC/wfhkP/8V9khVPoY86Tr9F6U8N7Itcw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWLP265MB5236 Content-Type: text/plain; charset="utf-8" Use the span of `Index` for generated identifiers, so diagnostics can point to the span of the index. Signed-off-by: Gary Guo --- Follow up to also improve the diagnostics for tuple structs. --- rust/pin-init/internal/src/util.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/pin-init/internal/src/util.rs b/rust/pin-init/internal/sr= c/util.rs index ed2c78f0658f..0b5c28b21091 100644 --- a/rust/pin-init/internal/src/util.rs +++ b/rust/pin-init/internal/src/util.rs @@ -41,7 +41,7 @@ impl MemberExt for Member { fn as_ident(&self) -> Ident { match self { Member::Named(ident) =3D> ident.clone(), - Member::Unnamed(Index { index, .. }) =3D> format_ident!("_{ind= ex}"), + Member::Unnamed(Index { index, span }) =3D> format_ident!("_{i= ndex}", span =3D *span), } } =20 base-commit: 3b3ff9034a497fb3b8429f6fe8ba5697bc7dcebd prerequisite-patch-id: 84717125cba2ef134e74459d283b3206649b3b03 prerequisite-patch-id: 9f34c2d1fc9699479209cd0c98ec43a70dca8747 prerequisite-patch-id: 830ff446f1ac103336c3b30c9914e9a22c70e577 --=20 2.54.0