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 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 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, 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
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 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
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<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