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

source

pub fn not_const_expr(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn invalid_literal(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String
) -> Self

source§

impl CompileError

source

pub fn syntax_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    desc: String,
    hint: Option<String>
) -> Self

source

pub fn unused_expr_warning(
    input: Input,
    errno: usize,
    expr: &Expr,
    caused_by: String
) -> Self

source

pub fn duplicate_decl_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str
) -> Self

source

pub fn duplicate_definition_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str
) -> Self

source

pub fn violate_decl_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str,
    spec_t: &Type,
    found_t: &Type
) -> Self

source

pub fn no_var_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str,
    similar_name: Option<&str>
) -> Self

source

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

source

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

source

pub fn no_type_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str,
    similar_name: Option<&str>
) -> Self

source

pub fn type_not_found(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    typ: &Type
) -> Self

source

pub fn no_attr_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    obj_t: &Type,
    name: &str,
    similar_name: Option<&str>
) -> Self

source

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

source

pub fn reassign_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str
) -> Self

source

pub fn del_error(
    input: Input,
    errno: usize,
    ident: &Identifier,
    is_const: bool,
    caused_by: String
) -> Self

source

pub fn visibility_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str,
    vis: Visibility
) -> Self

source

pub fn override_error<S: Into<String>>(
    input: Input,
    errno: usize,
    name: &str,
    name_loc: Location,
    superclass: &Type,
    caused_by: S
) -> Self

source

pub fn inheritance_error(
    input: Input,
    errno: usize,
    class: String,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn file_error(
    input: Input,
    errno: usize,
    desc: String,
    loc: Location,
    caused_by: String,
    hint: Option<String>
) -> Self

source

pub fn module_env_error(
    input: Input,
    errno: usize,
    mod_name: &str,
    loc: Location,
    caused_by: String
) -> Self

source

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

source

pub fn inner_typedef_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn declare_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String
) -> Self

source

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

source

pub fn unused_warning(
    input: Input,
    errno: usize,
    loc: Location,
    name: &str,
    caused_by: String
) -> Self

source

pub fn union_return_type_warning(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    fn_name: &str,
    typ: &Type
) -> Self

source

pub fn builtin_exists_warning(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str
) -> Self

source§

impl CompileError

source

pub fn dummy(input: Input, errno: usize) -> Self

source

pub fn unreachable(input: Input, fn_name: &str, line: u32) -> Self

source

pub fn checker_bug(
    input: Input,
    errno: usize,
    loc: Location,
    fn_name: &str,
    line: u32
) -> Self

source

pub fn no_type_spec_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str
) -> Self

source

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

source

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

source

pub fn return_type_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str,
    expect: &Type,
    found: &Type
) -> Self

source

pub fn uninitialized_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str,
    t: &Type
) -> Self

source

pub fn argument_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    expect: usize,
    found: usize
) -> Self

source

pub fn param_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    expect: usize,
    found: usize
) -> Self

source

pub fn default_param_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str
) -> Self

source

pub fn match_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    expr_t: &Type
) -> Self

source

pub fn infer_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    expr: &str
) -> Self

source

pub fn dummy_infer_error(input: Input, fn_name: &str, line: u32) -> Self

source

pub fn not_relation(input: Input, fn_name: &str, line: u32) -> Self

source

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

source

pub fn args_missing_error(
    input: Input,
    errno: usize,
    loc: Location,
    callee_name: &str,
    caused_by: String,
    missing_params: Vec<Str>
) -> Self

source

pub fn multiple_args_error(
    input: Input,
    errno: usize,
    loc: Location,
    callee_name: &str,
    caused_by: String,
    arg_name: &str
) -> Self

source

pub fn unexpected_kw_arg_error(
    input: Input,
    errno: usize,
    loc: Location,
    callee_name: &str,
    caused_by: String,
    param_name: &str
) -> Self

source

