Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp7773392rdb; Thu, 4 Jan 2024 07:19:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IE/gpedWBa2FjlfKLaqaVB2155Pv9WCX7Q2yx5jFe44vNDELA9v3HcmD75doGWwFbK2KyqB X-Received: by 2002:a05:6808:1890:b0:3bb:7549:8d89 with SMTP id bi16-20020a056808189000b003bb75498d89mr853639oib.25.1704381542205; Thu, 04 Jan 2024 07:19:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704381542; cv=none; d=google.com; s=arc-20160816; b=EQF3AdTWETEHV8T/hbpea4xmK9GDjI4j3+3+mO8gVsc1F++KRh8gQFacFcveA7dLz4 /tdX+AGQt0kP36qljpKpRRTSm+G2U/Ea37Im4Dgez0iuvO0zQDqdEJ+UtA3IKp233qfP yfQk5boC/MtnI1Qkjwsd7dxfX1miOmmEZB0KnlCvUWySCbo52h7ibPMuUZZswSehEMlm 3j0ZQDDSX3ceO5B8FLIFj9ke56vgyltUo5S25QOMEEW0Yp76Q1A6DpUS5qGQCC+EExqB LMijE0kS0bpbgqXQdo56Z6f6U78E38kZjaebWWOs6E0+T2OKhzUWt1cYvLNS1rDFtb0Z ZeHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=yq1QDb6qMZk3I5/DUUjoS1xIca883SGj28CqAPW/BI8=; fh=GmDqyMNqWsi62aIbZJVaw85kwH/r6kfoqUUOqGhZ4JM=; b=dHS44WFO6EwvPGNrLjKXArnJdp3qjS8rVyq/vzkRbCKx9sn0bSulQZ+mDz+0ASYWhT f6SLLTiyfw4QXEToIySG6wUCSonSpLOjT9zzu8UPYasInGxNhuglCWl8ikCBqrhE6o8A VCmlmwd+TetiwX19heNzeQB3HiHBQIBD4ECEc7CBUoTCb9BNmHzQ0zZml7o8wCa4r3o0 Vgo6zqh3nyCcypSJBTn36psggNE0Op+7KceZISKvi9O8ZZKsQ8Af0eCiNRULoEe99Xg8 D/OijcPkth2+eKC/0XxBtrye0ikVff+h01Usjmnwo/nPwguhGa/ehyitamoOnwHNbxpg GPyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=yryvG2Vc; spf=pass (google.com: domain of linux-kernel+bounces-16844-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-16844-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id w13-20020a0ce10d000000b0067f2fc95266si31067560qvk.94.2024.01.04.07.19.02 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jan 2024 07:19:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-16844-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=yryvG2Vc; spf=pass (google.com: domain of linux-kernel+bounces-16844-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-16844-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id EC0951C21738 for ; Thu, 4 Jan 2024 15:19:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D9FA0241E4; Thu, 4 Jan 2024 15:18:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="yryvG2Vc" X-Original-To: linux-kernel@vger.kernel.org Received: from mail-oi1-f170.google.com (mail-oi1-f170.google.com [209.85.167.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D017F241E9 for ; Thu, 4 Jan 2024 15:18:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Received: by mail-oi1-f170.google.com with SMTP id 5614622812f47-3bc09844f29so410458b6e.0 for ; Thu, 04 Jan 2024 07:18:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1704381530; x=1704986330; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yq1QDb6qMZk3I5/DUUjoS1xIca883SGj28CqAPW/BI8=; b=yryvG2Vcj7WdqACavep5kAOlyvodAijNAT6S++FT1A0xXQ0PiUKu1DcA2lINlK0MjI 6UJxfzO3ihzgbAzCQuIOrf+9I3tQNzhEDPveA5M0mvKpm2AGhlo7vBCn3SbbnyBqtMfa 29V65+TYOOaBhrAkxkfncjJGATAUnUaU/8T5fE6tYVYgylZFv7IRj6DjoSs8+yN9397t 7Kmw1BxDSevpEGoY1SRDKY1Jf2UHrYa+AwLH+W8Ft9IlGkhnWDFjKMOX+NhO5uoFEy/B TxfffTnkaSNlrW1y+VMzBr3tHZi3YX2zLzAKdQUoNKo7W9xUlXSSvCS4BkZ0wLho3gcG uK/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704381530; x=1704986330; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yq1QDb6qMZk3I5/DUUjoS1xIca883SGj28CqAPW/BI8=; b=YNl4g0ZhgMBKUcDCVnQD+nudJQJv8shhtDjNUewW8D5K7Xha1/BInkTkhm+HFxK0L4 Gwt3e0lm8H+rgz8vvWeg3HvmiVMg7+/4QWMOdKgG4ZXm7iyDFFI+bV+9u/0ID/y0DZUn c2AvCRXHHZYdzCu6d7tSMx2vEv6sJgkCMslMvUSR0Rm6sO2wrmXkIwaCDpdCrIpEbqDy bgVDQI+j7kS9Qvswx1q2wGk/gxkFh8UKzizqJWNPnY9pBKR1dWvMEMOTCgLJ7WYmeLdB YXQHenA4P27AW5MRtnp2dn1x0USY8JfuZKcc0qDe7D1rC+GWB9/V4F6vm03SunwkVxgL Y+/w== X-Gm-Message-State: AOJu0YzIgEUQw+OLbTz2y/Y61IRYB+VBAUgi4OJ1EtUc/kEzRT7odM3/ E7zkzxdO5+R9/WcfRaD1/HuQgFXM9fEbjIlNzfMQB9E0Iov3 X-Received: by 2002:a05:6808:3387:b0:3bb:c765:de28 with SMTP id ce7-20020a056808338700b003bbc765de28mr688920oib.8.1704381529703; Thu, 04 Jan 2024 07:18:49 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20231213220447.3613500-1-benno.lossin@proton.me> <20231213220447.3613500-2-benno.lossin@proton.me> In-Reply-To: <20231213220447.3613500-2-benno.lossin@proton.me> From: Alice Ryhl Date: Thu, 4 Jan 2024 16:18:38 +0100 Message-ID: Subject: Re: [PATCH v2 2/3] rust: macros: allow generic parameter default values in `#[pin_data]` To: Benno Lossin Cc: Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Andreas Hindborg , Martin Rodriguez Reboredo , rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Dec 13, 2023 at 11:09=E2=80=AFPM Benno Lossin wrote: > > Add support for generic parameters defaults in `#[pin_data]` by using > the newly introduced `decl_generics` instead of the `impl_generics`. > > Before this would not compile: > > #[pin_data] > struct Foo { > // ... > } > > because it would be expanded to this: > > struct Foo { > // ... > } > > const _: () =3D { > struct __ThePinData { > __phantom: ::core::marker::PhantomData) -> Foo>, > } > impl ::core::clone::Clone for __ThePinData<= N> { > fn clone(&self) -> Self { > *self > } > } > > // [...] rest of expansion omitted > }; > > The problem is with the `impl`, since that is > invalid Rust syntax. It should not mention the default value at all, > since default values only make sense on type definitions. > > The new `impl_generics` do not contain the default values, thus > generating correct Rust code. > > This is used by the next commit that puts `#[pin_data]` on > `kernel::workqueue::Work`. > > Signed-off-by: Benno Lossin Tested-by: Alice Ryhl Reviewed-by: Alice Ryhl