Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/parser/src/grammar/paths.rs')
-rw-r--r--crates/parser/src/grammar/paths.rs27
1 files changed, 17 insertions, 10 deletions
diff --git a/crates/parser/src/grammar/paths.rs b/crates/parser/src/grammar/paths.rs
index b4a60574e5..f9efcef92a 100644
--- a/crates/parser/src/grammar/paths.rs
+++ b/crates/parser/src/grammar/paths.rs
@@ -3,11 +3,11 @@ use super::*;
pub(super) const PATH_FIRST: TokenSet =
TokenSet::new(&[IDENT, T![self], T![super], T![crate], T![Self], T![:], T![<]]);
-pub(super) fn is_path_start(p: &Parser) -> bool {
+pub(super) fn is_path_start(p: &Parser<'_>) -> bool {
is_use_path_start(p) || p.at(T![<]) || p.at(T![Self])
}
-pub(super) fn is_use_path_start(p: &Parser) -> bool {
+pub(super) fn is_use_path_start(p: &Parser<'_>) -> bool {
match p.current() {
IDENT | T![self] | T![super] | T![crate] => true,
T![:] if p.at(T![::]) => true,
@@ -15,19 +15,22 @@ pub(super) fn is_use_path_start(p: &Parser) -> bool {
}
}
-pub(super) fn use_path(p: &mut Parser) {
+pub(super) fn use_path(p: &mut Parser<'_>) {
path(p, Mode::Use);
}
-pub(crate) fn type_path(p: &mut Parser) {
+pub(crate) fn type_path(p: &mut Parser<'_>) {
path(p, Mode::Type);
}
-pub(super) fn expr_path(p: &mut Parser) {
+pub(super) fn expr_path(p: &mut Parser<'_>) {
path(p, Mode::Expr);
}
-pub(crate) fn type_path_for_qualifier(p: &mut Parser, qual: CompletedMarker) -> CompletedMarker {
+pub(crate) fn type_path_for_qualifier(
+ p: &mut Parser<'_>,
+ qual: CompletedMarker,
+) -> CompletedMarker {
path_for_qualifier(p, Mode::Type, qual)
}
@@ -38,14 +41,18 @@ enum Mode {
Expr,
}
-fn path(p: &mut Parser, mode: Mode) {
+fn path(p: &mut Parser<'_>, mode: Mode) {
let path = p.start();
path_segment(p, mode, true);
let qual = path.complete(p, PATH);
path_for_qualifier(p, mode, qual);
}
-fn path_for_qualifier(p: &mut Parser, mode: Mode, mut qual: CompletedMarker) -> CompletedMarker {
+fn path_for_qualifier(
+ p: &mut Parser<'_>,
+ mode: Mode,
+ mut qual: CompletedMarker,
+) -> CompletedMarker {
loop {
let use_tree = matches!(p.nth(2), T![*] | T!['{']);
if p.at(T![::]) && !use_tree {
@@ -60,7 +67,7 @@ fn path_for_qualifier(p: &mut Parser, mode: Mode, mut qual: CompletedMarker) ->
}
}
-fn path_segment(p: &mut Parser, mode: Mode, first: bool) {
+fn path_segment(p: &mut Parser<'_>, mode: Mode, first: bool) {
let m = p.start();
// test qual_paths
// type X = <A as B>::Output;
@@ -107,7 +114,7 @@ fn path_segment(p: &mut Parser, mode: Mode, first: bool) {
m.complete(p, PATH_SEGMENT);
}
-fn opt_path_type_args(p: &mut Parser, mode: Mode) {
+fn opt_path_type_args(p: &mut Parser<'_>, mode: Mode) {
match mode {
Mode::Use => {}
Mode::Type => {