leo_errors/errors/ast/ast_errors.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
// Copyright (C) 2019-2025 Provable Inc.
// This file is part of the Leo library.
// The Leo library is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// The Leo library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see <https://www.gnu.org/licenses/>.
use crate::create_messages;
use std::{
error::Error as ErrorArg,
fmt::{Debug, Display},
};
create_messages!(
/// AstError enum that represents all the errors for the `leo-ast` crate.
AstError,
code_mask: 2000i32,
code_prefix: "AST",
/// For when the AST fails to be represented as a JSON string.
@backtraced
failed_to_convert_ast_to_json_string {
args: (error: impl ErrorArg),
msg: format!("failed to convert ast to a json string {error}"),
help: None,
}
/// For when the AST fails to create the AST JSON file.
@backtraced
failed_to_create_ast_json_file {
args: (path: impl Debug, error: impl ErrorArg),
msg: format!("failed to create ast json file `{path:?}` {error}"),
help: None,
}
/// For when the AST fails to write the AST JSON file.
@backtraced
failed_to_write_ast_to_json_file {
args: (path: impl Debug, error: impl ErrorArg),
msg: format!("failed to write ast to a json file `{path:?}` {error}"),
help: None,
}
/// For when the a JSON string fails to be represented as an AST.
@backtraced
failed_to_read_json_string_to_ast {
args: (error: impl ErrorArg),
msg: format!("failed to convert json string to an ast {error}"),
help: None,
}
/// For when the a JSON files fails to be represented as an AST.
@backtraced
failed_to_read_json_file {
args: (path: impl Debug, error: impl ErrorArg),
msg: format!("failed to convert json file `{path:?}` to an ast {error}"),
help: None,
}
/// For when the AST fails to be represented as a JSON value.
@backtraced
failed_to_convert_ast_to_json_value {
args: (error: impl ErrorArg),
msg: format!("failed to convert ast to a json value {error}"),
help: None,
}
/// For when a user shadows a function.
@formatted
shadowed_function {
args: (func: impl Display),
msg: format!("function `{func}` shadowed by"),
help: None,
}
/// For when a user shadows a struct.
@formatted
shadowed_struct {
args: (struct_: impl Display),
msg: format!("struct `{struct_}` shadowed by"),
help: None,
}
/// For when a user shadows a record.
@formatted
shadowed_record {
args: (record: impl Display),
msg: format!("record `{record}` shadowed by"),
help: None,
}
/// For when a user shadows a variable.
@formatted
shadowed_variable {
args: (var: impl Display),
msg: format!("variable `{var}` shadowed by"),
help: None,
}
/// For when the symbol table fails to be represented as a JSON string.
@backtraced
failed_to_convert_symbol_table_to_json_string {
args: (error: impl ErrorArg),
msg: format!("failed to convert symbol_table to a json string {error}"),
help: None,
}
/// For when the symbol table fails to create the symbol table JSON file.
@backtraced
failed_to_create_symbol_table_json_file {
args: (path: impl Debug, error: impl ErrorArg),
msg: format!("failed to create symbol_table json file `{path:?}` {error}"),
help: None,
}
/// For when the symbol table fails to write the symbol table JSON file.
@backtraced
failed_to_write_symbol_table_to_json_file {
args: (path: impl Debug, error: impl ErrorArg),
msg: format!("failed to write symbol_table to a json file `{path:?}` {error}"),
help: None,
}
/// For when the a JSON string fails to be represented as an symbol table.
@backtraced
failed_to_read_json_string_to_symbol_table {
args: (error: impl ErrorArg),
msg: format!("failed to convert json string to an symbol_table {error}"),
help: None,
}
/// For when the symbol table fails to be represented as a JSON value.
@backtraced
failed_to_convert_symbol_table_to_json_value {
args: (error: impl ErrorArg),
msg: format!("failed to convert symbol_table to a json value {error}"),
help: None,
}
@formatted
redefining_external_struct {
args: (struct_: impl Display),
msg: format!("There are two definitions of struct `{struct_}` that do not match."),
help: Some("Check the import files to see if there are any struct definitions of the same name.".to_string()),
}
@backtraced
function_not_found {
args: (func: impl Display),
msg: format!("function `{func}` not found"),
help: None,
}
);