@@ -138,6 +138,7 @@ struct SamplePoints<'a> {
138
138
/// so we just have to find the *only* thread's ID and require there is no other.
139
139
expected_thread_id : u32 ,
140
140
141
+ /// Reversed events that do not contain integer payloads
141
142
rev_events : std:: iter:: Peekable < Box < dyn Iterator < Item = Event < ' a > > + ' a > > ,
142
143
stack : Vec < Event < ' a > > ,
143
144
}
@@ -165,7 +166,11 @@ impl<'a> BackwardsIterator for SamplePoints<'a> {
165
166
type Item = SamplePoint < WithParent < Event < ' a > > > ;
166
167
fn next_back ( & mut self ) -> Option < Self :: Item > {
167
168
let sample_point = match self . rev_events . peek ( ) {
168
- Some ( peeked_event) if !peeked_event. payload . is_integer ( ) => {
169
+ Some ( peeked_event) => {
170
+ assert ! (
171
+ !peeked_event. payload. is_integer( ) ,
172
+ "Integer events accidentally included in `SamplePoints` events"
173
+ ) ;
169
174
assert_eq ! (
170
175
peeked_event. thread_id, self . expected_thread_id,
171
176
"more than one thread is not supported in `summarize aggregate`"
@@ -177,8 +182,6 @@ impl<'a> BackwardsIterator for SamplePoints<'a> {
177
182
Some ( top_event) if !top_event. contains ( peeked_event) => {
178
183
SamplePoint :: Start ( self . stack . pop ( ) . unwrap ( ) )
179
184
}
180
- Some ( _) => unreachable ! ( ) ,
181
-
182
185
_ => {
183
186
let event = self . rev_events . next ( ) . unwrap ( ) ;
184
187
match event. payload {
@@ -198,7 +201,6 @@ impl<'a> BackwardsIterator for SamplePoints<'a> {
198
201
}
199
202
}
200
203
}
201
- Some ( _) => unreachable ! ( ) ,
202
204
203
205
// Ran out of events, but we might still have stack entries to leave.
204
206
None => SamplePoint :: Start ( self . stack . pop ( ) ?) ,
0 commit comments