From 986d7980c96238449c92aaf83c1880f733bb2015 Mon Sep 17 00:00:00 2001 From: Alexis Beingessner Date: Mon, 20 Jul 2015 15:36:50 -0700 Subject: [PATCH] remove redundant explanation --- vec-into-iter.md | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/vec-into-iter.md b/vec-into-iter.md index 0ffc23c..a9c1917 100644 --- a/vec-into-iter.md +++ b/vec-into-iter.md @@ -51,22 +51,7 @@ struct IntoIter { } ``` -One last subtle detail: if our Vec is empty, we want to produce an empty -iterator. This will actually technically fall out doing the naive thing of: - -```text -start = ptr -end = ptr.offset(len) -``` - -However because `offset` is marked as a GEP inbounds instruction, this will tell -LLVM that ptr is allocated and won't alias other allocated memory. This is fine -for zero-sized types, as they can't alias anything. However if we're using -`heap::EMPTY` as a sentinel for a non-allocation for a *non-zero-sized* type, -this can cause Undefined Behaviour. Alas, we must therefore special case either -cap or len being 0 to not do the offset. - -So this is what we end up with for initialization: +And this is what we end up with for initialization: ```rust,ignore impl Vec {