-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BTreeMap: admit the existence of leaf edges in comments #77395
BTreeMap: admit the existence of leaf edges in comments #77395
Conversation
// parent: Option<NonNull<Node<K, V, height + 1>>>, | ||
// parent_idx: u16, | ||
// edges: [if height > 0 { Box<Node<K, V, height - 1>> } else { () }; 2 * B], | ||
// parent: Option<(NonNull<Node<K, V, height + 1>>, u16)>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
parent
is unrelated to leaf edges, but the fact that parent_idx
is not part of the option is not "the ideal", it's probably the only way we can have the compiler merge the two u16 fields. I was going to undo that but it's in here now,
/// If the node is a leaf, this function simply opens up its data. | ||
/// If the node is an internal node, so not a leaf, it does have all the data a leaf has | ||
/// (header, keys and values), and this function exposes that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There hasn't been a separate header for quite a while, so pruning my own comment.
@bors r+ rollup |
📌 Commit df76cf8 has been approved by |
Rollup of 11 pull requests Successful merges: - rust-lang#75853 (Use more intra-doc-links in `core::fmt`) - rust-lang#75928 (Remove trait_selection error message in specific case) - rust-lang#76329 (Add check for doc alias attribute at crate level) - rust-lang#77219 (core::global_allocator docs link to std::alloc::GlobalAlloc) - rust-lang#77395 (BTreeMap: admit the existence of leaf edges in comments) - rust-lang#77407 (Improve build-manifest to work with the improved promote-release) - rust-lang#77426 (Include scope id in SocketAddrV6::Display) - rust-lang#77439 (Fix missing diagnostic span for `impl Trait` with const generics, and add various tests for `min_const_generics` and `const_generics`) - rust-lang#77471 (BTreeMap: refactoring around edges, missed spots) - rust-lang#77512 (Allow `Abort` terminators in all const-contexts) - rust-lang#77514 (Replace some once(x).chain(once(y)) with [x, y] IntoIter) Failed merges: r? `@ghost`
The btree code is ambiguous about leaf edges (i.e., edges within leaf nodes). Iteration relies on them heavily, but some of the comments suggest there are no leaf edges (extracted from #77025)
r? @Mark-Simulacrum