mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 12:18:19 +00:00
clippy on everything
This commit is contained in:
parent
7eb81fbcf3
commit
a7308130cf
14 changed files with 97 additions and 97 deletions
|
@ -17,13 +17,14 @@ fn roc_repl_session() -> Result<PtyReplSession, Error> {
|
||||||
|
|
||||||
fn main() -> Result<(), Error> {
|
fn main() -> Result<(), Error> {
|
||||||
let mut repl = roc_repl_session()?;
|
let mut repl = roc_repl_session()?;
|
||||||
|
|
||||||
repl.exp_regex(".*roc repl.*")?;
|
repl.exp_regex(".*roc repl.*")?;
|
||||||
repl.send_line("1+1")?;
|
repl.send_line("1+1")?;
|
||||||
|
|
||||||
thread::sleep(Duration::from_secs(1));
|
thread::sleep(Duration::from_secs(1));
|
||||||
|
|
||||||
match repl.exp_regex(r".*2\u{1b}\[1;32m : \u{1b}\[0mNum *.*") { // 2 : Num
|
match repl.exp_regex(r".*2\u{1b}\[1;32m : \u{1b}\[0mNum *.*") {
|
||||||
|
// 2 : Num
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
println!("Expected output received.");
|
println!("Expected output received.");
|
||||||
return Ok(());
|
return Ok(());
|
||||||
|
@ -33,4 +34,4 @@ fn main() -> Result<(), Error> {
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -702,7 +702,7 @@ pub fn handle_error_module(
|
||||||
|
|
||||||
pub fn handle_loading_problem(problem: LoadingProblem) -> std::io::Result<i32> {
|
pub fn handle_loading_problem(problem: LoadingProblem) -> std::io::Result<i32> {
|
||||||
match problem {
|
match problem {
|
||||||
LoadingProblem::FormattedReport(report,_) => {
|
LoadingProblem::FormattedReport(report, _) => {
|
||||||
print!("{report}");
|
print!("{report}");
|
||||||
Ok(1)
|
Ok(1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ fn write_types_for_module_real(module_id: ModuleId, filename: &str, output_path:
|
||||||
|
|
||||||
let mut module = match res_module {
|
let mut module = match res_module {
|
||||||
Ok(v) => v,
|
Ok(v) => v,
|
||||||
Err(LoadingProblem::FormattedReport(report,None)) => {
|
Err(LoadingProblem::FormattedReport(report, None)) => {
|
||||||
internal_error!("{}", report);
|
internal_error!("{}", report);
|
||||||
}
|
}
|
||||||
Err(other) => {
|
Err(other) => {
|
||||||
|
|
|
@ -187,7 +187,7 @@ mod test_reporting {
|
||||||
let mut buf = String::new();
|
let mut buf = String::new();
|
||||||
|
|
||||||
match infer_expr_help_new(subdir, arena, src) {
|
match infer_expr_help_new(subdir, arena, src) {
|
||||||
Err(LoadingProblem::FormattedReport(fail,_)) => fail,
|
Err(LoadingProblem::FormattedReport(fail, _)) => fail,
|
||||||
Ok((module_src, type_problems, can_problems, home, interns)) => {
|
Ok((module_src, type_problems, can_problems, home, interns)) => {
|
||||||
let lines = LineInfo::new(&module_src);
|
let lines = LineInfo::new(&module_src);
|
||||||
let src_lines: Vec<&str> = module_src.split('\n').collect();
|
let src_lines: Vec<&str> = module_src.split('\n').collect();
|
||||||
|
|
|
@ -1010,26 +1010,29 @@ impl<'a> LoadingProblem<'a> {
|
||||||
match self {
|
match self {
|
||||||
LoadingProblem::ParsingFailed(err) => err.problem.problem.get_region(),
|
LoadingProblem::ParsingFailed(err) => err.problem.problem.get_region(),
|
||||||
LoadingProblem::MultiplePlatformPackages {
|
LoadingProblem::MultiplePlatformPackages {
|
||||||
filename,
|
filename: _,
|
||||||
module_id,
|
module_id: _,
|
||||||
source,
|
source: _,
|
||||||
region,
|
region,
|
||||||
} => Some(*region),
|
} => Some(*region),
|
||||||
LoadingProblem::NoPlatformPackage {
|
LoadingProblem::NoPlatformPackage {
|
||||||
filename,
|
filename: _,
|
||||||
module_id,
|
module_id: _,
|
||||||
source,
|
source: _,
|
||||||
region,
|
region,
|
||||||
} => Some(*region),
|
} => Some(*region),
|
||||||
LoadingProblem::UnrecognizedPackageShorthand {
|
LoadingProblem::UnrecognizedPackageShorthand {
|
||||||
filename,
|
filename: _,
|
||||||
module_id,
|
module_id: _,
|
||||||
source,
|
source: _,
|
||||||
region,
|
region,
|
||||||
shorthand,
|
shorthand: _,
|
||||||
available,
|
available: _,
|
||||||
} => Some(*region),
|
} => Some(*region),
|
||||||
LoadingProblem::FileProblem { filename, error } => None,
|
LoadingProblem::FileProblem {
|
||||||
|
filename: _,
|
||||||
|
error: _,
|
||||||
|
} => None,
|
||||||
LoadingProblem::UnexpectedHeader(_) => None,
|
LoadingProblem::UnexpectedHeader(_) => None,
|
||||||
LoadingProblem::ErrJoiningWorkerThreads => None,
|
LoadingProblem::ErrJoiningWorkerThreads => None,
|
||||||
LoadingProblem::TriedToImportAppModule => None,
|
LoadingProblem::TriedToImportAppModule => None,
|
||||||
|
@ -1215,7 +1218,7 @@ impl<'a> LoadStart<'a> {
|
||||||
})
|
})
|
||||||
.into_inner()
|
.into_inner()
|
||||||
.into_module_ids();
|
.into_module_ids();
|
||||||
let region=problem.get_region();
|
let region = problem.get_region();
|
||||||
let report = report_loading_problem(problem, module_ids, render, palette);
|
let report = report_loading_problem(problem, module_ids, render, palette);
|
||||||
|
|
||||||
// TODO try to gracefully recover and continue
|
// TODO try to gracefully recover and continue
|
||||||
|
@ -1645,7 +1648,6 @@ fn state_thread_step<'a>(
|
||||||
msg_tx: &crossbeam::channel::Sender<Msg<'a>>,
|
msg_tx: &crossbeam::channel::Sender<Msg<'a>>,
|
||||||
msg_rx: &crossbeam::channel::Receiver<Msg<'a>>,
|
msg_rx: &crossbeam::channel::Receiver<Msg<'a>>,
|
||||||
) -> Result<ControlFlow<LoadResult<'a>, State<'a>>, LoadingProblem<'a>> {
|
) -> Result<ControlFlow<LoadResult<'a>, State<'a>>, LoadingProblem<'a>> {
|
||||||
|
|
||||||
match msg_rx.try_recv() {
|
match msg_rx.try_recv() {
|
||||||
Ok(msg) => {
|
Ok(msg) => {
|
||||||
match msg {
|
match msg {
|
||||||
|
@ -1709,11 +1711,11 @@ fn state_thread_step<'a>(
|
||||||
}
|
}
|
||||||
Msg::FailedToReadFile { filename, error } => {
|
Msg::FailedToReadFile { filename, error } => {
|
||||||
let buf = to_file_problem_report_string(filename, error, true);
|
let buf = to_file_problem_report_string(filename, error, true);
|
||||||
Err(LoadingProblem::FormattedReport(buf,None))
|
Err(LoadingProblem::FormattedReport(buf, None))
|
||||||
}
|
}
|
||||||
|
|
||||||
Msg::FailedToParse(problem) => {
|
Msg::FailedToParse(problem) => {
|
||||||
let region=problem.problem.problem.get_region();
|
let region = problem.problem.problem.get_region();
|
||||||
let module_ids = (*state.arc_modules).lock().clone().into_module_ids();
|
let module_ids = (*state.arc_modules).lock().clone().into_module_ids();
|
||||||
let buf = to_parse_problem_report(
|
let buf = to_parse_problem_report(
|
||||||
problem,
|
problem,
|
||||||
|
@ -1722,7 +1724,7 @@ fn state_thread_step<'a>(
|
||||||
state.render,
|
state.render,
|
||||||
state.palette,
|
state.palette,
|
||||||
);
|
);
|
||||||
Err(LoadingProblem::FormattedReport(buf,region))
|
Err(LoadingProblem::FormattedReport(buf, region))
|
||||||
}
|
}
|
||||||
Msg::IncorrectModuleName(FileError {
|
Msg::IncorrectModuleName(FileError {
|
||||||
problem: SourceError { problem, bytes },
|
problem: SourceError { problem, bytes },
|
||||||
|
@ -1737,7 +1739,7 @@ fn state_thread_step<'a>(
|
||||||
bytes,
|
bytes,
|
||||||
state.render,
|
state.render,
|
||||||
);
|
);
|
||||||
Err(LoadingProblem::FormattedReport(buf,Some(region)))
|
Err(LoadingProblem::FormattedReport(buf, Some(region)))
|
||||||
}
|
}
|
||||||
msg => {
|
msg => {
|
||||||
// This is where most of the main thread's work gets done.
|
// This is where most of the main thread's work gets done.
|
||||||
|
@ -1754,7 +1756,7 @@ fn state_thread_step<'a>(
|
||||||
match res_state {
|
match res_state {
|
||||||
Ok(new_state) => Ok(ControlFlow::Continue(new_state)),
|
Ok(new_state) => Ok(ControlFlow::Continue(new_state)),
|
||||||
Err(LoadingProblem::ParsingFailed(problem)) => {
|
Err(LoadingProblem::ParsingFailed(problem)) => {
|
||||||
let region=problem.problem.problem.get_region();
|
let region = problem.problem.problem.get_region();
|
||||||
let module_ids = Arc::try_unwrap(arc_modules)
|
let module_ids = Arc::try_unwrap(arc_modules)
|
||||||
.unwrap_or_else(|_| {
|
.unwrap_or_else(|_| {
|
||||||
panic!(
|
panic!(
|
||||||
|
@ -1786,7 +1788,7 @@ fn state_thread_step<'a>(
|
||||||
filename,
|
filename,
|
||||||
render,
|
render,
|
||||||
);
|
);
|
||||||
return Err(LoadingProblem::FormattedReport(buf,None));
|
return Err(LoadingProblem::FormattedReport(buf, None));
|
||||||
}
|
}
|
||||||
Err(LoadingProblem::IncorrectModuleName(FileError {
|
Err(LoadingProblem::IncorrectModuleName(FileError {
|
||||||
problem: SourceError { problem, bytes },
|
problem: SourceError { problem, bytes },
|
||||||
|
@ -1803,7 +1805,7 @@ fn state_thread_step<'a>(
|
||||||
bytes,
|
bytes,
|
||||||
render,
|
render,
|
||||||
);
|
);
|
||||||
return Err(LoadingProblem::FormattedReport(buf,Some(region)));
|
return Err(LoadingProblem::FormattedReport(buf, Some(region)));
|
||||||
}
|
}
|
||||||
Err(LoadingProblem::UnrecognizedPackageShorthand {
|
Err(LoadingProblem::UnrecognizedPackageShorthand {
|
||||||
filename,
|
filename,
|
||||||
|
@ -1827,7 +1829,7 @@ fn state_thread_step<'a>(
|
||||||
available,
|
available,
|
||||||
render,
|
render,
|
||||||
);
|
);
|
||||||
return Err(LoadingProblem::FormattedReport(buf,Some(region)));
|
return Err(LoadingProblem::FormattedReport(buf, Some(region)));
|
||||||
}
|
}
|
||||||
Err(e) => Err(e),
|
Err(e) => Err(e),
|
||||||
}
|
}
|
||||||
|
@ -1874,9 +1876,10 @@ pub fn report_loading_problem(
|
||||||
filename,
|
filename,
|
||||||
bytes,
|
bytes,
|
||||||
render,
|
render,
|
||||||
).0
|
)
|
||||||
|
.0
|
||||||
}
|
}
|
||||||
LoadingProblem::FormattedReport(report,region) => report,
|
LoadingProblem::FormattedReport(report, _region) => report,
|
||||||
LoadingProblem::FileProblem { filename, error } => {
|
LoadingProblem::FileProblem { filename, error } => {
|
||||||
to_file_problem_report_string(filename, error, true)
|
to_file_problem_report_string(filename, error, true)
|
||||||
}
|
}
|
||||||
|
@ -3085,7 +3088,7 @@ fn register_package_shorthands<'a>(
|
||||||
Problem::InvalidUrl(url_err),
|
Problem::InvalidUrl(url_err),
|
||||||
module_path.to_path_buf(),
|
module_path.to_path_buf(),
|
||||||
);
|
);
|
||||||
return Err(LoadingProblem::FormattedReport(buf,None));
|
return Err(LoadingProblem::FormattedReport(buf, None));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3203,7 +3206,7 @@ fn finish_specialization<'a>(
|
||||||
Valid(To::NewPackage(p_or_p)) => PathBuf::from(p_or_p.as_str()),
|
Valid(To::NewPackage(p_or_p)) => PathBuf::from(p_or_p.as_str()),
|
||||||
other => {
|
other => {
|
||||||
let buf = report_cannot_run(state.root_id, state.root_path, other);
|
let buf = report_cannot_run(state.root_id, state.root_path, other);
|
||||||
return Err(LoadingProblem::FormattedReport(buf,None));
|
return Err(LoadingProblem::FormattedReport(buf, None));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4168,7 +4171,9 @@ fn load_packages<'a>(
|
||||||
Err(problem) => {
|
Err(problem) => {
|
||||||
let buf = to_https_problem_report_string(src, problem, filename);
|
let buf = to_https_problem_report_string(src, problem, filename);
|
||||||
|
|
||||||
load_messages.push(Msg::FailedToLoad(LoadingProblem::FormattedReport(buf,None)));
|
load_messages.push(Msg::FailedToLoad(LoadingProblem::FormattedReport(
|
||||||
|
buf, None,
|
||||||
|
)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6486,7 +6491,7 @@ fn to_incorrect_module_name_report<'a>(
|
||||||
filename: PathBuf,
|
filename: PathBuf,
|
||||||
src: &'a [u8],
|
src: &'a [u8],
|
||||||
render: RenderTarget,
|
render: RenderTarget,
|
||||||
) -> (String,Region) {
|
) -> (String, Region) {
|
||||||
use roc_reporting::report::{Report, RocDocAllocator, DEFAULT_PALETTE};
|
use roc_reporting::report::{Report, RocDocAllocator, DEFAULT_PALETTE};
|
||||||
use ven_pretty::DocAllocator;
|
use ven_pretty::DocAllocator;
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@ fn multiple_modules(subdir: &str, files: Vec<(&str, &str)>) -> Result<LoadedModu
|
||||||
|
|
||||||
match multiple_modules_help(subdir, arena, files) {
|
match multiple_modules_help(subdir, arena, files) {
|
||||||
Err(io_error) => panic!("IO trouble: {io_error:?}"),
|
Err(io_error) => panic!("IO trouble: {io_error:?}"),
|
||||||
Ok(Err(LoadingProblem::FormattedReport(buf, None))) => Err(buf),
|
Ok(Err(LoadingProblem::FormattedReport(buf, _))) => Err(buf),
|
||||||
Ok(Err(loading_problem)) => Err(format!("{loading_problem:?}")),
|
Ok(Err(loading_problem)) => Err(format!("{loading_problem:?}")),
|
||||||
Ok(Ok(mut loaded_module)) => {
|
Ok(Ok(mut loaded_module)) => {
|
||||||
let home = loaded_module.module_id;
|
let home = loaded_module.module_id;
|
||||||
|
@ -247,7 +247,7 @@ fn load_fixture(
|
||||||
);
|
);
|
||||||
let mut loaded_module = match loaded {
|
let mut loaded_module = match loaded {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(roc_load_internal::file::LoadingProblem::FormattedReport(report,None)) => {
|
Err(roc_load_internal::file::LoadingProblem::FormattedReport(report, _)) => {
|
||||||
println!("{report}");
|
println!("{report}");
|
||||||
panic!("{}", report);
|
panic!("{}", report);
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ pub enum SyntaxError<'a> {
|
||||||
}
|
}
|
||||||
impl<'a> SyntaxError<'a> {
|
impl<'a> SyntaxError<'a> {
|
||||||
pub fn get_region(&self) -> Option<Region> {
|
pub fn get_region(&self) -> Option<Region> {
|
||||||
let region = match self {
|
match self {
|
||||||
SyntaxError::Unexpected(r) => Some(*r),
|
SyntaxError::Unexpected(r) => Some(*r),
|
||||||
SyntaxError::Eof(r) => Some(*r),
|
SyntaxError::Eof(r) => Some(*r),
|
||||||
SyntaxError::ReservedKeyword(r) => Some(*r),
|
SyntaxError::ReservedKeyword(r) => Some(*r),
|
||||||
|
@ -80,9 +80,8 @@ impl<'a> SyntaxError<'a> {
|
||||||
SyntaxError::Todo => None,
|
SyntaxError::Todo => None,
|
||||||
SyntaxError::InvalidPattern => None,
|
SyntaxError::InvalidPattern => None,
|
||||||
SyntaxError::BadUtf8 => None,
|
SyntaxError::BadUtf8 => None,
|
||||||
SyntaxError::Space(bad_input) => None,
|
SyntaxError::Space(_bad_input) => None,
|
||||||
};
|
}
|
||||||
region
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub trait SpaceProblem: std::fmt::Debug {
|
pub trait SpaceProblem: std::fmt::Debug {
|
||||||
|
@ -158,18 +157,18 @@ pub enum EHeader<'a> {
|
||||||
impl<'a> EHeader<'a> {
|
impl<'a> EHeader<'a> {
|
||||||
pub fn get_region(&self) -> Region {
|
pub fn get_region(&self) -> Region {
|
||||||
match self {
|
match self {
|
||||||
EHeader::Provides(provides, pos) => provides.get_region(),
|
EHeader::Provides(provides, _pos) => provides.get_region(),
|
||||||
EHeader::Params(params, pos) => params.get_region(),
|
EHeader::Params(params, _pos) => params.get_region(),
|
||||||
EHeader::Exposes(_, pos) => Region::from_pos(*pos),
|
EHeader::Exposes(_, pos) => Region::from_pos(*pos),
|
||||||
EHeader::Imports(_, pos) => Region::from_pos(*pos),
|
EHeader::Imports(_, pos) => Region::from_pos(*pos),
|
||||||
EHeader::Requires(requires, pos) => requires.get_region(),
|
EHeader::Requires(requires, _pos) => requires.get_region(),
|
||||||
EHeader::Packages(packages, pos) => packages.get_region(),
|
EHeader::Packages(packages, _pos) => packages.get_region(),
|
||||||
EHeader::Space(_, pos) => Region::from_pos(*pos),
|
EHeader::Space(_, pos) => Region::from_pos(*pos),
|
||||||
EHeader::Start(pos) => Region::from_pos(*pos),
|
EHeader::Start(pos) => Region::from_pos(*pos),
|
||||||
EHeader::ModuleName(pos) => Region::from_pos(*pos),
|
EHeader::ModuleName(pos) => Region::from_pos(*pos),
|
||||||
EHeader::AppName(app_name, pos) => app_name.get_region(),
|
EHeader::AppName(app_name, _pos) => app_name.get_region(),
|
||||||
EHeader::PackageName(package_name, pos) => package_name.get_region(),
|
EHeader::PackageName(package_name, _pos) => package_name.get_region(),
|
||||||
EHeader::PlatformName(platform_name, pos) => platform_name.get_region(),
|
EHeader::PlatformName(platform_name, _pos) => platform_name.get_region(),
|
||||||
EHeader::IndentStart(pos) => Region::from_pos(*pos),
|
EHeader::IndentStart(pos) => Region::from_pos(*pos),
|
||||||
EHeader::InconsistentModuleName(region) => *region,
|
EHeader::InconsistentModuleName(region) => *region,
|
||||||
}
|
}
|
||||||
|
@ -566,7 +565,7 @@ impl<'a> EExpr<'a> {
|
||||||
EExpr::Ability(e_ability, _) => e_ability.get_region(),
|
EExpr::Ability(e_ability, _) => e_ability.get_region(),
|
||||||
EExpr::When(e_when, _) => e_when.get_region(),
|
EExpr::When(e_when, _) => e_when.get_region(),
|
||||||
EExpr::If(e_if, _) => e_if.get_region(),
|
EExpr::If(e_if, _) => e_if.get_region(),
|
||||||
EExpr::Expect(e_expect, _) => e_expect.get_region(),
|
EExpr::Expect(e_expect, _) => e_expect.get_region(),
|
||||||
EExpr::Dbg(e_expect, _) => e_expect.get_region(),
|
EExpr::Dbg(e_expect, _) => e_expect.get_region(),
|
||||||
EExpr::Import(e_import, _) => e_import.get_region(),
|
EExpr::Import(e_import, _) => e_import.get_region(),
|
||||||
EExpr::Return(e_return, _) => e_return.get_region(),
|
EExpr::Return(e_return, _) => e_return.get_region(),
|
||||||
|
@ -650,7 +649,7 @@ impl<'a> EString<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
EString::Format(expr, _) => expr.get_region(),
|
EString::Format(expr, _) => expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EString::Open(p)
|
EString::Open(p)
|
||||||
| EString::CodePtOpen(p)
|
| EString::CodePtOpen(p)
|
||||||
|
@ -699,7 +698,7 @@ impl<'a> ERecord<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Cases with child node that has get_region()
|
// Cases with child node that has get_region()
|
||||||
ERecord::Expr(expr, _) => expr.get_region(),
|
ERecord::Expr(expr, _) => expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
ERecord::End(p)
|
ERecord::End(p)
|
||||||
| ERecord::Open(p)
|
| ERecord::Open(p)
|
||||||
|
@ -735,7 +734,7 @@ impl<'a> EInParens<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Cases with child node that has get_region()
|
// Cases with child node that has get_region()
|
||||||
EInParens::Expr(expr, _) => expr.get_region(),
|
EInParens::Expr(expr, _) => expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EInParens::End(p)
|
EInParens::End(p)
|
||||||
| EInParens::Open(p)
|
| EInParens::Open(p)
|
||||||
|
@ -766,7 +765,7 @@ impl<'a> EClosure<'a> {
|
||||||
// Cases with child nodes that have get_region()
|
// Cases with child nodes that have get_region()
|
||||||
EClosure::Pattern(pattern, _) => pattern.get_region(),
|
EClosure::Pattern(pattern, _) => pattern.get_region(),
|
||||||
EClosure::Body(expr, _) => expr.get_region(),
|
EClosure::Body(expr, _) => expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EClosure::Space(_, p)
|
EClosure::Space(_, p)
|
||||||
| EClosure::Start(p)
|
| EClosure::Start(p)
|
||||||
|
@ -794,7 +793,7 @@ impl<'a> EList<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
EList::Expr(expr, _) => expr.get_region(),
|
EList::Expr(expr, _) => expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EList::Open(p) | EList::End(p) | EList::Space(_, p) => Region::from_pos(*p),
|
EList::Open(p) | EList::End(p) | EList::Space(_, p) => Region::from_pos(*p),
|
||||||
}
|
}
|
||||||
|
@ -865,7 +864,7 @@ impl<'a> EAbility<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
EAbility::Type(e_type, _) => e_type.get_region(),
|
EAbility::Type(e_type, _) => e_type.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EAbility::Space(_, p)
|
EAbility::Space(_, p)
|
||||||
| EAbility::DemandAlignment(_, p)
|
| EAbility::DemandAlignment(_, p)
|
||||||
|
@ -897,7 +896,9 @@ pub enum EIf<'a> {
|
||||||
impl<'a> EIf<'a> {
|
impl<'a> EIf<'a> {
|
||||||
pub fn get_region(&self) -> Region {
|
pub fn get_region(&self) -> Region {
|
||||||
match self {
|
match self {
|
||||||
EIf::Condition(expr, _) | EIf::ThenBranch(expr, _) | EIf::ElseBranch(expr, _) => expr.get_region(),
|
EIf::Condition(expr, _) | EIf::ThenBranch(expr, _) | EIf::ElseBranch(expr, _) => {
|
||||||
|
expr.get_region()
|
||||||
|
}
|
||||||
EIf::Space(_, p)
|
EIf::Space(_, p)
|
||||||
| EIf::If(p)
|
| EIf::If(p)
|
||||||
| EIf::Then(p)
|
| EIf::Then(p)
|
||||||
|
@ -945,9 +946,9 @@ impl<'a> EReturn<'a> {
|
||||||
pub fn get_region(&self) -> Region {
|
pub fn get_region(&self) -> Region {
|
||||||
match self {
|
match self {
|
||||||
EReturn::ReturnValue(expr, _) => expr.get_region(),
|
EReturn::ReturnValue(expr, _) => expr.get_region(),
|
||||||
EReturn::Space(_, p)
|
EReturn::Space(_, p) | EReturn::Return(p) | EReturn::IndentReturnValue(p) => {
|
||||||
| EReturn::Return(p)
|
Region::from_pos(*p)
|
||||||
| EReturn::IndentReturnValue(p) => Region::from_pos(*p),
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -988,10 +989,10 @@ impl<'a> EImport<'a> {
|
||||||
// Cases with child nodes that have get_region()
|
// Cases with child nodes that have get_region()
|
||||||
EImport::Params(params, _) => params.get_region(),
|
EImport::Params(params, _) => params.get_region(),
|
||||||
EImport::Annotation(e_type, _) => e_type.get_region(),
|
EImport::Annotation(e_type, _) => e_type.get_region(),
|
||||||
|
|
||||||
// Case with direct Region value
|
// Case with direct Region value
|
||||||
EImport::LowercaseAlias(r) => *r,
|
EImport::LowercaseAlias(r) => *r,
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EImport::Import(p)
|
EImport::Import(p)
|
||||||
| EImport::IndentStart(p)
|
| EImport::IndentStart(p)
|
||||||
|
@ -1074,7 +1075,7 @@ impl<'a> EPattern<'a> {
|
||||||
EPattern::Record(expr, _) => expr.get_region(),
|
EPattern::Record(expr, _) => expr.get_region(),
|
||||||
EPattern::List(expr, _) => expr.get_region(),
|
EPattern::List(expr, _) => expr.get_region(),
|
||||||
EPattern::PInParens(expr, _) => expr.get_region(),
|
EPattern::PInParens(expr, _) => expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EPattern::AsKeyword(position)
|
EPattern::AsKeyword(position)
|
||||||
| EPattern::AsIdentifier(position)
|
| EPattern::AsIdentifier(position)
|
||||||
|
@ -1083,7 +1084,6 @@ impl<'a> EPattern<'a> {
|
||||||
| EPattern::Start(position)
|
| EPattern::Start(position)
|
||||||
| EPattern::End(position)
|
| EPattern::End(position)
|
||||||
| EPattern::Space(_, position)
|
| EPattern::Space(_, position)
|
||||||
| EPattern::PInParens(_, position)
|
|
||||||
| EPattern::NumLiteral(_, position)
|
| EPattern::NumLiteral(_, position)
|
||||||
| EPattern::IndentStart(position)
|
| EPattern::IndentStart(position)
|
||||||
| EPattern::IndentEnd(position)
|
| EPattern::IndentEnd(position)
|
||||||
|
@ -1115,7 +1115,7 @@ impl<'a> PRecord<'a> {
|
||||||
// Cases with child nodes that have get_region()
|
// Cases with child nodes that have get_region()
|
||||||
PRecord::Pattern(pattern, _) => pattern.get_region(),
|
PRecord::Pattern(pattern, _) => pattern.get_region(),
|
||||||
PRecord::Expr(expr, _) => expr.get_region(),
|
PRecord::Expr(expr, _) => expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
PRecord::End(p)
|
PRecord::End(p)
|
||||||
| PRecord::Open(p)
|
| PRecord::Open(p)
|
||||||
|
@ -1143,12 +1143,11 @@ impl<'a> PList<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
PList::Pattern(pattern, _) => pattern.get_region(),
|
PList::Pattern(pattern, _) => pattern.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
PList::End(p)
|
PList::End(p) | PList::Open(p) | PList::Rest(p) | PList::Space(_, p) => {
|
||||||
| PList::Open(p)
|
Region::from_pos(*p)
|
||||||
| PList::Rest(p)
|
}
|
||||||
| PList::Space(_, p) => Region::from_pos(*p),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1168,7 +1167,7 @@ impl<'a> PInParens<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
PInParens::Pattern(pattern, _) => pattern.get_region(),
|
PInParens::Pattern(pattern, _) => pattern.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
PInParens::Empty(p)
|
PInParens::Empty(p)
|
||||||
| PInParens::End(p)
|
| PInParens::End(p)
|
||||||
|
@ -1210,10 +1209,10 @@ impl<'a> EType<'a> {
|
||||||
EType::TRecord(expr, _) => expr.get_region(),
|
EType::TRecord(expr, _) => expr.get_region(),
|
||||||
EType::TTagUnion(expr, _) => expr.get_region(),
|
EType::TTagUnion(expr, _) => expr.get_region(),
|
||||||
EType::TInParens(expr, _) => expr.get_region(),
|
EType::TInParens(expr, _) => expr.get_region(),
|
||||||
EType::TApply(eapply,_, )=> eapply.get_region(),
|
EType::TApply(eapply, _) => eapply.get_region(),
|
||||||
EType::TInlineAlias(einline, _) => einline.get_region(),
|
EType::TInlineAlias(einline, _) => einline.get_region(),
|
||||||
EType::TAbilityImpl(eability, _) => eability.get_region(),
|
EType::TAbilityImpl(eability, _) => eability.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
EType::Space(_, p)
|
EType::Space(_, p)
|
||||||
| EType::UnderscoreSpacing(p)
|
| EType::UnderscoreSpacing(p)
|
||||||
|
@ -1255,7 +1254,7 @@ impl<'a> ETypeRecord<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
ETypeRecord::Type(type_expr, _) => type_expr.get_region(),
|
ETypeRecord::Type(type_expr, _) => type_expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
ETypeRecord::End(p)
|
ETypeRecord::End(p)
|
||||||
| ETypeRecord::Open(p)
|
| ETypeRecord::Open(p)
|
||||||
|
@ -1286,11 +1285,11 @@ impl<'a> ETypeTagUnion<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
ETypeTagUnion::Type(type_expr, _) => type_expr.get_region(),
|
ETypeTagUnion::Type(type_expr, _) => type_expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
ETypeTagUnion::End(p)
|
ETypeTagUnion::End(p) | ETypeTagUnion::Open(p) | ETypeTagUnion::Space(_, p) => {
|
||||||
| ETypeTagUnion::Open(p)
|
Region::from_pos(*p)
|
||||||
| ETypeTagUnion::Space(_, p) => Region::from_pos(*p),
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1317,15 +1316,14 @@ impl<'a> ETypeInParens<'a> {
|
||||||
match self {
|
match self {
|
||||||
// Cases with child nodes that have get_region()
|
// Cases with child nodes that have get_region()
|
||||||
ETypeInParens::Type(type_expr, _) => type_expr.get_region(),
|
ETypeInParens::Type(type_expr, _) => type_expr.get_region(),
|
||||||
|
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
ETypeInParens::Empty(p)
|
ETypeInParens::Empty(p)
|
||||||
| ETypeInParens::End(p)
|
| ETypeInParens::End(p)
|
||||||
| ETypeInParens::Open(p)
|
| ETypeInParens::Open(p)
|
||||||
| ETypeInParens::Space(_, p)
|
| ETypeInParens::Space(_, p)
|
||||||
| ETypeInParens::IndentOpen(p)
|
| ETypeInParens::IndentOpen(p)
|
||||||
| ETypeInParens::IndentEnd(p) => Region::from_pos(*p),
|
| ETypeInParens::IndentEnd(p) => Region::from_pos(*p),
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1401,7 +1399,7 @@ impl<'a> ETypeAbilityImpl<'a> {
|
||||||
// Case with child node that has get_region()
|
// Case with child node that has get_region()
|
||||||
ETypeAbilityImpl::Type(type_expr, _) => type_expr.get_region(),
|
ETypeAbilityImpl::Type(type_expr, _) => type_expr.get_region(),
|
||||||
ETypeAbilityImpl::Expr(expr, _) => expr.get_region(),
|
ETypeAbilityImpl::Expr(expr, _) => expr.get_region(),
|
||||||
// Cases with Position values
|
// Cases with Position values
|
||||||
ETypeAbilityImpl::End(p)
|
ETypeAbilityImpl::End(p)
|
||||||
| ETypeAbilityImpl::Open(p)
|
| ETypeAbilityImpl::Open(p)
|
||||||
| ETypeAbilityImpl::Field(p)
|
| ETypeAbilityImpl::Field(p)
|
||||||
|
@ -1409,12 +1407,10 @@ impl<'a> ETypeAbilityImpl<'a> {
|
||||||
| ETypeAbilityImpl::Colon(p)
|
| ETypeAbilityImpl::Colon(p)
|
||||||
| ETypeAbilityImpl::Arrow(p)
|
| ETypeAbilityImpl::Arrow(p)
|
||||||
| ETypeAbilityImpl::Optional(p)
|
| ETypeAbilityImpl::Optional(p)
|
||||||
|
|
||||||
| ETypeAbilityImpl::Space(_, p)
|
| ETypeAbilityImpl::Space(_, p)
|
||||||
| ETypeAbilityImpl::Prefix(p)
|
| ETypeAbilityImpl::Prefix(p)
|
||||||
| ETypeAbilityImpl::QuestionMark(p)
|
| ETypeAbilityImpl::QuestionMark(p)
|
||||||
| ETypeAbilityImpl::Ampersand(p)
|
| ETypeAbilityImpl::Ampersand(p)
|
||||||
|
|
||||||
| ETypeAbilityImpl::IndentBar(p)
|
| ETypeAbilityImpl::IndentBar(p)
|
||||||
| ETypeAbilityImpl::IndentAmpersand(p) => Region::from_pos(*p),
|
| ETypeAbilityImpl::IndentAmpersand(p) => Region::from_pos(*p),
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,7 @@ fn create_llvm_module<'a>(
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(LoadMonomorphizedError::LoadingProblem(roc_load::LoadingProblem::FormattedReport(
|
Err(LoadMonomorphizedError::LoadingProblem(roc_load::LoadingProblem::FormattedReport(
|
||||||
report,
|
report,
|
||||||
|
_,
|
||||||
))) => {
|
))) => {
|
||||||
println!("{report}");
|
println!("{report}");
|
||||||
panic!();
|
panic!();
|
||||||
|
|
|
@ -172,7 +172,8 @@ fn compiles_to_ir(test_name: &str, src: &str, mode: &str, allow_type_errors: boo
|
||||||
let mut loaded = match loaded {
|
let mut loaded = match loaded {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(LoadMonomorphizedError::LoadingProblem(roc_load::LoadingProblem::FormattedReport(
|
Err(LoadMonomorphizedError::LoadingProblem(roc_load::LoadingProblem::FormattedReport(
|
||||||
report,_
|
report,
|
||||||
|
_,
|
||||||
))) => {
|
))) => {
|
||||||
println!("{report}");
|
println!("{report}");
|
||||||
panic!();
|
panic!();
|
||||||
|
|
|
@ -63,7 +63,8 @@ pub(crate) fn write_compiled_ir<'a>(
|
||||||
let loaded = match loaded {
|
let loaded = match loaded {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(LoadMonomorphizedError::LoadingProblem(roc_load::LoadingProblem::FormattedReport(
|
Err(LoadMonomorphizedError::LoadingProblem(roc_load::LoadingProblem::FormattedReport(
|
||||||
report,_
|
report,
|
||||||
|
_,
|
||||||
))) => {
|
))) => {
|
||||||
println!("{report}");
|
println!("{report}");
|
||||||
panic!();
|
panic!();
|
||||||
|
|
|
@ -674,7 +674,7 @@ pub fn load_module_for_docs(filename: PathBuf) -> LoadedModule {
|
||||||
load_config,
|
load_config,
|
||||||
) {
|
) {
|
||||||
Ok(loaded) => loaded,
|
Ok(loaded) => loaded,
|
||||||
Err(LoadingProblem::FormattedReport(report,_)) => {
|
Err(LoadingProblem::FormattedReport(report, _)) => {
|
||||||
eprintln!("{report}");
|
eprintln!("{report}");
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
use std::any::Any;
|
|
||||||
|
|
||||||
use roc_load::LoadingProblem;
|
|
||||||
use roc_parse::parser::{EHeader, EPattern, EType, SourceError, SyntaxError};
|
|
||||||
use roc_region::all::{LineColumn, LineColumnRegion, LineInfo, Region};
|
use roc_region::all::{LineColumn, LineColumnRegion, LineInfo, Region};
|
||||||
use tower_lsp::lsp_types::{Position, Range};
|
use tower_lsp::lsp_types::{Position, Range};
|
||||||
|
|
||||||
|
@ -73,7 +69,7 @@ impl ToRocPosition for tower_lsp::lsp_types::Position {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) mod diag {
|
pub(crate) mod diag {
|
||||||
use std::{fmt::Debug, path::Path};
|
use std::path::Path;
|
||||||
|
|
||||||
use log::debug;
|
use log::debug;
|
||||||
use roc_load::LoadingProblem;
|
use roc_load::LoadingProblem;
|
||||||
|
@ -82,7 +78,7 @@ pub(crate) mod diag {
|
||||||
|
|
||||||
use roc_problem::Severity;
|
use roc_problem::Severity;
|
||||||
use roc_reporting::report::RocDocAllocator;
|
use roc_reporting::report::RocDocAllocator;
|
||||||
use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity, Position, Range};
|
use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity};
|
||||||
|
|
||||||
use super::ToRange;
|
use super::ToRange;
|
||||||
|
|
||||||
|
@ -110,7 +106,7 @@ pub(crate) mod diag {
|
||||||
type Feed = LineInfo;
|
type Feed = LineInfo;
|
||||||
|
|
||||||
fn into_lsp_diagnostic(self, line_info: &LineInfo) -> Option<Diagnostic> {
|
fn into_lsp_diagnostic(self, line_info: &LineInfo) -> Option<Diagnostic> {
|
||||||
let mut range = self
|
let range = self
|
||||||
.get_region()
|
.get_region()
|
||||||
.unwrap_or(Region::new(
|
.unwrap_or(Region::new(
|
||||||
roc_region::all::Position::new(0),
|
roc_region::all::Position::new(0),
|
||||||
|
@ -156,8 +152,7 @@ pub(crate) mod diag {
|
||||||
LoadingProblem::TriedToImportAppModule => {
|
LoadingProblem::TriedToImportAppModule => {
|
||||||
"Attempted to import app module".to_string()
|
"Attempted to import app module".to_string()
|
||||||
}
|
}
|
||||||
LoadingProblem::FormattedReport(report, region) =>
|
LoadingProblem::FormattedReport(report, _region) => report.clone(),
|
||||||
report.clone(),
|
|
||||||
LoadingProblem::ImportCycle(_, _) => {
|
LoadingProblem::ImportCycle(_, _) => {
|
||||||
"Circular dependency between modules".to_string()
|
"Circular dependency between modules".to_string()
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ pub fn compile_to_mono<'a, 'i, I: Iterator<Item = &'i str>>(
|
||||||
(m.can_problems, m.type_problems)
|
(m.can_problems, m.type_problems)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Err(LoadMonomorphizedError::LoadingProblem(LoadingProblem::FormattedReport(report,_))) => {
|
Err(LoadMonomorphizedError::LoadingProblem(LoadingProblem::FormattedReport(report, _))) => {
|
||||||
return (
|
return (
|
||||||
None,
|
None,
|
||||||
Problems {
|
Problems {
|
||||||
|
|
|
@ -164,7 +164,7 @@ fn valgrind_test_linux(source: &str) {
|
||||||
run_with_valgrind(&binary_path);
|
run_with_valgrind(&binary_path);
|
||||||
}
|
}
|
||||||
Err(roc_build::program::BuildFileError::LoadingProblem(
|
Err(roc_build::program::BuildFileError::LoadingProblem(
|
||||||
roc_load::LoadingProblem::FormattedReport(report),
|
roc_load::LoadingProblem::FormattedReport(report, _),
|
||||||
)) => {
|
)) => {
|
||||||
eprintln!("{report}");
|
eprintln!("{report}");
|
||||||
panic!("");
|
panic!("");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue