mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 06:30:08 +02:00
Add tests and cover edge cases of the :: delim.
This commit is contained in:
@ -171,6 +171,10 @@ pub enum ParseError {
|
||||
#[diagnostic(code(nu::parser::missing_import_pattern), url(docsrs))]
|
||||
MissingImportPattern(#[label = "needs an import pattern"] Span),
|
||||
|
||||
#[error("Wrong import pattern structure.")]
|
||||
#[diagnostic(code(nu::parser::missing_import_pattern), url(docsrs))]
|
||||
WrongImportPattern(#[label = "invalid import pattern structure"] Span),
|
||||
|
||||
#[error("Module export not found.")]
|
||||
#[diagnostic(code(nu::parser::export_not_found), url(docsrs))]
|
||||
ExportNotFound(#[label = "could not find imports"] Span),
|
||||
|
@ -1711,6 +1711,33 @@ pub fn parse_import_pattern(
|
||||
);
|
||||
}
|
||||
|
||||
if (tokens.len() != 1) && (tokens.len() != 4) {
|
||||
return (
|
||||
ImportPattern {
|
||||
head: vec![],
|
||||
members: vec![],
|
||||
},
|
||||
Some(ParseError::WrongImportPattern(span)),
|
||||
);
|
||||
}
|
||||
|
||||
let has_second_colon = if let Some(t) = tokens.get(2) {
|
||||
let potential_colon = working_set.get_span_contents(t.span);
|
||||
potential_colon == b":"
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
||||
if (tokens.len() == 4) && !has_second_colon {
|
||||
return (
|
||||
ImportPattern {
|
||||
head: vec![],
|
||||
members: vec![],
|
||||
},
|
||||
Some(ParseError::WrongImportPattern(span)),
|
||||
);
|
||||
}
|
||||
|
||||
let head = working_set.get_span_contents(tokens[0].span).to_vec();
|
||||
|
||||
if let Some(tail) = tokens.get(3) {
|
||||
|
Reference in New Issue
Block a user