@@ -83,53 +83,51 @@ impl BlockLevelBox {
8383 let start_margin = pbm. margin . block_start . auto_is ( Length :: zero) ;
8484 collected_margin. adjoin_assign ( & CollapsedMargin :: new ( start_margin) ) ;
8585
86- let contents = match self {
87- BlockLevelBox :: SameFormattingContextBlock { ref contents, .. } => contents,
86+ let child_boxes = match self {
87+ BlockLevelBox :: SameFormattingContextBlock { ref contents, .. } => match contents {
88+ BlockContainer :: BlockLevelBoxes ( boxes) => boxes,
89+ BlockContainer :: InlineFormattingContext ( _) => return false ,
90+ } ,
8891 _ => return false ,
8992 } ;
9093
9194 if pbm. padding . block_start != Length :: zero ( ) || pbm. border . block_start != Length :: zero ( ) {
9295 return false ;
9396 }
9497
95- match contents {
96- BlockContainer :: BlockLevelBoxes ( boxes) => {
97- let min_inline_size = style
98- . content_min_box_size ( containing_block, & pbm)
99- . auto_is ( Length :: zero)
100- . inline ;
101- let max_inline_size = style. content_max_box_size ( containing_block, & pbm) . inline ;
102- let inline_size = style
103- . content_box_size ( containing_block, & pbm)
104- . inline
105- . auto_is ( || {
106- let margin_inline_start = pbm. margin . inline_start . auto_is ( Length :: zero) ;
107- let margin_inline_end = pbm. margin . inline_end . auto_is ( Length :: zero) ;
108- containing_block. inline_size -
109- pbm. padding_border_sums . inline -
110- margin_inline_start -
111- margin_inline_end
112- } )
113- . clamp_between_extremums ( min_inline_size, max_inline_size) ;
114-
115- // The block size is irrelevant here.
116- let block_size = LengthOrAuto :: Auto ;
117-
118- let containing_block_for_children = ContainingBlock {
119- inline_size,
120- block_size,
121- style,
122- } ;
98+ let min_inline_size = style
99+ . content_min_box_size ( containing_block, & pbm)
100+ . auto_is ( Length :: zero)
101+ . inline ;
102+ let max_inline_size = style. content_max_box_size ( containing_block, & pbm) . inline ;
103+ let inline_size = style
104+ . content_box_size ( containing_block, & pbm)
105+ . inline
106+ . auto_is ( || {
107+ let margin_inline_start = pbm. margin . inline_start . auto_is ( Length :: zero) ;
108+ let margin_inline_end = pbm. margin . inline_end . auto_is ( Length :: zero) ;
109+ containing_block. inline_size -
110+ pbm. padding_border_sums . inline -
111+ margin_inline_start -
112+ margin_inline_end
113+ } )
114+ . clamp_between_extremums ( min_inline_size, max_inline_size) ;
115+
116+ // The block size is irrelevant here.
117+ let block_size = LengthOrAuto :: Auto ;
118+
119+ let containing_block_for_children = ContainingBlock {
120+ inline_size,
121+ block_size,
122+ style,
123+ } ;
123124
124- if !Self :: find_block_margin_collapsing_with_parent_from_slice (
125- & boxes,
126- collected_margin,
127- & containing_block_for_children,
128- ) {
129- return false ;
130- }
131- } ,
132- BlockContainer :: InlineFormattingContext ( _) => return false ,
125+ if !Self :: find_block_margin_collapsing_with_parent_from_slice (
126+ & child_boxes,
127+ collected_margin,
128+ & containing_block_for_children,
129+ ) {
130+ return false ;
133131 }
134132
135133 let block_size_zero =
0 commit comments