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
pub fn not_comptime_fn_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 ) -> 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<'a>( input: Input, errno: usize, loc: Location, caused_by: String, pos_args: Vec<ParamTy>, kw_args: Vec<ParamTy>, found: impl Iterator<Item = &'a Type> ) -> Self
pub fn self_type_error( input: Input, errno: usize, loc: Location, caused_by: String ) -> Self
source§impl CompileError
impl CompileError
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, errno: usize, loc: Location, name: &str, caused_by: String ) -> Self
pub fn system_exit() -> Self
source§impl CompileError
impl CompileError
pub fn has_effect( input: Input, errno: usize, expr: &Expr, caused_by: String ) -> Self
pub fn constructor_destructor_error( input: Input, errno: usize, loc: Location, caused_by: String ) -> Self
pub fn proc_assign_error( input: Input, errno: usize, loc: Location, caused_by: String ) -> Self
pub fn touch_mut_error( input: Input, errno: usize, expr: &Expr, caused_by: String ) -> Self
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<CompileError> for ParserRunnerError
impl From<CompileError> for ParserRunnerError
source§fn from(err: CompileError) -> Self
fn from(err: CompileError) -> Self
Converts to this type from the input type.
source§impl From<CompileError> for ParserRunnerErrors
impl From<CompileError> for ParserRunnerErrors
source§fn from(err: CompileError) -> Self
fn from(err: CompileError) -> Self
Converts to this type from the input type.
source§impl From<Error> for CompileError
impl From<Error> for CompileError
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 Hash for CompileError
impl Hash for CompileError
source§impl PartialEq for CompileError
impl PartialEq for CompileError
source§fn eq(&self, other: &CompileError) -> bool
fn eq(&self, other: &CompileError) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.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>
fn extend<I>(&mut self, iter: I)where
I: IntoIterator<Item = T>,
fn split_off(&mut self, at: usize) -> Vec<T>
source§fn retain(&mut self, f: impl FnMut(&T) -> bool)
fn retain(&mut self, f: impl FnMut(&T) -> bool)
Remove all elements that don’t satisfy the predicate.
fn concat(self, other: Self) -> Self
impl Eq for CompileError
impl StructuralPartialEq for CompileError
Auto Trait Implementations§
impl Freeze for CompileError
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