{"record":{"id":"37d95344fe2d2fac","repo":"pola-rs/polars","slug":"must-have-an-upper-bound","errorCode":null,"errorMessage":"must have an upper bound","messagePattern":"must have an upper bound","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/polars-arrow/src/legacy/trusted_len/push_unchecked.rs","lineNumber":75,"sourceCode":"        iter: I,\n    ) -> Result<Self, E>\n    where\n        Self: Sized;\n}\n\nimpl<T> TrustedLenPush<T> for Vec<T> {\n    #[inline(always)]\n    unsafe fn push_unchecked(&mut self, value: T) {\n        debug_assert!(self.capacity() > self.len());\n        let end = self.as_mut_ptr().add(self.len());\n        std::ptr::write(end, value);\n        self.set_len(self.len() + 1);\n    }\n\n    #[inline]\n    unsafe fn extend_trusted_len_unchecked<I: IntoIterator<Item = T>>(&mut self, iter: I) {\n        let iter = iter.into_iter();\n        let upper = iter.size_hint().1.expect(\"must have an upper bound\");\n        self.reserve(upper);\n\n        let mut dst = self.as_mut_ptr().add(self.len());\n        for value in iter {\n            std::ptr::write(dst, value);\n            dst = dst.add(1)\n        }\n        self.set_len(self.len() + upper)\n    }\n\n    unsafe fn try_extend_trusted_len_unchecked<E, I: IntoIterator<Item = Result<T, E>>>(\n        &mut self,\n        iter: I,\n    ) -> Result<(), E> {\n        let iter = iter.into_iter();\n        let upper = iter.size_hint().1.expect(\"must have an upper bound\");\n        self.reserve(upper);\n","sourceCodeStart":57,"sourceCodeEnd":93,"githubUrl":"https://github.com/pola-rs/polars/blob/fe841f959ef4d2ceefc05a310d33ed7b1ab24e5e/crates/polars-arrow/src/legacy/trusted_len/push_unchecked.rs#L57-L93","documentation":"extend_trusted_len_unchecked relies on TrustedLen's contract that size_hint().1 is Some; it unwraps the upper bound and panics when the iterator's size hint has no upper bound — the iterator passed does not actually implement TrustedLen.","triggerScenarios":"Thrown at crates/polars-arrow/src/legacy/trusted_len/push_unchecked.rs:75 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Only pass iterators that genuinely implement TrustedLen to extend_trusted_len_unchecked","Use the safe extend API when the iterator's length is not statically known","Fix custom iterator size_hint implementations to return an exact upper bound"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fe841f959ef4d2ceefc05a310d33ed7b1ab24e5e","analyzedAt":"2026-09-18T22:14:11.667Z","contentChangedAt":"2026-09-18T22:14:11.667Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}