neo_solidity/cli/cli_parts/cli_run/
compile.rs1fn compile_input_or_exit(
2 input_content: &str,
3 verbose: bool,
4 options: CompileOptions,
5 json_errors: bool,
6 json_warnings: bool,
7) -> Vec<CompilationArtifacts> {
8 match compile_contracts_with_options(input_content, verbose, options) {
9 Ok(list) => list,
10 Err(CompileError::Diagnostics(diags)) | Err(CompileError::Semantic(diags)) => {
11 for diag in diags {
12 match diag.severity {
13 DiagnosticSeverity::Warning => emit_warning(
14 &diag.message,
15 None,
16 json_warnings,
17 Some(standard_json::infer_validation_code(
18 &diag.message,
19 diag.severity,
20 )),
21 ),
22 DiagnosticSeverity::Error => emit_error(
23 &diag.message,
24 standard_json::infer_validation_code(&diag.message, diag.severity),
25 json_errors,
26 ),
27 }
28 }
29 std::process::exit(1);
30 }
31 Err(CompileError::Ir(errors)) => {
32 for error in errors {
33 emit_error(&error.display(), "IR_GENERATION_ERROR", json_errors);
34 }
35 std::process::exit(1);
36 }
37 Err(CompileError::Manifest(message)) => {
38 emit_error(&message, "MANIFEST_GENERATION_ERROR", json_errors);
39 std::process::exit(1);
40 }
41 Err(CompileError::Message(message)) => {
42 emit_error(&message, "GENERIC_ERROR", json_errors);
43 std::process::exit(1);
44 }
45 }
46}