diff --git a/CHANGELOG.md b/CHANGELOG.md index 13500625..16093669 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Changed - **aiken**: Rename `--filter_traces` to `--trace_filter` for more consistency with `--trace_level`. An alias for `--filter_traces` still exists for backward compatibility. @KtorZ +- **aiken-project**: Fix `aiken docs` source linking crashing when generating docs for config modules. See [#1044](https://github.com/aiken-lang/aiken/issues/1044). @KtorZ ### Removed diff --git a/crates/aiken-project/src/docs/source_links.rs b/crates/aiken-project/src/docs/source_links.rs index 092539ec..8f2f8e6f 100644 --- a/crates/aiken-project/src/docs/source_links.rs +++ b/crates/aiken-project/src/docs/source_links.rs @@ -60,9 +60,16 @@ impl SourceLinker { pub fn url(&self, span: Span) -> String { match &self.url_pattern { Some((base, line_sep)) => { - let start_line = self.line_numbers.line_number(span.start).unwrap(); - let end_line = self.line_numbers.line_number(span.end).unwrap(); - format!("{base}{start_line}{line_sep}{end_line}") + match ( + self.line_numbers.line_number(span.start), + self.line_numbers.line_number(span.end), + ) { + (Some(start_line), Some(end_line)) => { + format!("{base}{start_line}{line_sep}{end_line}") + } + (Some(start_line), None) => format!("{base}{start_line}"), + _ => base.to_string(), + } } None => "".into(), }