void accept_vis (ASTVisitor &vis) override;
- PathType get_glob_type () { return glob_type; }
+ PathType get_glob_type () const { return glob_type; }
Kind get_kind () const override { return Glob; }
}
else
{
- rust_assert (!path.get_segments ().empty ());
+ switch (mode)
+ {
+ case ResolutionMode::Normal:
+ break; // default
+ case ResolutionMode::FromRoot:
+ starting_point = root;
+ break;
+ case ResolutionMode::FromExtern:
+ starting_point = extern_prelude;
+ break;
+ default:
+ rust_unreachable ();
+ }
}
- switch (mode)
+ if (path.get_segments ().empty ())
{
- case ResolutionMode::Normal:
- break; // default
- case ResolutionMode::FromRoot:
- starting_point = root;
- break;
- case ResolutionMode::FromExtern:
- starting_point = extern_prelude;
- break;
- default:
- rust_unreachable ();
+ return Rib::Definition::NonShadowable (starting_point.get ().id);
}
auto &segments = path.get_segments ();
if (glob.has_path ())
paths.emplace_back (glob.get_path ());
else
- paths.emplace_back (AST::SimplePath ({}, false, glob.get_locus ()));
+ paths.emplace_back (AST::SimplePath (
+ {}, glob.get_glob_type () == AST::UseTreeGlob::PathType::GLOBAL,
+ glob.get_locus ()));
}
static bool