From nobody Sun Feb 8 13:53:20 2026 Received: from mail-dl1-f52.google.com (mail-dl1-f52.google.com [74.125.82.52]) (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 D1F252E36F1 for ; Sat, 7 Feb 2026 21:08:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770498520; cv=none; b=qU44NEN3LYWHNjaTeZNqKsX9INLyBjHGQKBEqQZC++WwCVQI5JYgMVvWjDMwcF+FrEj4NjKmZkcV5MqMs+7C3puiw/X0LrMg4ywrGDEWTkYjvAzVNOdqU1QEtCypmD4APbKio6ojm2r2v9KgyQiL8rVEKJnGXwIoZBZMErgCEWo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770498520; c=relaxed/simple; bh=AunIjG+WvPw3jaoOCt9Td/J+fOTkDCvMfl+8Ss01jVw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=SKiW4xGDXSLa3i8eDSujSjOXGa/Uo5yGcH9Qf25nQXsSCH8SzBduTQ9QzZMJ/LhOQ05iEPR6SN8rAQdkx3eTmLcEjE2GSgNBQxjcWS0gGjydY56WpCfrVac2C6gSKc7GJl9ERhVyP/8nUY2Mgq/AavgMTr9oZnFmAfdRz97hCoE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=in7e8IMx; arc=none smtp.client-ip=74.125.82.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="in7e8IMx" Received: by mail-dl1-f52.google.com with SMTP id a92af1059eb24-1270ac5d3efso1312496c88.1 for ; Sat, 07 Feb 2026 13:08:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770498519; x=1771103319; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jN8gIxAIY/WkY3mj0CU+KMW5LDh07gG6C2pZFbFuGHM=; b=in7e8IMxjFZXNujY+mItUXdu3KMdbTNdcx/qbRF4NSFtnzUtQjWD02PkI/aSF6wZm6 NK5msY4TlWY/1wu7cwKRWGVUJPr8FaypB1XrDQO+/hW4goCJSzoaSnJztQujocxsmYhQ 0HuyP5JAxHnBu1hR/qdlf07X/Qo8LzN3zVZt4vpi9owAkWfkgn8NAAPYteBx0Z6lZ9p4 KvrhTNpLVPAw3v9TsWV1kiE3tJ09hlEwjDi6OF0RRKOVjCfqnLEUyBrIqAR7Z2icvr7B 0e0CWLxYwmwU+6C+fO1jCcDQNZXSvh/TfxV1KRDyXVZvO9EdBepyJ959KkcU4qtdQPYH xj1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770498519; x=1771103319; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jN8gIxAIY/WkY3mj0CU+KMW5LDh07gG6C2pZFbFuGHM=; b=Xn2niZ5BXKNzk3Bk+EXL0TA2hb0AsTlc0bQjlnTMwTfFeguKx/MuUizk5VPt2xWVNg NyMD/E4br1KKZTpOWq6ZHbmrlFUYKQ6U9sW7v3XkMXbfAF7fWXNg6eFIXBdMMKVC5k1E uGJHM7Zd2WjfaAag2Yqq/SDXwFJm6HeUr2P90sf5qXj7qvdrlKsxlztC/dThS87Pjisn fAYhzUy+AwJGNMIwe0eeJU9eMO5ZglOenMo3fB71W8cmBqWNM5E7Zp0QZtRuYljqidha 5WOw1qqzPZECEcoloT6groBsBwgwT+svR+xbAgrcsc+6z6vlE6N24ic+urNpAs4yoGEf NRrA== X-Forwarded-Encrypted: i=1; AJvYcCWXbZEZzs2ADu/TBC6cGzU6OkS9XYP2rFvbvvr2SeF7X/FYu8+PV1Eh4xcws/ExOiC1CaeXKbL9y9s8VeA=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7ivOfCPrmMX+C8IJLgoOCySTMeu0FslKEp3RBWoQyCNHpowhM NJWW6s/9pIFH1KZfTRGaxKCzqRxNJbVNxHrk+YRAXukHUv+gnX30KphQ X-Gm-Gg: AZuq6aJCTkCKwJJMuaoZNJB7qt1GIQ0gBvK/7bQtQ8EQVttRBy/yT+KG1sBXUw8rpIS nu8IRCY5aln9Q87/6ZmJcrjk7MhgYSnJIohD06AKjJ02kbHSPrCqOfBu4ElNbjSgweFQbCqGo9Y oYdmryK/EayxNhxEWxax2SBqTw9VpyRTBmbwRNNGLelvLSmsOFjS09EujDdvr8LiyiaiiqjplNS va+oXWEM7u8L5Zou5577gL3Bws4ZJ9vytNfn0HSJdCsjZGe+oph8tdkFgP0QEJdhX79ckdc0gXA QD8PNvcQoVlREzfLrLl/15Cba2BzZsogSyQdaOyQvjEKu/McaFKhSb04HwbG224Oij9mi4vxFYm XF0D0+Wn6y4oWd8+yj587U4by0Yr4aGTlQzcC+hPgXKifp+N3QNFia8v6Hg3PY3GPt29Vx0Vw9L Hfn6gmKZTF6eEyR0hvOy5JuON+oKZvJbHcenswv6acnVHN0gI+GeqfbbDghn+SBao+ X-Received: by 2002:a05:693c:3105:b0:2b8:1d16:9728 with SMTP id 5a478bee46e88-2b85644edbemr2980689eec.5.1770498518864; Sat, 07 Feb 2026 13:08:38 -0800 (PST) Received: from jason-hall-A520-B.. ([2600:8800:41a0:8000:987e:6d8e:7cd5:6e71]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b855afdbfbsm4504628eec.11.2026.02.07.13.08.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Feb 2026 13:08:38 -0800 (PST) From: Jason Hall To: Miguel Ojeda , Joe Perches Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Boqun Feng , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Dirk Behme , Andy Whitcroft , Dwaipayan Ray , Lukas Bulwahn , Jason Hall Subject: [PATCH v8 1/2] scripts: checkpatch: move Rust-specific lints to separate file Date: Sat, 7 Feb 2026 14:07:45 -0700 Message-ID: <20260207210805.196759-2-jason.kei.hall@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260207210805.196759-1-jason.kei.hall@gmail.com> References: <20260207210805.196759-1-jason.kei.hall@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Create scripts/rust_checkpatch.pl for Rust-specific linting logic. Add a conditional loading hook in scripts/checkpatch.pl to call it. This will allow Rust linting logic to be maintained independently. Add a new entry to the MAINTAINERS file to track this new file. Suggested-by: Joe Perches Suggested-by: Miguel Ojeda Signed-off-by: Jason Hall --- MAINTAINERS | 22 ++++++++++++++-------- scripts/checkpatch.pl | 14 ++++++++++++++ scripts/rust_checkpatch.pl | 16 ++++++++++++++++ 3 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 scripts/rust_checkpatch.pl diff --git a/MAINTAINERS b/MAINTAINERS index f6bc65de83c7..57831dc30e6b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4109,7 +4109,7 @@ F: drivers/input/touchscreen/atmel_mxt_ts.c ATOMIC INFRASTRUCTURE M: Will Deacon M: Peter Zijlstra -M: Boqun Feng +M: Boqun Feng R: Mark Rutland R: Gary Guo L: linux-kernel@vger.kernel.org @@ -4500,7 +4500,7 @@ F: lib/sbitmap.c =20 BLOCK LAYER DEVICE DRIVER API [RUST] M: Andreas Hindborg -R: Boqun Feng +R: Boqun Feng L: linux-block@vger.kernel.org L: rust-for-linux@vger.kernel.org S: Supported @@ -5880,6 +5880,12 @@ R: Lukas Bulwahn S: Maintained F: scripts/checkpatch.pl =20 +CHECKPATCH RUST LINTS +M: Jason Hall +L: rust-for-linux@vger.kernel.org +S: Maintained +F: scripts/rust_checkpatch.pl + CHECKPATCH DOCUMENTATION M: Dwaipayan Ray M: Lukas Bulwahn @@ -11264,7 +11270,7 @@ F: tools/testing/selftests/timers/ =20 DELAY, SLEEP, TIMEKEEPING, TIMERS [RUST] M: Andreas Hindborg -R: Boqun Feng +R: Boqun Feng R: FUJITA Tomonori R: Frederic Weisbecker R: Lyude Paul @@ -14559,7 +14565,7 @@ M: Alan Stern M: Andrea Parri M: Will Deacon M: Peter Zijlstra -M: Boqun Feng +M: Boqun Feng M: Nicholas Piggin M: David Howells M: Jade Alglave @@ -14718,7 +14724,7 @@ LOCKING PRIMITIVES M: Peter Zijlstra M: Ingo Molnar M: Will Deacon -M: Boqun Feng (LOCKDEP & RUST) +M: Boqun Feng (LOCKDEP & RUST) R: Waiman Long L: linux-kernel@vger.kernel.org S: Maintained @@ -21912,7 +21918,7 @@ M: Frederic Weisbecker (kerne= l/rcu/tree_nocb.h) M: Neeraj Upadhyay (kernel/rcu/tasks.h) M: Joel Fernandes M: Josh Triplett -M: Boqun Feng +M: Boqun Feng M: Uladzislau Rezki R: Steven Rostedt R: Mathieu Desnoyers @@ -22362,7 +22368,7 @@ RESTARTABLE SEQUENCES SUPPORT M: Mathieu Desnoyers M: Peter Zijlstra M: "Paul E. McKenney" -M: Boqun Feng +M: Boqun Feng L: linux-kernel@vger.kernel.org S: Supported F: include/trace/events/rseq.h @@ -22885,7 +22891,7 @@ F: tools/verification/ =20 RUST M: Miguel Ojeda -R: Boqun Feng +R: Boqun Feng R: Gary Guo R: Bj=C3=B6rn Roy Baron R: Benno Lossin diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index c0250244cf7a..f75cb70ad0dd 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -20,6 +20,12 @@ my $D =3D dirname(abs_path($P)); =20 my $V =3D '0.32'; =20 +my $rust_checkpatch_available =3D 0; +if (-e "$D/rust_checkpatch.pl") { + require "$D/rust_checkpatch.pl"; + $rust_checkpatch_available =3D 1; +} + use Getopt::Long qw(:config no_auto_abbrev); =20 my $quiet =3D 0; @@ -2947,6 +2953,14 @@ sub process { =20 $cnt_lines++ if ($realcnt !=3D 0); =20 +# Check for Rust-specific lints + if ($rust_checkpatch_available && $realfile =3D~ /\.rs$/) { + my ($type, $msg) =3D process_rust($line, $rawline, $herecurr); + if ($type) { + WARN($type, $msg); + } + } + # Verify the existence of a commit log if appropriate # 2 is used because a $signature is counted in $commit_log_lines if ($in_commit_log) { diff --git a/scripts/rust_checkpatch.pl b/scripts/rust_checkpatch.pl new file mode 100644 index 000000000000..56c1bc29d3f2 --- /dev/null +++ b/scripts/rust_checkpatch.pl @@ -0,0 +1,16 @@ +#!/usr/bin/env perl +# SPDX-License-Identifier: GPL-2.0 +# +# (c) 2026, Jason Hall + +use strict; +use warnings; + +sub process_rust { + my ($line, $rawline, $herecurr) =3D @_; + + # Reserve for future Rust-specific lints + return (); +} + +1; --=20 2.43.0 From nobody Sun Feb 8 13:53:20 2026 Received: from mail-dy1-f177.google.com (mail-dy1-f177.google.com [74.125.82.177]) (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 E172C3542EB for ; Sat, 7 Feb 2026 21:08:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770498523; cv=none; b=qBAh48aoapv0rrJkjA0e9FIDNv4an7yRSccuDQuOPsyYQSJIdwLVJyd76iZBNUDaVdTIv0pVC+BK0B4ZT0KgbB5Rlg0ZOwrT8qQFFTDQ+xiH9hxyOHiHzzLlY9bKvOAuAKmRu3CPmU/CVyiTSv4PhaVvRAdr5RxTDQZKyZnQ5aE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770498523; c=relaxed/simple; bh=ZIlr47XYC6O3tGdR2UH0kFG4K374+y+PTnueSMvm5ck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=D1GeDf6/9JgxpMuwyyYna/WOhwgTR0Jdc6KgAb5OO74OersSSLzSWvhkC2AzXLvBlywtngoU4PN4D3hrcy0bf7rMORJ7PMlviOaS8CoYqen2ZuSvsgZmdb38peFoZpQcY+u4lwcZuMOEi2XTN/p6PDfSSA5uxJY+5WzvneagOik= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CkTzTKsl; arc=none smtp.client-ip=74.125.82.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CkTzTKsl" Received: by mail-dy1-f177.google.com with SMTP id 5a478bee46e88-2ba6aa57d5fso2549eec.1 for ; Sat, 07 Feb 2026 13:08:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770498522; x=1771103322; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kCBIlVtV+zq8f7gfIO2xxsTQyhC9pk+Xjp2VgrBosxw=; b=CkTzTKsl5YZaXwwVIq/Q/XCExA6+YYmFqpzLtbMB752vVe4TlPSsPrmWlZZQ357U4D x+mJ4Q0x8+3Hf3yVhp6sZaqL2X4tczPkn6TmtB0c+1bEWrGdPZG3HC+Qhi1huYZSprH+ agO0H06nVPQyv0aGjopibodNhDfWupERT2Kb5bRcEi+oy4444EU6TGNS5gFAQjHtnFn0 8dPkKBl4ZBrzMUWPEDjPwi4SNlvpNG2cArx+w5wa2aTqOjgwkXXj9ts1x7MN/MgrCn4q DKLiZWZPD6I72WRQRQDKZNrO7t0zoPCH7lX/G14x1iFum90Ew74ta59qc5upN8sXmaQl YH8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770498522; x=1771103322; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kCBIlVtV+zq8f7gfIO2xxsTQyhC9pk+Xjp2VgrBosxw=; b=fVkIwSuZFUwfNCK+QJgx9B2SAghhs2y5nP8+3050sG4EJSQh/pNcEias+UoN2qFyZB eXatLS5i6wsId7T7drGF3Kcir8xMQiOIxUsHpMg7o/rcjBKDgKLeA8SVFmWLU2rj+4Zu KxutppGOLcU6gDQcx/Wql5HjHvPaBoaxN77ze70mRgET7bsrT7IHoMrTLjonh/6a1JYb LgpIHzayvRgU3L6/7Pt5sPsBzDwfZbw7Il14JyUVY+iudpQgXkA0Y72XPV/rPt2tSPQj 7/zNjeTzKBq3AuGAjOIBP7WCOxTBkiKuTseEX11Hsj1CaF365TPq0A7wUFU+Moouus78 EoaQ== X-Forwarded-Encrypted: i=1; AJvYcCWdjz6rjuMxyD6ElS+BSZ8VGy23WWhutnazjiRQLnE6+wtOx40k3vTF0ZGjTu0YD4Dw/0QJrQoGaC3tVk8=@vger.kernel.org X-Gm-Message-State: AOJu0YxzMA4x8yu44+gpiyoAAHTUNnlt57UfQMlvujApQ2vGlqni8lI4 uLRxY8Q7B0khYMEuAUeKria94NbSTjQnklGOmGvCvgCd2+uE7SODzNRj X-Gm-Gg: AZuq6aKGjB9IYnXbFO6y8RIuf0D7xDP2FuswxKQHdjDwoIA7VOn1NjFESeaVE1gyc3f JXeA6hycXcL4mNvzHZ7jmZEvSpLSVyYta6BWuyRmSyDDjFzQq/6sJlTpUFm0EGdSfh4Pi41bV8h jjE+JhY4l1bm+EoNxjnCPKIUsIZqYb+ZpeCVpTC19rnzamnfeHJjEDspA0apC6mKAVDKYHnxwEm rYTFM0GR2QT4MU9GCLyE5EwRxk+ZJO9XLXzj+GLf1Qhkiu0R9EHyKF5/myCtzKUwlFdlJo/Nw8s XuLANL1E5qH9cLn3X290ZPFYWkDIKcuHDsy6Us5Kp7/rLOHrSjhbhkcDNzWmEWostPVHNjhBb7d GKR8jlvRpMpFh07bFoTi8HUOJfhWkx/O5R8CrZqpWXbmFkOnQvVVH42GvLuCxXVTZWMrIMxjUgZ 5gO3/T7DeanURcXfe/VBgN5tOZjFznqKBQ95VJKdrgTbaWPiTtpaEGvMKUyLaIc3ws41eivChva WA= X-Received: by 2002:a05:7300:7b94:b0:2b0:5028:bafd with SMTP id 5a478bee46e88-2b856453d5cmr2860785eec.8.1770498521927; Sat, 07 Feb 2026 13:08:41 -0800 (PST) Received: from jason-hall-A520-B.. ([2600:8800:41a0:8000:987e:6d8e:7cd5:6e71]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2b855afdbfbsm4504628eec.11.2026.02.07.13.08.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Feb 2026 13:08:41 -0800 (PST) From: Jason Hall To: Miguel Ojeda , Joe Perches Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Boqun Feng , =?UTF-8?q?Bj=C3=B6rn=20Roy=20Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Danilo Krummrich , Dirk Behme , Andy Whitcroft , Dwaipayan Ray , Lukas Bulwahn , Jason Hall Subject: [PATCH v8 2/2] scripts: checkpatch: add RUST_UNWRAP lint Date: Sat, 7 Feb 2026 14:07:46 -0700 Message-ID: <20260207210805.196759-3-jason.kei.hall@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260207210805.196759-1-jason.kei.hall@gmail.com> References: <20260207210805.196759-1-jason.kei.hall@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Warn against the use of .unwrap() and .expect() unless accompanied by a '// PANIC:' comment. This enforces safety standards in the Rust- for-Linux project until upstream Clippy lints are integrated. Suggested-by: Miguel Ojeda Link: https://github.com/Rust-for-linux/linux/issues/1191 Signed-off-by: Jason Hall --- scripts/rust_checkpatch.pl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/rust_checkpatch.pl b/scripts/rust_checkpatch.pl index 56c1bc29d3f2..9a4e256a4ec4 100644 --- a/scripts/rust_checkpatch.pl +++ b/scripts/rust_checkpatch.pl @@ -9,7 +9,21 @@ use warnings; sub process_rust { my ($line, $rawline, $herecurr) =3D @_; =20 - # Reserve for future Rust-specific lints + # Check for Rust unwrap/expect usage. + # We skip lines that are already comments, assert macros (common in te= sts), + # or have a '// PANIC:' justification. + if ($line =3D~ /^\+/) { + if ($line =3D~ /(?:\.|::)(?:unwrap|expect)\s*\(/ && + $rawline !~ /\/\/\s*PANIC:/ && + $line !~ /^\+\s*\/\// && + $line !~ /^\+\s*assert/) { + return ("RUST_UNWRAP", + "unwrap() and expect() should generally be avoided in = Rust kernel code.\n" . + "If the use is intended, please justify it with a '// = PANIC:' comment.\n" . + "See: https://rust.docs.kernel.org/kernel/error/type.R= esult.html#error-codes-in-c-and-rust\n" . + $herecurr); + } + } return (); } =20 --=20 2.43.0