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 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 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 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
) -> 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 match_error(
input: Input,
errno: usize,
loc: Location,
caused_by: String,
expr_t: &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
) -> 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,
lhs: &Predicate,
rhs: &Predicate,
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 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>
) -> 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>
) -> 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
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