pub fn unification_error(
    input: Input,
    errno: usize,
    lhs_t: &Type,
    rhs_t: &Type,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn re_unification_error(
    input: Input,
    errno: usize,
    lhs_t: &Type,
    rhs_t: &Type,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn subtyping_error(
    input: Input,
    errno: usize,
    sub_t: &Type,
    sup_t: &Type,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn pred_unification_error(
    input: Input,
    errno: usize,
    lhs: &Predicate,
    rhs: &Predicate,
    caused_by: String
) -> Self

source

pub fn no_candidate_error(
    input: Input,
    errno: usize,
    proj: &Type,
    loc: Location,
    caused_by: String,
    hint: Option<String>
) -> Self

source

pub fn no_trait_impl_error(
    input: Input,
    errno: usize,
    class: &Type,
    trait_: &Type,
    loc: Location,
    caused_by: String,
    hint: Option<String>
) -> Self

source

pub fn method_definition_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String,
    name: &str,
    hint: Option<String>
) -> Self

source

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

source

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

source

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

source

pub fn tyvar_not_defined_error(
    input: Input,
    errno: usize,
    name: &str,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn ambiguous_type_error(
    input: Input,
    errno: usize,
    expr: &impl Locational + Display,
    candidates: &[Type],
    caused_by: String
) -> Self

source§

impl CompileError

source

pub fn new(core: ErrorCore, input: Input, caused_by: String) -> Self

source

pub fn compiler_bug(
    errno: usize,
    input: Input,
    loc: Location,
    fn_name: &str,
    line: u32
) -> Self

source

pub fn stack_bug(
    input: Input,
    loc: Location,
    stack_len: u32,
    block_id: usize,
    fn_name: &str
) -> Self

source

pub fn feature_error(
    input: Input,
    loc: Location,
    name: &str,
    caused_by: String
) -> Self

source

pub fn system_exit() -> Self

source§

impl CompileError

source

pub fn has_effect(
    input: Input,
    errno: usize,
    expr: &Expr,
    caused_by: String
) -> Self

source

pub fn proc_assign_error(
    input: Input,
    errno: usize,
    loc: Location,
    caused_by: String
) -> Self

source

pub fn touch_mut_error(
    input: Input,
    errno: usize,
    expr: &Expr,
    caused_by: String
) -> Self

source§

impl CompileError

source

pub fn move_error(
    input: Input,
    errno: usize,
    name: &str,
    name_loc: Location,
    moved_loc: Location,
    caused_by: String
) -> Self

Trait Implementations§

source§

impl Clone for CompileError

source§

fn clone(&self) -> CompileError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CompileError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for CompileError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for CompileError

1.30.0 · source§

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

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl ErrorDisplay for CompileError

source§

fn core(&self) -> &ErrorCore

source§

fn input(&self) -> &Input

source§

fn caused_by(&self) -> &str

The block name the error caused. This will be None if the error occurred before semantic analysis.
source§

fn ref_inner(&self) -> Option<&Self>

the previous error that caused this error.
source§

fn write_to_stderr(&self)

source§

fn write_to<W>(&self, w: &mut W)where
    W: Write,

source§

fn show(&self) -> String

source§

fn format(&self, f: &mut Formatter<'_>) -> Result<(), Error>

for fmt::Display
source§

impl From<CompileError> for CompileErrors

source§

fn from(err: CompileError) -> Self

Converts to this type from the input type.
source§

impl From<ParserRunnerError> for CompileError

source§

fn from(err: ParserRunnerError) -> Self

Converts to this type from the input type.
source§

impl FromIterator<CompileError> for CompileErrors

source§

fn from_iter<I: IntoIterator<Item = CompileError>>(iter: I) -> Self

Creates a value from an iterator. Read more
source§

impl MultiErrorDisplay<CompileError> for CompileErrors

source§

fn fmt_all_stderr(&self)

source§

fn fmt_all(&self, f: &mut Formatter<'_>) -> Result<(), Error>

source§

impl Stream<CompileError> for CompileErrors

source§

fn payload(self) -> Vec<CompileError>

source§

fn ref_payload(&self) -> &Vec<CompileError>

source§

fn ref_mut_payload(&mut self) -> &mut Vec<CompileError>

source§

fn clear(&mut self)

source§

fn len(&self) -> usize

source§

fn size(&self) -> usize

source§

fn is_empty(&self) -> bool

source§

fn insert(&mut self, idx: usize, elem: T)

source§

fn remove(&mut self, idx: usize) -> T

source§

fn push(&mut self, elem: T)

source§

fn append<S>(&mut self, s: &mut S)where
    S: Stream<T>,

source§

fn pop(&mut self) -> Option<T>

source§

fn lpop(&mut self) -> Option<T>

source§

fn get(&self, idx: usize) -> Option<&T>

source§

fn get_mut(&mut self, idx: usize) -> Option<&mut T>

source§

fn first(&self) -> Option<&T>

source§

fn first_mut(&mut self) -> Option<&mut T>

source§

fn last(&self) -> Option<&T>

source§

fn last_mut(&mut self) -> Option<&mut T>

source§

fn iter(&self) -> Iter<'_, T>

source§

fn iter_mut(&mut self) -> IterMut<'_, T>

source§

fn take_all(&mut self) -> Vec<T, Global>

source§

fn extend<I>(&mut self, iter: I)where
    I: IntoIterator<Item = T>,

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere
    U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<E> Provider for Ewhere
    E: Error + ?Sized,

source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
source§

impl<T> ToOwned for Twhere
    T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for Twhere
    T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.