run cargo fmt

This commit is contained in:
Skgland
2023-08-26 01:29:53 +02:00
committed by Bennet Bleßmann
parent 5585e83fd6
commit b2130c2a48
50 changed files with 10821 additions and 9258 deletions

View File

@@ -590,7 +590,10 @@ enum SystemClauseType {
UnattributedVar,
#[strum_discriminants(strum(props(Arity = "4", Name = "$get_db_refs")))]
GetDBRefs,
#[strum_discriminants(strum(props(Arity = "2", Name = "$keysort_with_constant_var_ordering")))]
#[strum_discriminants(strum(props(
Arity = "2",
Name = "$keysort_with_constant_var_ordering"
)))]
KeySortWithConstantVarOrdering,
REPL(REPLCodePtr),
}
@@ -801,7 +804,7 @@ enum InstructionTemplate {
}
fn derive_input(ty: &Type) -> Option<DeriveInput> {
let clause_type: Type = parse_quote!{ ClauseType };
let clause_type: Type = parse_quote! { ClauseType };
let built_in_clause_type: Type = parse_quote! { BuiltInClauseType };
let inlined_clause_type: Type = parse_quote! { InlinedClauseType };
let system_clause_type: Type = parse_quote! { SystemClauseType };
@@ -847,7 +850,8 @@ fn add_discriminant_data<DiscriminantT>(
prefix: &'static str,
variant_data: &mut Vec<(&'static str, Arity, Variant)>,
) -> (&'static str, Arity)
where DiscriminantT: FromStr + strum::EnumProperty + std::fmt::Debug
where
DiscriminantT: FromStr + strum::EnumProperty + std::fmt::Debug,
{
let name = prop_from_ident::<DiscriminantT>(&variant.ident, "Name");
let arity = Arity::from(prop_from_ident::<DiscriminantT>(&variant.ident, "Arity"));
@@ -1699,7 +1703,7 @@ fn generate_instruction_preface() -> TokenStream {
&Instruction::CallMakeDirectoryPath |
&Instruction::CallDeleteFile |
&Instruction::CallRenameFile |
&Instruction::CallFileCopy |
&Instruction::CallFileCopy |
&Instruction::CallWorkingDirectory |
&Instruction::CallDeleteDirectory |
&Instruction::CallPathCanonical |
@@ -1793,9 +1797,9 @@ fn generate_instruction_preface() -> TokenStream {
&Instruction::CallHttpListen |
&Instruction::CallHttpAccept |
&Instruction::CallHttpAnswer |
&Instruction::CallLoadForeignLib |
&Instruction::CallForeignCall |
&Instruction::CallDefineForeignStruct |
&Instruction::CallLoadForeignLib |
&Instruction::CallForeignCall |
&Instruction::CallDefineForeignStruct |
&Instruction::CallPredicateDefined |
&Instruction::CallStripModule |
&Instruction::CallCurrentTime |
@@ -1927,7 +1931,7 @@ fn generate_instruction_preface() -> TokenStream {
&Instruction::ExecuteMakeDirectoryPath |
&Instruction::ExecuteDeleteFile |
&Instruction::ExecuteRenameFile |
&Instruction::ExecuteFileCopy |
&Instruction::ExecuteFileCopy |
&Instruction::ExecuteWorkingDirectory |
&Instruction::ExecuteDeleteDirectory |
&Instruction::ExecutePathCanonical |
@@ -2021,9 +2025,9 @@ fn generate_instruction_preface() -> TokenStream {
&Instruction::ExecuteHttpListen |
&Instruction::ExecuteHttpAccept |
&Instruction::ExecuteHttpAnswer |
&Instruction::ExecuteLoadForeignLib |
&Instruction::ExecuteForeignCall |
&Instruction::ExecuteDefineForeignStruct |
&Instruction::ExecuteLoadForeignLib |
&Instruction::ExecuteForeignCall |
&Instruction::ExecuteDefineForeignStruct |
&Instruction::ExecutePredicateDefined |
&Instruction::ExecuteStripModule |
&Instruction::ExecuteCurrentTime |
@@ -2300,7 +2304,8 @@ pub fn generate_instructions_rs() -> TokenStream {
instr_data.generate_instruction_enum_loop(input);
let instr_variants: Vec<_> = instr_data.instr_variants
let instr_variants: Vec<_> = instr_data
.instr_variants
.iter()
.cloned()
.map(|(_, _, _, variant)| variant)
@@ -2339,7 +2344,8 @@ pub fn generate_instructions_rs() -> TokenStream {
for (name, arity, variant) in instr_data.compare_number_variants {
let ident = variant.ident.clone();
let variant_fields: Vec<_> = variant.fields
let variant_fields: Vec<_> = variant
.fields
.into_iter()
.map(|field| {
let ty = field.ty;
@@ -2378,29 +2384,23 @@ pub fn generate_instructions_rs() -> TokenStream {
let ident = variant.ident;
let instr_ident = format_ident!("Call{}", ident);
let placeholder_ids: Vec<_> = (0 .. variant_fields.len())
let placeholder_ids: Vec<_> = (0..variant_fields.len())
.map(|n| format_ident!("f_{}", n))
.collect();
clause_type_to_instr_arms.push(
quote! {
ClauseType::Inlined(
InlinedClauseType::CompareNumber(CompareNumber::#ident(#(#placeholder_ids),*))
) => Instruction::#instr_ident(#(*#placeholder_ids),*)
}
);
clause_type_to_instr_arms.push(quote! {
ClauseType::Inlined(
InlinedClauseType::CompareNumber(CompareNumber::#ident(#(#placeholder_ids),*))
) => Instruction::#instr_ident(#(*#placeholder_ids),*)
});
is_inbuilt_arms.push(
quote! {
(atom!(#name), #arity) => true
}
);
is_inbuilt_arms.push(quote! {
(atom!(#name), #arity) => true
});
is_inlined_arms.push(
quote! {
(atom!(#name), #arity) => true
}
);
is_inlined_arms.push(quote! {
(atom!(#name), #arity) => true
});
}
for (name, arity, variant) in instr_data.compare_term_variants {
@@ -2412,36 +2412,31 @@ pub fn generate_instructions_rs() -> TokenStream {
)
});
clause_type_name_arms.push(
quote! {
ClauseType::BuiltIn(
BuiltInClauseType::CompareTerm(CompareTerm::#ident)
) => atom!(#name)
}
);
clause_type_name_arms.push(quote! {
ClauseType::BuiltIn(
BuiltInClauseType::CompareTerm(CompareTerm::#ident)
) => atom!(#name)
});
let ident = variant.ident;
let instr_ident = format_ident!("Call{}", ident);
clause_type_to_instr_arms.push(
quote! {
ClauseType::BuiltIn(
BuiltInClauseType::CompareTerm(CompareTerm::#ident)
) => Instruction::#instr_ident
}
);
clause_type_to_instr_arms.push(quote! {
ClauseType::BuiltIn(
BuiltInClauseType::CompareTerm(CompareTerm::#ident)
) => Instruction::#instr_ident
});
is_inbuilt_arms.push(
quote! {
(atom!(#name), #arity) => true
}
);
is_inbuilt_arms.push(quote! {
(atom!(#name), #arity) => true
});
}
for (name, arity, variant) in instr_data.builtin_type_variants {
let ident = variant.ident.clone();
let variant_fields: Vec<_> = variant.fields
let variant_fields: Vec<_> = variant
.fields
.into_iter()
.map(|field| {
let ty = field.ty;
@@ -2480,7 +2475,7 @@ pub fn generate_instructions_rs() -> TokenStream {
let ident = variant.ident;
let instr_ident = format_ident!("Call{}", ident);
let placeholder_ids: Vec<_> = (0 .. variant_fields.len())
let placeholder_ids: Vec<_> = (0..variant_fields.len())
.map(|n| format_ident!("f_{}", n))
.collect();
@@ -2498,17 +2493,16 @@ pub fn generate_instructions_rs() -> TokenStream {
}
});
is_inbuilt_arms.push(
quote! {
(atom!(#name), #arity) => true
}
);
is_inbuilt_arms.push(quote! {
(atom!(#name), #arity) => true
});
}
for (name, arity, variant) in instr_data.inlined_type_variants {
let ident = variant.ident.clone();
let variant_fields: Vec<_> = variant.fields
let variant_fields: Vec<_> = variant
.fields
.into_iter()
.map(|field| {
if field.ty.type_id() == TypeId::of::<usize>() {
@@ -2551,35 +2545,30 @@ pub fn generate_instructions_rs() -> TokenStream {
let ident = variant.ident;
let instr_ident = format_ident!("Call{}", ident);
let placeholder_ids: Vec<_> = (0 .. variant_fields.len())
let placeholder_ids: Vec<_> = (0..variant_fields.len())
.map(|n| format_ident!("f_{}", n))
.collect();
clause_type_to_instr_arms.push(
quote! {
ClauseType::Inlined(
InlinedClauseType::#ident(#(#placeholder_ids),*)
) => Instruction::#instr_ident(*#(#placeholder_ids),*)
}
);
clause_type_to_instr_arms.push(quote! {
ClauseType::Inlined(
InlinedClauseType::#ident(#(#placeholder_ids),*)
) => Instruction::#instr_ident(*#(#placeholder_ids),*)
});
is_inbuilt_arms.push(
quote! {
(atom!(#name), #arity) => true
}
);
is_inbuilt_arms.push(quote! {
(atom!(#name), #arity) => true
});
is_inlined_arms.push(
quote! {
(atom!(#name), #arity) => true
}
);
is_inlined_arms.push(quote! {
(atom!(#name), #arity) => true
});
}
for (name, arity, variant) in instr_data.system_clause_type_variants {
let ident = variant.ident.clone();
let variant_fields: Vec<_> = variant.fields
let variant_fields: Vec<_> = variant
.fields
.into_iter()
.map(|field| {
if field.ty == parse_quote! { usize } {
@@ -2647,7 +2636,7 @@ pub fn generate_instructions_rs() -> TokenStream {
ident.clone()
};
let placeholder_ids: Vec<_> = (0 .. variant_fields.len())
let placeholder_ids: Vec<_> = (0..variant_fields.len())
.map(|n| format_ident!("f_{}", n))
.collect();
@@ -2665,23 +2654,22 @@ pub fn generate_instructions_rs() -> TokenStream {
}
});
is_inbuilt_arms.push(
if let Arity::Ident("arity") = &arity {
quote! {
(atom!(#name), _arity) => true
}
} else {
quote! {
(atom!(#name), #arity) => true
}
is_inbuilt_arms.push(if let Arity::Ident("arity") = &arity {
quote! {
(atom!(#name), _arity) => true
}
);
} else {
quote! {
(atom!(#name), #arity) => true
}
});
}
for (name, arity, variant) in instr_data.repl_code_ptr_variants {
let ident = variant.ident.clone();
let variant_fields: Vec<_> = variant.fields
let variant_fields: Vec<_> = variant
.fields
.into_iter()
.map(|field| {
if field.ty.type_id() == TypeId::of::<usize>() {
@@ -2724,7 +2712,7 @@ pub fn generate_instructions_rs() -> TokenStream {
let ident = variant.ident;
let instr_ident = format_ident!("Call{}", ident);
let placeholder_ids: Vec<_> = (0 .. variant_fields.len())
let placeholder_ids: Vec<_> = (0..variant_fields.len())
.map(|n| format_ident!("f_{}", n))
.collect();
@@ -2742,11 +2730,9 @@ pub fn generate_instructions_rs() -> TokenStream {
}
});
is_inbuilt_arms.push(
quote! {
(atom!(#name), #arity) => true
}
);
is_inbuilt_arms.push(quote! {
(atom!(#name), #arity) => true
});
}
for (name, arity, variant) in instr_data.clause_type_variants {
@@ -2768,7 +2754,8 @@ pub fn generate_instructions_rs() -> TokenStream {
continue;
}
let variant_fields: Vec<_> = variant.fields
let variant_fields: Vec<_> = variant
.fields
.into_iter()
.map(|field| {
if field.ty == parse_quote! { usize } {
@@ -2802,7 +2789,7 @@ pub fn generate_instructions_rs() -> TokenStream {
let ident = variant.ident;
let placeholder_ids: Vec<_> = (0 .. variant_fields.len())
let placeholder_ids: Vec<_> = (0..variant_fields.len())
.map(|n| format_ident!("f_{}", n))
.collect();
@@ -2817,14 +2804,13 @@ pub fn generate_instructions_rs() -> TokenStream {
}
});
is_inbuilt_arms.push(
quote! {
(atom!(#name), _arity) => true
}
);
is_inbuilt_arms.push(quote! {
(atom!(#name), _arity) => true
});
}
let to_execute_arms: Vec<_> = instr_data.instr_variants
let to_execute_arms: Vec<_> = instr_data
.instr_variants
.iter()
.cloned()
.filter_map(|(_, _, _, variant)| {
@@ -2837,12 +2823,11 @@ pub fn generate_instructions_rs() -> TokenStream {
0
};
let placeholder_ids: Vec<_> = (0 .. enum_arity)
.map(|n| format_ident!("f_{}", n))
.collect();
let placeholder_ids: Vec<_> =
(0..enum_arity).map(|n| format_ident!("f_{}", n)).collect();
if variant_string.starts_with("Call") {
let execute_ident = format_ident!("Execute{}", variant_string["Call".len() ..]);
let execute_ident = format_ident!("Execute{}", variant_string["Call".len()..]);
Some(if enum_arity == 0 {
quote! {
@@ -2857,7 +2842,7 @@ pub fn generate_instructions_rs() -> TokenStream {
})
} else if variant_string.starts_with("DefaultCall") {
let execute_ident =
format_ident!("DefaultExecute{}", variant_string["DefaultCall".len() ..]);
format_ident!("DefaultExecute{}", variant_string["DefaultCall".len()..]);
Some(if enum_arity == 0 {
quote! {
@@ -2876,7 +2861,8 @@ pub fn generate_instructions_rs() -> TokenStream {
})
.collect();
let is_execute_arms: Vec<_> = instr_data.instr_variants
let is_execute_arms: Vec<_> = instr_data
.instr_variants
.iter()
.cloned()
.filter_map(|(_, _, _, variant)| {
@@ -2919,7 +2905,8 @@ pub fn generate_instructions_rs() -> TokenStream {
})
.collect();
let to_default_arms: Vec<_> = instr_data.instr_variants
let to_default_arms: Vec<_> = instr_data
.instr_variants
.iter()
.cloned()
.filter_map(|(_, _, countable_inference, variant)| {
@@ -2936,9 +2923,8 @@ pub fn generate_instructions_rs() -> TokenStream {
0
};
let placeholder_ids: Vec<_> = (0 .. enum_arity)
.map(|n| format_ident!("f_{}", n))
.collect();
let placeholder_ids: Vec<_> =
(0..enum_arity).map(|n| format_ident!("f_{}", n)).collect();
Some(if enum_arity == 0 {
quote! {
@@ -2957,7 +2943,8 @@ pub fn generate_instructions_rs() -> TokenStream {
})
.collect();
let control_flow_arms: Vec<_> = instr_data.instr_variants
let control_flow_arms: Vec<_> = instr_data
.instr_variants
.iter()
.cloned()
.filter_map(|(_, _, _, variant)| {
@@ -2985,7 +2972,8 @@ pub fn generate_instructions_rs() -> TokenStream {
})
.collect();
let instr_macro_arms: Vec<_> = instr_data.instr_variants
let instr_macro_arms: Vec<_> = instr_data
.instr_variants
.iter()
.rev() // produce default, execute & default & execute cases first.
.cloned()
@@ -2994,7 +2982,7 @@ pub fn generate_instructions_rs() -> TokenStream {
let variant_string = variant.ident.to_string();
let arity = match arity {
Arity::Static(arity) => arity,
_ => 1
_ => 1,
};
Some(if variant_string.starts_with("Execute") {
@@ -3071,9 +3059,10 @@ pub fn generate_instructions_rs() -> TokenStream {
})
.collect();
let name_and_arity_arms: Vec<_> = instr_data.instr_variants
let name_and_arity_arms: Vec<_> = instr_data
.instr_variants
.into_iter()
.map(|(name,arity,_,variant)| {
.map(|(name, arity, _, variant)| {
let ident = &variant.ident;
let enum_arity = if let Fields::Unnamed(fields) = &variant.fields {
@@ -3303,8 +3292,10 @@ pub fn generate_instructions_rs() -> TokenStream {
fn is_callable(id: &Ident) -> bool {
let id = id.to_string();
id.starts_with("Call") || id.starts_with("Execute") || id.starts_with("DefaultCall") ||
id.starts_with("DefaultExecute")
id.starts_with("Call")
|| id.starts_with("Execute")
|| id.starts_with("DefaultCall")
|| id.starts_with("DefaultExecute")
}
fn is_non_default_callable(id: &Ident) -> bool {
@@ -3325,7 +3316,8 @@ fn create_instr_variant(id: Ident, mut variant: Variant) -> Variant {
}
fn prop_from_ident<DiscriminantT>(id: &Ident, key: &'static str) -> &'static str
where DiscriminantT: FromStr + strum::EnumProperty + std::fmt::Debug
where
DiscriminantT: FromStr + strum::EnumProperty + std::fmt::Debug,
{
let disc = match DiscriminantT::from_str(id.to_string().as_str()) {
Ok(disc) => disc,
@@ -3345,7 +3337,7 @@ fn prop_from_ident<DiscriminantT>(id: &Ident, key: &'static str) -> &'static str
#[derive(Clone, Copy)]
enum Arity {
Static(usize),
Ident(&'static str)
Ident(&'static str),
}
impl From<&'static str> for Arity {
@@ -3437,9 +3429,13 @@ impl InstructionData {
(name, arity, CountableInference::NotCounted)
} else if id == "InstructionTemplate" {
( prop_from_ident::<InstructionTemplateDiscriminants>(&variant.ident, "Name"),
Arity::from(prop_from_ident::<InstructionTemplateDiscriminants>(&variant.ident, "Arity")),
CountableInference::NotCounted
(
prop_from_ident::<InstructionTemplateDiscriminants>(&variant.ident, "Name"),
Arity::from(prop_from_ident::<InstructionTemplateDiscriminants>(
&variant.ident,
"Arity",
)),
CountableInference::NotCounted,
)
} else if id == "ClauseType" {
let (name, arity) = add_discriminant_data::<ClauseTypeDiscriminants>(
@@ -3456,19 +3452,16 @@ impl InstructionData {
let v_string = variant.ident.to_string();
let v_ident = if v_string.starts_with("Call") {
format_ident!("{}", v_string["Call".len() ..])
format_ident!("{}", v_string["Call".len()..])
} else {
variant.ident.clone()
};
let generated_variant = create_instr_variant(
format_ident!("{}{}", prefix, v_ident),
variant.clone(),
);
let generated_variant =
create_instr_variant(format_ident!("{}{}", prefix, v_ident), variant.clone());
self.instr_variants.push(
(name, arity, countable_inference, generated_variant)
);
self.instr_variants
.push((name, arity, countable_inference, generated_variant));
}
fn generate_instruction_enum_loop(&mut self, input: syn::DeriveInput) {
@@ -3490,10 +3483,10 @@ impl InstructionData {
self.label_variant(&input.ident, "Call", variant.clone());
self.label_variant(&input.ident, "Execute", variant.clone());
if input.ident == "BuiltInClauseType" ||
input.ident == "CompareNumber" ||
input.ident == "CompareTerm" ||
input.ident == "ClauseType"
if input.ident == "BuiltInClauseType"
|| input.ident == "CompareNumber"
|| input.ident == "CompareTerm"
|| input.ident == "ClauseType"
{
self.label_variant(&input.ident, "DefaultCall", variant.clone());
self.label_variant(&input.ident, "DefaultExecute", variant);

View File

@@ -1,7 +1,7 @@
use proc_macro2::TokenStream;
use syn::*;
use syn::parse::*;
use syn::visit::*;
use syn::*;
use indexmap::IndexSet;
@@ -11,7 +11,9 @@ struct StaticStrVisitor {
impl StaticStrVisitor {
fn new() -> Self {
Self { static_strs: IndexSet::new() }
Self {
static_strs: IndexSet::new(),
}
}
}