}
pub(super) fn use_path(p: &mut Parser) {
- path(p, Mode::Use)
+ path(p, Mode::Use);
}
pub(crate) fn type_path(p: &mut Parser) {
- path(p, Mode::Type)
+ path(p, Mode::Type);
}
pub(super) fn expr_path(p: &mut Parser) {
- path(p, Mode::Expr)
+ path(p, Mode::Expr);
}
-pub(crate) fn type_path_for_qualifier(p: &mut Parser, qual: CompletedMarker) {
+pub(crate) fn type_path_for_qualifier(p: &mut Parser, qual: CompletedMarker) -> CompletedMarker {
path_for_qualifier(p, Mode::Type, qual)
}
let path = p.start();
path_segment(p, mode, true);
let qual = path.complete(p, PATH);
- path_for_qualifier(p, mode, qual)
+ path_for_qualifier(p, mode, qual);
}
-fn path_for_qualifier(p: &mut Parser, mode: Mode, mut qual: 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 {
let path = path.complete(p, PATH);
qual = path;
} else {
- break;
+ return qual;
}
}
}
params::param_list_fn_trait(p);
opt_ret_type(p);
} else {
- type_args::opt_generic_arg_list(p, false)
+ generic_args::opt_generic_arg_list(p, false);
}
}
- Mode::Expr => type_args::opt_generic_arg_list(p, true),
+ Mode::Expr => generic_args::opt_generic_arg_list(p, true),
}
}