From b01702578d21960996b2402a1661f3752a250bcd Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 1 Nov 2020 09:30:04 -0800 Subject: [PATCH 1/2] Add PartialEq for proc_macro::Punct --- library/proc_macro/src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/proc_macro/src/lib.rs b/library/proc_macro/src/lib.rs index 5a4b69cf6fc1b..4c44e85dae0ee 100644 --- a/library/proc_macro/src/lib.rs +++ b/library/proc_macro/src/lib.rs @@ -842,6 +842,13 @@ impl fmt::Debug for Punct { } } +#[stable(feature = "proc_macro_punct_eq", since = "1.49.0")] +impl PartialEq for Punct { + fn eq(&self, rhs: &char) -> bool { + self.as_char() == *rhs + } +} + /// An identifier (`ident`). #[derive(Clone)] #[stable(feature = "proc_macro_lib2", since = "1.29.0")] From 4652032c1472d3be3bb1a257393daea7bb2743f1 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 1 Nov 2020 09:40:30 -0800 Subject: [PATCH 2/2] Add Punct PartialEq smoke test --- library/proc_macro/tests/test.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/library/proc_macro/tests/test.rs b/library/proc_macro/tests/test.rs index 331b330cf29f0..d2e6b0bb8093b 100644 --- a/library/proc_macro/tests/test.rs +++ b/library/proc_macro/tests/test.rs @@ -1,6 +1,6 @@ #![feature(proc_macro_span)] -use proc_macro::LineColumn; +use proc_macro::{LineColumn, Punct}; #[test] fn test_line_column_ord() { @@ -10,3 +10,11 @@ fn test_line_column_ord() { assert!(line0_column0 < line0_column1); assert!(line0_column1 < line1_column0); } + +#[test] +fn test_punct_eq() { + // Good enough if it typechecks, since proc_macro::Punct can't exist in a test. + fn _check(punct: Punct) { + let _ = punct == ':'; + } +}