Implement Default for Location

This commit is contained in:
harupy 2023-01-05 22:48:47 +09:00
parent eb75c4fa46
commit 60cbfd3a94
3 changed files with 10 additions and 4 deletions

View file

@ -1,12 +1,18 @@
use serde::{Deserialize, Serialize};
/// Sourcecode location.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
pub struct Location {
pub(super) row: u32,
pub(super) column: u32,
}
impl Default for Location {
fn default() -> Self {
Self { row: 1, column: 0 }
}
}
impl Location {
pub fn fmt_with(
&self,

View file

@ -153,7 +153,7 @@ pub type LexResult = Result<Spanned, LexicalError>;
#[inline]
pub fn make_tokenizer(source: &str) -> impl Iterator<Item = LexResult> + '_ {
make_tokenizer_located(source, Location::new(1, 0))
make_tokenizer_located(source, Location::default())
}
pub fn make_tokenizer_located(

View file

@ -541,8 +541,8 @@ mod tests {
source,
StringKind::FString,
false,
Location::new(1, 0),
Location::new(1, source.len() + 3), // 3 for prefix and quotes
Location::default(),
Location::default().with_col_offset(source.len() + 3), // 3 for prefix and quotes
)
.parse()
}