hir: Add some FIXMEs for future work
This commit is contained in:
parent
a61019b290
commit
3e8c8d8d34
4 changed files with 6 additions and 0 deletions
|
@ -265,6 +265,7 @@ impl<'a, 'hir> Visitor<'hir> for NodeCollector<'a, 'hir> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_path_segment(&mut self, path_segment: &'hir PathSegment<'hir>) {
|
fn visit_path_segment(&mut self, path_segment: &'hir PathSegment<'hir>) {
|
||||||
|
// FIXME: walk path segment with `path_segment.hir_id` parent.
|
||||||
self.insert(path_segment.ident.span, path_segment.hir_id, Node::PathSegment(path_segment));
|
self.insert(path_segment.ident.span, path_segment.hir_id, Node::PathSegment(path_segment));
|
||||||
intravisit::walk_path_segment(self, path_segment);
|
intravisit::walk_path_segment(self, path_segment);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3493,6 +3493,7 @@ pub enum Node<'hir> {
|
||||||
Crate(&'hir Mod<'hir>),
|
Crate(&'hir Mod<'hir>),
|
||||||
Infer(&'hir InferArg),
|
Infer(&'hir InferArg),
|
||||||
WhereBoundPredicate(&'hir WhereBoundPredicate<'hir>),
|
WhereBoundPredicate(&'hir WhereBoundPredicate<'hir>),
|
||||||
|
// FIXME: Merge into `Node::Infer`.
|
||||||
ArrayLenInfer(&'hir InferArg),
|
ArrayLenInfer(&'hir InferArg),
|
||||||
// Span by reference to minimize `Node`'s size
|
// Span by reference to minimize `Node`'s size
|
||||||
#[allow(rustc::pass_by_value)]
|
#[allow(rustc::pass_by_value)]
|
||||||
|
|
|
@ -669,6 +669,7 @@ pub fn walk_pat_field<'v, V: Visitor<'v>>(visitor: &mut V, field: &'v PatField<'
|
||||||
|
|
||||||
pub fn walk_array_len<'v, V: Visitor<'v>>(visitor: &mut V, len: &'v ArrayLen) {
|
pub fn walk_array_len<'v, V: Visitor<'v>>(visitor: &mut V, len: &'v ArrayLen) {
|
||||||
match len {
|
match len {
|
||||||
|
// FIXME: Use `visit_infer` here.
|
||||||
ArrayLen::Infer(InferArg { hir_id, span: _ }) => visitor.visit_id(*hir_id),
|
ArrayLen::Infer(InferArg { hir_id, span: _ }) => visitor.visit_id(*hir_id),
|
||||||
ArrayLen::Body(c) => visitor.visit_anon_const(c),
|
ArrayLen::Body(c) => visitor.visit_anon_const(c),
|
||||||
}
|
}
|
||||||
|
|
|
@ -222,6 +222,9 @@ impl<'hir> Map<'hir> {
|
||||||
/// If calling repeatedly and iterating over parents, prefer [`Map::parent_iter`].
|
/// If calling repeatedly and iterating over parents, prefer [`Map::parent_iter`].
|
||||||
pub fn opt_parent_id(self, id: HirId) -> Option<HirId> {
|
pub fn opt_parent_id(self, id: HirId) -> Option<HirId> {
|
||||||
if id.local_id == ItemLocalId::from_u32(0) {
|
if id.local_id == ItemLocalId::from_u32(0) {
|
||||||
|
// FIXME: This function never returns `None` right now, and the parent chain end is
|
||||||
|
// determined by checking for `parent(id) == id`. This function should return `None`
|
||||||
|
// for the crate root instead.
|
||||||
Some(self.tcx.hir_owner_parent(id.owner))
|
Some(self.tcx.hir_owner_parent(id.owner))
|
||||||
} else {
|
} else {
|
||||||
let owner = self.tcx.hir_owner_nodes(id.owner);
|
let owner = self.tcx.hir_owner_nodes(id.owner);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue