pylyzer/crates/py2erg/error.rs
Shunsuke Shibayama df54032e54 build: update deps
2023-06-09 21:06:13 +09:00

66 lines
2.6 KiB
Rust
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

use erg_common::error::{ErrorCore, ErrorKind, Location, SubMessage};
use erg_common::io::Input;
use erg_common::switch_lang;
use erg_compiler::error::CompileError;
pub(crate) fn reassign_func_error(
input: Input,
loc: Location,
caused_by: String,
name: &str,
) -> CompileError {
CompileError::new(
ErrorCore::new(
vec![SubMessage::only_loc(loc)],
switch_lang!(
"japanese" => format!("{name}は既に宣言され、参照されています。このような関数に再代入するのは望ましくありません"),
"simplified_chinese" => format!("{name}已声明,已被引用。不建议再次赋值"),
"traditional_chinese" => format!("{name}已宣告,已被引用。不建議再次賦值"),
"english" => format!("{name} has already been declared and referenced. It is not recommended to reassign such a function"),
),
1,
ErrorKind::AssignError,
loc,
),
input,
caused_by,
)
}
pub(crate) fn self_not_found_error(input: Input, loc: Location, caused_by: String) -> CompileError {
CompileError::new(
ErrorCore::new(
vec![SubMessage::only_loc(loc)],
switch_lang!(
"japanese" => format!("このメソッドは第一引数にselfを取るべきですが、見つかりませんでした"),
"simplified_chinese" => format!("该方法应该有第一个参数self但是没有找到"),
"traditional_chinese" => format!("該方法應該有第一個參數self但是沒有找到"),
"english" => format!("This method should have the first parameter `self`, but it was not found"),
),
2,
ErrorKind::NameError,
loc,
),
input,
caused_by,
)
}
pub(crate) fn init_var_error(input: Input, loc: Location, caused_by: String) -> CompileError {
CompileError::new(
ErrorCore::new(
vec![SubMessage::only_loc(loc)],
switch_lang!(
"japanese" => format!("`__init__`はメソッドです。メンバ変数として宣言するべきではありません"),
"simplified_chinese" => format!("__init__是方法。不能宣告为变量"),
"traditional_chinese" => format!("__init__是方法。不能宣告為變量"),
"english" => format!("`__init__` should be a method. It should not be defined as a member variable"),
),
3,
ErrorKind::NameError,
loc,
),
input,
caused_by,
)
}