Struct erg_compiler::error::CompileError
source · pub struct CompileError {
pub core: Box<ErrorCore>,
pub input: Input,
pub caused_by: String,
pub theme: Theme,
}
Fields§
§core: Box<ErrorCore>
§input: Input
§caused_by: String
§theme: Theme
Implementations§
source§impl CompileError
impl CompileError
source§impl CompileError
impl CompileError
pub fn syntax_error( input: Input, errno: usize, loc: Location, caused_by: String, desc: String, hint: Option<String> ) -> Self
pub fn unused_expr_warning( input: Input, errno: usize, expr: &Expr, caused_by: String ) -> Self
pub fn unused_subroutine_warning( input: Input, errno: usize, expr: &Expr, caused_by: String ) -> Self
pub fn duplicate_decl_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn duplicate_definition_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn violate_decl_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, spec_t: &Type, found_t: &Type ) -> Self
pub fn no_var_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, similar_name: Option<&str> ) -> Self
sourcepub fn detailed_no_var_error(
input: Input,
errno: usize,
loc: Location,
caused_by: String,
name: &str,
similar_name: Option<&str>,
similar_info: Option<&VarInfo>
) -> Self
pub fn detailed_no_var_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, similar_name: Option<&str>, similar_info: Option<&VarInfo> ) -> Self
TODO: replace no_var_error
with this function
pub fn access_before_def_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, defined_line: u32, similar_name: Option<&str> ) -> Self
pub fn access_deleted_var_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, del_line: u32, similar_name: Option<&str> ) -> Self
pub fn no_type_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, similar_name: Option<&str> ) -> Self
pub fn not_a_type_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn type_not_found( input: Input, errno: usize, loc: Location, caused_by: String, typ: &Type ) -> Self
pub fn no_attr_error( input: Input, errno: usize, loc: Location, caused_by: String, obj_t: &Type, name: &str, similar_name: Option<&str> ) -> Self
pub fn detailed_no_attr_error( input: Input, errno: usize, loc: Location, caused_by: String, obj_t: &Type, name: &str, similar_name: Option<&str>, similar_info: Option<&VarInfo> ) -> Self
pub fn singular_no_attr_error( input: Input, errno: usize, loc: Location, caused_by: String, obj_name: &str, obj_t: &Type, name: &str, similar_name: Option<&str> ) -> Self
pub fn shadow_special_namespace_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn reassign_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn del_error( input: Input, errno: usize, ident: &Identifier, is_const: bool, caused_by: String ) -> Self
pub fn visibility_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, vis: Visibility ) -> Self
pub fn override_error<S: Into<String>>( input: Input, errno: usize, name: &str, name_loc: Location, superclass: &Type, caused_by: S ) -> Self
pub fn inheritance_error( input: Input, errno: usize, class: String, loc: Location, caused_by: String ) -> Self
pub fn file_error( input: Input, errno: usize, desc: String, loc: Location, caused_by: String, hint: Option<String> ) -> Self
pub fn module_env_error( input: Input, errno: usize, mod_name: &str, loc: Location, caused_by: String ) -> Self
pub fn import_error( input: Input, errno: usize, desc: String, loc: Location, caused_by: String, similar_erg_mod: Option<Str>, similar_py_mod: Option<Str> ) -> Self
pub fn inner_typedef_error( input: Input, errno: usize, loc: Location, caused_by: String ) -> Self
pub fn declare_error( input: Input, errno: usize, loc: Location, caused_by: String ) -> Self
pub fn invalid_type_cast_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, base: &Type, cast_to: &Type, hint: Option<String> ) -> Self
source§impl CompileError
impl CompileError
pub fn unused_warning( input: Input, errno: usize, loc: Location, name: &str, caused_by: String ) -> Self
pub fn union_return_type_warning( input: Input, errno: usize, loc: Location, caused_by: String, fn_name: &str, typ: &Type ) -> Self
pub fn builtin_exists_warning( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn use_cast_warning( input: Input, errno: usize, loc: Location, caused_by: String ) -> Self
pub fn same_name_instance_attr_warning( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
source§impl CompileError
impl CompileError
pub fn dummy(input: Input, errno: usize) -> Self
pub fn unreachable(input: Input, fn_name: &str, line: u32) -> Self
pub fn checker_bug( input: Input, errno: usize, loc: Location, fn_name: &str, line: u32 ) -> Self
pub fn no_type_spec_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn callable_impl_error<'a, C: Locational + Display>( input: Input, errno: usize, callee: &C, param_ts: impl Iterator<Item = &'a Type>, caused_by: String ) -> Self
pub fn type_mismatch_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, nth_param: Option<usize>, expect: &Type, found: &Type, candidates: Option<Set<Type>>, hint: Option<String> ) -> Self
pub fn return_type_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, expect: &Type, found: &Type, hint: Option<String> ) -> Self
pub fn uninitialized_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, t: &Type ) -> Self
pub fn argument_error( input: Input, errno: usize, loc: Location, caused_by: String, expect: usize, found: usize ) -> Self
pub fn param_error( input: Input, errno: usize, loc: Location, caused_by: String, expect: usize, found: usize ) -> Self
pub fn default_param_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str ) -> Self
pub fn default_param_not_found_error( input: Input, errno: usize, loc: Location, caused_by: String, param_name: &str, similar_name: Option<&str> ) -> Self
pub fn match_error( input: Input, errno: usize, loc: Location, caused_by: String, expr_t: &Type, union_pat_t: &Type, arm_ts: Vec<Type> ) -> Self
pub fn infer_error( input: Input, errno: usize, loc: Location, caused_by: String, expr: &str ) -> Self
pub fn dummy_infer_error(input: Input, fn_name: &str, line: u32) -> Self
pub fn not_relation(input: Input, fn_name: &str, line: u32) -> Self
pub fn too_many_args_error( input: Input, errno: usize, loc: Location, callee_name: &str, caused_by: String, params_len: usize, pos_args_len: usize, kw_args_len: usize ) -> Self
pub fn args_missing_error( input: Input, errno: usize, loc: Location, callee_name: &str, caused_by: String, missing_params: Vec<Str> ) -> Self
pub fn multiple_args_error( input: Input, errno: usize, loc: Location, callee_name: &str, caused_by: String, arg_name: &str ) -> Self
pub fn unexpected_kw_arg_error( input: Input, errno: usize, loc: Location, callee_name: &str, caused_by: String, param_name: &str, similar_name: Option<&str> ) -> Self
pub fn unification_error( input: Input, errno: usize, lhs_t: &Type, rhs_t: &Type, loc: Location, caused_by: String ) -> Self
pub fn re_unification_error( input: Input, errno: usize, lhs_t: &Type, rhs_t: &Type, loc: Location, caused_by: String ) -> Self
pub fn subtyping_error( input: Input, errno: usize, sub_t: &Type, sup_t: &Type, loc: Location, caused_by: String ) -> Self
pub fn invariant_error( input: Input, errno: usize, sub_t: &Type, sup_t: &Type, loc: Location, caused_by: String ) -> Self
pub fn pred_unification_error( input: Input, errno: usize, sub_pred: &Predicate, super_pred: &Predicate, loc: Location, caused_by: String ) -> Self
pub fn no_candidate_error( input: Input, errno: usize, proj: &Type, loc: Location, caused_by: String, hint: Option<String> ) -> Self
pub fn no_trait_impl_error( input: Input, errno: usize, class: &Type, trait_: &Type, loc: Location, caused_by: String, hint: Option<String> ) -> Self
pub fn method_definition_error( input: Input, errno: usize, loc: Location, caused_by: String, name: &str, hint: Option<String> ) -> Self
pub fn specialization_error( _input: Input, _errno: usize, _loc: Location, _caused_by: String, _member_name: &str, _base_trait_type: &Type, _expect: &Type, _found: &Type ) -> Self
pub fn trait_member_type_error( input: Input, errno: usize, loc: Location, caused_by: String, member_name: &str, trait_type: &Type, expect: &Type, found: &Type, hint: Option<String> ) -> Self
pub fn trait_member_not_defined_error( input: Input, errno: usize, caused_by: String, member_name: &str, trait_type: &Type, class_type: &Type, hint: Option<String>, loc: Location ) -> Self
pub fn not_in_trait_error( input: Input, errno: usize, caused_by: String, member_name: &str, trait_type: &Type, class_type: &Type, hint: Option<String>, loc: Location ) -> Self
pub fn tyvar_not_defined_error( input: Input, errno: usize, name: &str, loc: Location, caused_by: String ) -> Self
pub fn ambiguous_type_error( input: Input, errno: usize, expr: &impl Locational + Display, candidates: &[Type], caused_by: String ) -> Self
pub fn ambiguous_method_error( input: Input, errno: usize, receiver: &impl Locational + NoTypeDisplay, attr: &impl Locational + Display, candidates: &[Type], caused_by: String ) -> Self
pub fn tp_to_type_error( input: Input, errno: usize, tp: &TyParam, loc: Location, caused_by: String ) -> Self
pub fn implicit_widening_error( input: Input, errno: usize, loc: Location, caused_by: String, before: &Type, after: &Type ) -> Self
pub fn overload_error( input: Input, errno: usize, loc: Location, caused_by: String, pos_args: Vec<ParamTy>, kw_args: Vec<ParamTy>, found: Vec<Type> ) -> Self
pub fn self_type_error( input: Input, errno: usize, loc: Location, caused_by: String ) -> Self
source§impl CompileError
impl CompileError
pub fn new(core: ErrorCore, input: Input, caused_by: String) -> Self
pub fn compiler_bug( errno: usize, input: Input, loc: Location, fn_name: &str, line: u32 ) -> Self
pub fn stack_bug( input: Input, loc: Location, stack_len: u32, block_id: usize, fn_name: &str ) -> Self
pub fn feature_error( input: Input, loc: Location, name: &str, caused_by: String ) -> Self
pub fn system_exit() -> Self
source§impl CompileError
impl CompileError
Trait Implementations§
source§impl Clone for CompileError
impl Clone for CompileError
source§fn clone(&self) -> CompileError
fn clone(&self) -> CompileError
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for CompileError
impl Debug for CompileError
source§impl Display for CompileError
impl Display for CompileError
source§impl Error for CompileError
impl Error for CompileError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
source§impl ErrorDisplay for CompileError
impl ErrorDisplay for CompileError
fn core(&self) -> &ErrorCore
fn input(&self) -> &Input
source§fn caused_by(&self) -> &str
fn caused_by(&self) -> &str
The block name the error caused.
This will be None if the error occurred before semantic analysis.
fn write_to_stderr(&self)
fn write_to<W>(&self, w: &mut W)where W: Write,
fn show(&self) -> String
source§impl From<CompileError> for CompileErrors
impl From<CompileError> for CompileErrors
source§fn from(err: CompileError) -> Self
fn from(err: CompileError) -> Self
Converts to this type from the input type.
source§impl From<CompileError> for ParseError
impl From<CompileError> for ParseError
source§fn from(err: CompileError) -> Self
fn from(err: CompileError) -> Self
Converts to this type from the input type.
source§impl From<ParserRunnerError> for CompileError
impl From<ParserRunnerError> for CompileError
source§fn from(err: ParserRunnerError) -> Self
fn from(err: ParserRunnerError) -> Self
Converts to this type from the input type.
source§impl FromIterator<CompileError> for CompileErrors
impl FromIterator<CompileError> for CompileErrors
source§fn from_iter<I: IntoIterator<Item = CompileError>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = CompileError>>(iter: I) -> Self
Creates a value from an iterator. Read more
source§impl Stream<CompileError> for CompileErrors
impl Stream<CompileError> for CompileErrors
fn payload(self) -> Vec<CompileError>
fn ref_payload(&self) -> &Vec<CompileError>
fn ref_mut_payload(&mut self) -> &mut Vec<CompileError>
fn clear(&mut self)
fn len(&self) -> usize
fn size(&self) -> usize
fn is_empty(&self) -> bool
fn insert(&mut self, idx: usize, elem: T)
fn remove(&mut self, idx: usize) -> T
fn push(&mut self, elem: T)
fn append<S>(&mut self, s: &mut S)where S: Stream<T>,
fn pop(&mut self) -> Option<T>
fn lpop(&mut self) -> Option<T>
fn get(&self, idx: usize) -> Option<&T>
fn get_mut(&mut self, idx: usize) -> Option<&mut T>
fn first(&self) -> Option<&T>
fn first_mut(&mut self) -> Option<&mut T>
fn last(&self) -> Option<&T>
fn last_mut(&mut self) -> Option<&mut T>
fn iter(&self) -> Iter<'_, T>
fn iter_mut(&mut self) -> IterMut<'_, T>
fn take_all(&mut self) -> Vec<T, Global>
fn extend<I>(&mut self, iter: I)where I: IntoIterator<Item = T>,
fn split_off(&mut self, at: usize) -> Vec<T, Global>
Auto Trait Implementations§
impl RefUnwindSafe for CompileError
impl Send for CompileError
impl Sync for CompileError
impl Unpin for CompileError
impl UnwindSafe for CompileError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more