mirror of
https://github.com/mtshiba/pylyzer.git
synced 2025-07-10 02:55:00 +00:00
66 lines
2.6 KiB
Rust
66 lines
2.6 KiB
Rust
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,
|
||
)
|
||
}
|