mirror of
https://github.com/ProvableHQ/leo.git
synced 2024-09-19 01:37:34 +03:00
reorganization of errors
This commit is contained in:
parent
51dd61701a
commit
4b3b198850
@ -178,40 +178,4 @@ create_messages!(
|
||||
msg: format!("Failed to write file.\nIO Error: {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
reqwest_error {
|
||||
args: (error: impl Display),
|
||||
msg: format!("{}", error),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
failed_to_open_file {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to open file {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
failed_to_read_file {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to read file {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
failed_to_deserialize_file {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to deserialize file {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@formatted
|
||||
failed_to_retrieve_dependencies {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to retrieve dependencies. {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
);
|
||||
|
@ -70,4 +70,11 @@ create_messages!(
|
||||
msg: format!("The program scope name `{program_scope_name}` must match `{file_name}`."),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@formatted
|
||||
imported_program_not_found {
|
||||
args: (main_program_name: impl Display, dependency_name: impl Display),
|
||||
msg: format!("`{main_program_name}` imports `{dependency_name}.aleo`, but `{dependency_name}.aleo` is not found in `program.json`."),
|
||||
help: Some(format!("Run `leo add {dependency_name}.aleo` to add `{dependency_name}.aleo` to `program.json`. Consult `leo add --help` for more information.")),
|
||||
}
|
||||
);
|
||||
|
@ -292,14 +292,6 @@ create_messages!(
|
||||
help: None,
|
||||
}
|
||||
|
||||
/// Enforce that empty functions cannot have finalize functions attached to them
|
||||
@formatted
|
||||
empty_function_cannot_have_finalize {
|
||||
args: (),
|
||||
msg: format!("Empty functions cannot have finalize functions attached to them."),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@formatted
|
||||
array_must_have_at_least_one_element {
|
||||
args: (kind: impl Display),
|
||||
|
@ -74,4 +74,39 @@ create_messages!(
|
||||
msg: format!("Duplicate dependency found: {dependency}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
reqwest_error {
|
||||
args: (error: impl Display),
|
||||
msg: format!("{}", error),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
failed_to_open_file {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to open file {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
failed_to_read_file {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to read file {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@backtraced
|
||||
failed_to_deserialize_file {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to deserialize file {error}"),
|
||||
help: None,
|
||||
}
|
||||
|
||||
@formatted
|
||||
failed_to_retrieve_dependencies {
|
||||
args: (error: impl Display),
|
||||
msg: format!("Failed to retrieve dependencies. {error}"),
|
||||
help: None,
|
||||
}
|
||||
);
|
||||
|
@ -27,6 +27,7 @@ use snarkvm::{
|
||||
};
|
||||
|
||||
use indexmap::IndexMap;
|
||||
use leo_errors::UtilError;
|
||||
use std::{
|
||||
io::Write,
|
||||
path::{Path, PathBuf},
|
||||
@ -127,7 +128,6 @@ impl Command for Build {
|
||||
&build_directory,
|
||||
&handler,
|
||||
self.options.clone(),
|
||||
false,
|
||||
)?);
|
||||
}
|
||||
|
||||
@ -183,7 +183,6 @@ fn compile_leo_file(
|
||||
build: &Path,
|
||||
handler: &Handler,
|
||||
options: BuildOptions,
|
||||
is_import: bool,
|
||||
) -> Result<IndexMap<Symbol, Struct>> {
|
||||
// Construct the Leo file name with extension `foo.leo`.
|
||||
let file_name =
|
||||
@ -191,28 +190,19 @@ fn compile_leo_file(
|
||||
|
||||
// If the program is an import, construct program name from file_path
|
||||
// Otherwise, use the program_id found in `package.json`.
|
||||
let program_name = match is_import {
|
||||
false => program_id.name().to_string(),
|
||||
true => file_name.strip_suffix(".leo").ok_or_else(PackageError::failed_to_get_file_name)?.to_string(),
|
||||
};
|
||||
let program_name = program_id.name().to_string();
|
||||
|
||||
// Create the path to the Aleo file.
|
||||
let mut aleo_file_path = build.to_path_buf();
|
||||
aleo_file_path.push(match is_import {
|
||||
true => format!("{program_name}.{}", program_id.network()),
|
||||
false => format!("main.{}", program_id.network()),
|
||||
});
|
||||
aleo_file_path.push(format!("main.{}", program_id.network()));
|
||||
|
||||
// Retrieve dependencies from `program.json`
|
||||
let mut retriever = Retriever::new(package_path)
|
||||
.map_err(|err| CliError::failed_to_retrieve_dependencies(err, Default::default()))?;
|
||||
.map_err(|err| UtilError::failed_to_retrieve_dependencies(err, Default::default()))?;
|
||||
|
||||
// Only retrieve dependencies for main leo program
|
||||
let stubs: IndexMap<Symbol, Stub> = if is_import {
|
||||
IndexMap::new()
|
||||
} else {
|
||||
retriever.retrieve().map_err(|err| CliError::failed_to_retrieve_dependencies(err, Default::default()))?
|
||||
};
|
||||
let stubs: IndexMap<Symbol, Stub> =
|
||||
retriever.retrieve().map_err(|err| UtilError::failed_to_retrieve_dependencies(err, Default::default()))?;
|
||||
|
||||
// Create a new instance of the Leo compiler.
|
||||
let mut compiler = Compiler::new(
|
||||
|
@ -44,7 +44,7 @@ version = "0.1"
|
||||
|
||||
[dependencies.retriever]
|
||||
path = "../../utils/retriever"
|
||||
version = "0.1"
|
||||
version = "1.10.0"
|
||||
|
||||
[dev-dependencies.lazy_static]
|
||||
version = "1.3.0"
|
||||
|
Loading…
Reference in New Issue
Block a user