Use tidy to sort sym::* items

This commit is contained in:
Yotam Ofek
2025-06-27 17:58:36 +00:00
parent d41e12f1f4
commit 00b64f8851
3 changed files with 64 additions and 94 deletions

View File

@@ -190,17 +190,6 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
let mut symbols_stream = quote! {};
let mut prefill_stream = quote! {};
let mut entries = Entries::with_capacity(input.keywords.len() + input.symbols.len() + 10);
let mut prev_key: Option<(Span, String)> = None;
let mut check_order = |span: Span, s: &str, errors: &mut Errors| {
if let Some((prev_span, ref prev_str)) = prev_key {
if s < prev_str {
errors.error(span, format!("Symbol `{s}` must precede `{prev_str}`"));
errors.error(prev_span, format!("location of previous symbol `{prev_str}`"));
}
}
prev_key = Some((span, s.to_string()));
};
// Generate the listed keywords.
for keyword in input.keywords.iter() {
@@ -219,7 +208,6 @@ fn symbols_with_errors(input: TokenStream) -> (TokenStream, Vec<syn::Error>) {
// Generate the listed symbols.
for symbol in input.symbols.iter() {
let name = &symbol.name;
check_order(symbol.name.span(), &name.to_string(), &mut errors);
let value = match &symbol.value {
Value::SameAsName => name.to_string(),

View File

@@ -84,18 +84,3 @@ fn check_dup_symbol_and_keyword() {
};
test_symbols_macro(input, &["Symbol `splat` is duplicated", "location of previous definition"]);
}
#[test]
fn check_symbol_order() {
let input = quote! {
Keywords {}
Symbols {
zebra,
aardvark,
}
};
test_symbols_macro(
input,
&["Symbol `aardvark` must precede `zebra`", "location of previous symbol `zebra`"],
);
}

View File

@@ -150,14 +150,10 @@ symbols! {
// As well as the symbols listed, there are symbols for the strings
// "0", "1", ..., "9", which are accessible via `sym::integer`.
//
// The proc macro will abort if symbols are not in alphabetical order (as
// defined by `impl Ord for str`) or if any symbols are duplicated. Vim
// users can sort the list by selecting it and executing the command
// `:'<,'>!LC_ALL=C sort`.
//
// There is currently no checking that all symbols are used; that would be
// nice to have.
Symbols {
// tidy-alphabetical-start
Abi,
AcqRel,
Acquire,
@@ -175,18 +171,18 @@ symbols! {
AsyncGenPending,
AsyncGenReady,
AtomicBool,
AtomicI128,
AtomicI8,
AtomicI16,
AtomicI32,
AtomicI64,
AtomicI8,
AtomicI128,
AtomicIsize,
AtomicPtr,
AtomicU128,
AtomicU8,
AtomicU16,
AtomicU32,
AtomicU64,
AtomicU8,
AtomicU128,
AtomicUsize,
BTreeEntry,
BTreeMap,
@@ -607,10 +603,10 @@ symbols! {
catch_unwind,
cause,
cdylib,
ceilf128,
ceilf16,
ceilf32,
ceilf64,
ceilf128,
cfg,
cfg_accessible,
cfg_attr,
@@ -747,10 +743,10 @@ symbols! {
copy,
copy_closures,
copy_nonoverlapping,
copysignf128,
copysignf16,
copysignf32,
copysignf64,
copysignf128,
core,
core_panic,
core_panic_2015_macro,
@@ -763,10 +759,10 @@ symbols! {
coroutine_state,
coroutine_yield,
coroutines,
cosf128,
cosf16,
cosf32,
cosf64,
cosf128,
count,
coverage,
coverage_attribute,
@@ -874,8 +870,8 @@ symbols! {
dotdot_in_tuple_patterns,
dotdoteq_in_patterns,
dreg,
dreg_low16,
dreg_low8,
dreg_low16,
drop,
drop_in_place,
drop_types_in_const,
@@ -928,16 +924,16 @@ symbols! {
exhaustive_integer_patterns,
exhaustive_patterns,
existential_type,
exp2f128,
exp2f16,
exp2f32,
exp2f64,
exp2f128,
expect,
expected,
expf128,
expf16,
expf32,
expf64,
expf128,
explicit_extern_abis,
explicit_generic_args_with_impl_trait,
explicit_tail_calls,
@@ -958,9 +954,6 @@ symbols! {
external,
external_doc,
f,
f128,
f128_epsilon,
f128_nan,
f16,
f16_epsilon,
f16_nan,
@@ -999,10 +992,13 @@ symbols! {
f64_legacy_const_neg_infinity,
f64_legacy_const_radix,
f64_nan,
fabsf128,
f128,
f128_epsilon,
f128_nan,
fabsf16,
fabsf32,
fabsf64,
fabsf128,
fadd_algebraic,
fadd_fast,
fake_variadic,
@@ -1024,22 +1020,22 @@ symbols! {
flags,
float,
float_to_int_unchecked,
floorf128,
floorf16,
floorf32,
floorf64,
fmaf128,
floorf128,
fmaf16,
fmaf32,
fmaf64,
fmaf128,
fmt,
fmt_debug,
fmul_algebraic,
fmul_fast,
fmuladdf128,
fmuladdf16,
fmuladdf32,
fmuladdf64,
fmuladdf128,
fn_align,
fn_body,
fn_delegation,
@@ -1140,13 +1136,12 @@ symbols! {
html_root_url,
hwaddress,
i,
i128,
i128_legacy_const_max,
i128_legacy_const_min,
i128_legacy_fn_max_value,
i128_legacy_fn_min_value,
i128_legacy_mod,
i128_type,
i8,
i8_legacy_const_max,
i8_legacy_const_min,
i8_legacy_fn_max_value,
i8_legacy_fn_min_value,
i8_legacy_mod,
i16,
i16_legacy_const_max,
i16_legacy_const_min,
@@ -1165,12 +1160,13 @@ symbols! {
i64_legacy_fn_max_value,
i64_legacy_fn_min_value,
i64_legacy_mod,
i8,
i8_legacy_const_max,
i8_legacy_const_min,
i8_legacy_fn_max_value,
i8_legacy_fn_min_value,
i8_legacy_mod,
i128,
i128_legacy_const_max,
i128_legacy_const_min,
i128_legacy_fn_max_value,
i128_legacy_fn_min_value,
i128_legacy_mod,
i128_type,
ident,
if_let,
if_let_guard,
@@ -1292,19 +1288,19 @@ symbols! {
loaded_from_disk,
local,
local_inner_macros,
log10f128,
log10f16,
log10f32,
log10f64,
log2f128,
log2f16,
log2f32,
log2f64,
log2f128,
log10f16,
log10f32,
log10f64,
log10f128,
log_syntax,
logf128,
logf16,
logf32,
logf64,
logf128,
loongarch_target_feature,
loop_break_value,
loop_match,
@@ -1334,14 +1330,14 @@ symbols! {
match_beginning_vert,
match_default_bindings,
matches_macro,
maximumf128,
maximumf16,
maximumf32,
maximumf64,
maxnumf128,
maximumf128,
maxnumf16,
maxnumf32,
maxnumf64,
maxnumf128,
may_dangle,
may_unwind,
maybe_uninit,
@@ -1372,14 +1368,14 @@ symbols! {
min_generic_const_args,
min_specialization,
min_type_alias_impl_trait,
minimumf128,
minimumf16,
minimumf32,
minimumf64,
minnumf128,
minimumf128,
minnumf16,
minnumf32,
minnumf64,
minnumf128,
mips_target_feature,
mir_assume,
mir_basic_block,
@@ -1633,14 +1629,14 @@ symbols! {
post_dash_lto: "post-lto",
postfix_match,
powerpc_target_feature,
powf128,
powf16,
powf32,
powf64,
powif128,
powf128,
powif16,
powif32,
powif64,
powif128,
pre_dash_lto: "pre-lto",
precise_capturing,
precise_capturing_in_traits,
@@ -1785,14 +1781,14 @@ symbols! {
ropi_rwpi: "ropi-rwpi",
rotate_left,
rotate_right,
round_ties_even_f128,
round_ties_even_f16,
round_ties_even_f32,
round_ties_even_f64,
roundf128,
round_ties_even_f128,
roundf16,
roundf32,
roundf64,
roundf128,
rt,
rtm_target_feature,
rust,
@@ -1972,8 +1968,8 @@ symbols! {
simd_fexp2,
simd_ffi,
simd_flog,
simd_flog10,
simd_flog2,
simd_flog10,
simd_floor,
simd_fma,
simd_fmax,
@@ -2021,10 +2017,10 @@ symbols! {
simd_with_exposed_provenance,
simd_xor,
since,
sinf128,
sinf16,
sinf32,
sinf64,
sinf128,
size,
size_of,
size_of_val,
@@ -2046,10 +2042,10 @@ symbols! {
specialization,
speed,
spotlight,
sqrtf128,
sqrtf16,
sqrtf32,
sqrtf64,
sqrtf128,
sreg,
sreg_low16,
sse,
@@ -2127,10 +2123,10 @@ symbols! {
target_has_atomic,
target_has_atomic_equal_alignment,
target_has_atomic_load_store,
target_has_reliable_f128,
target_has_reliable_f128_math,
target_has_reliable_f16,
target_has_reliable_f16_math,
target_has_reliable_f128,
target_has_reliable_f128_math,
target_os,
target_pointer_width,
target_thread_local,
@@ -2173,10 +2169,10 @@ symbols! {
transparent_enums,
transparent_unions,
trivial_bounds,
truncf128,
truncf16,
truncf32,
truncf64,
truncf128,
try_blocks,
try_capture,
try_from,
@@ -2205,12 +2201,12 @@ symbols! {
type_name,
type_privacy_lints,
typed_swap_nonoverlapping,
u128,
u128_legacy_const_max,
u128_legacy_const_min,
u128_legacy_fn_max_value,
u128_legacy_fn_min_value,
u128_legacy_mod,
u8,
u8_legacy_const_max,
u8_legacy_const_min,
u8_legacy_fn_max_value,
u8_legacy_fn_min_value,
u8_legacy_mod,
u16,
u16_legacy_const_max,
u16_legacy_const_min,
@@ -2229,12 +2225,12 @@ symbols! {
u64_legacy_fn_max_value,
u64_legacy_fn_min_value,
u64_legacy_mod,
u8,
u8_legacy_const_max,
u8_legacy_const_min,
u8_legacy_fn_max_value,
u8_legacy_fn_min_value,
u8_legacy_mod,
u128,
u128_legacy_const_max,
u128_legacy_const_min,
u128_legacy_fn_max_value,
u128_legacy_fn_min_value,
u128_legacy_mod,
ub_checks,
unaligned_volatile_load,
unaligned_volatile_store,
@@ -2387,6 +2383,7 @@ symbols! {
zfh,
zfhmin,
zmm_reg,
// tidy-alphabetical-end
}
}