pub mod generic_type_arguments;
pub mod generic_type_parameters;
pub mod specialized_generic_structure;
use std::collections::HashMap;
pub(crate) use generic_type_arguments::TypeArguments;
pub use generic_type_parameters::*;
pub use specialized_generic_structure::*;
use crate::{context::FunctionId, structures::functions::FunctionType, CheckingData};
pub(crate) struct UnmatchedGenericsError;
pub(crate) struct SeedingContext {
pub type_arguments: TypeArguments,
pub locally_held_functions: HashMap<FunctionId, FunctionType>,
}
pub(crate) trait ResolveGenerics<TResult = Self>: Sized {
fn resolve_generics<T: crate::FSResolver>(
self,
type_arguments: &TypeArguments,
checking_data: &mut CheckingData<T>,
) -> TResult;
}