@@ -521,7 +521,7 @@ class EmptyLineTracker:
521
521
mode : Mode
522
522
previous_line : Optional [Line ] = None
523
523
previous_block : Optional [LinesBlock ] = None
524
- previous_defs : List [int ] = field (default_factory = list )
524
+ previous_defs : List [Line ] = field (default_factory = list )
525
525
semantic_leading_comment : Optional [LinesBlock ] = None
526
526
527
527
def maybe_empty_lines (self , current_line : Line ) -> LinesBlock :
@@ -577,12 +577,18 @@ def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
577
577
else :
578
578
before = 0
579
579
depth = current_line .depth
580
- while self .previous_defs and self .previous_defs [- 1 ] >= depth :
580
+ while self .previous_defs and self .previous_defs [- 1 ]. depth >= depth :
581
581
if self .mode .is_pyi :
582
582
assert self .previous_line is not None
583
583
if depth and not current_line .is_def and self .previous_line .is_def :
584
584
# Empty lines between attributes and methods should be preserved.
585
585
before = min (1 , before )
586
+ elif (
587
+ Preview .blank_line_after_nested_stub_class in self .mode
588
+ and self .previous_defs [- 1 ].is_class
589
+ and not self .previous_defs [- 1 ].is_stub_class
590
+ ):
591
+ before = 1
586
592
elif depth :
587
593
before = 0
588
594
else :
@@ -637,7 +643,7 @@ def _maybe_empty_lines_for_class_or_def(
637
643
self , current_line : Line , before : int
638
644
) -> Tuple [int , int ]:
639
645
if not current_line .is_decorator :
640
- self .previous_defs .append (current_line . depth )
646
+ self .previous_defs .append (current_line )
641
647
if self .previous_line is None :
642
648
# Don't insert empty lines before the first line in the file.
643
649
return 0 , 0
0 commit comments