Pin results of constrainByPageWidth() if there is only one state.
diff --git a/lib/src/back_end/solution.dart b/lib/src/back_end/solution.dart index 4eb8095..b75a9c8 100644 --- a/lib/src/back_end/solution.dart +++ b/lib/src/back_end/solution.dart
@@ -124,9 +124,15 @@ void traverse(Piece piece) { piece.forEachChild(traverse); - if (piece.constrainByPageWidth(pageWidth - leadingIndent) - case var states?) { - pieceConstraints[piece] = states; + switch (piece.constrainByPageWidth(pageWidth - leadingIndent)) { + case [var state]: + piece.pin(state); + // TODO(https://github.com/dart-lang/sdk/issues/55543): Remove these + // ignores when the linked issue is fixed. + // ignore: receiver_of_type_never, dead_code + case var states? when states.length > 1: + // ignore: dead_code + pieceConstraints[piece] = states; } }