diff --git a/packages/core/lib/src/data/build_op.dart b/packages/core/lib/src/data/build_op.dart index cdda085c4..08ca54b8a 100644 --- a/packages/core/lib/src/data/build_op.dart +++ b/packages/core/lib/src/data/build_op.dart @@ -169,17 +169,17 @@ class BuildOp { (onWidgets != null ? (tree, placeholder) { final children = onWidgets(tree, [placeholder]); - switch (children?.length) { - case null: - return placeholder; - case 0: - return widget0; - case 1: - return children?.first ?? widget0; - default: - throw UnsupportedError( - 'onWidgets must return exactly 1 widget, got ${children?.length}', - ); + final length = children?.length; + if (length == null) { + return placeholder; + } else if (length == 0) { + return widget0; + } else if (length == 1) { + return children!.first; + } else { + throw UnsupportedError( + 'onWidgets must return exactly 1 widget, got $length', + ); } } : null); diff --git a/packages/core/test/_.dart b/packages/core/test/_.dart index 89c357068..e0ce3daaf 100644 --- a/packages/core/test/_.dart +++ b/packages/core/test/_.dart @@ -162,7 +162,13 @@ Future explainWithoutPumping({ ).explain(built); str = str.replaceAll(RegExp('String#[^,]+,'), 'String,'); - return str.replaceAll(RegExp('Uint8List#[0-9a-f]+,'), 'bytes,'); + str = str.replaceAll(RegExp('Uint8List#[0-9a-f]+,'), 'bytes,'); + + // images + str = str.replaceAll(', headers: null', ''); + str = str.replaceAll(', webHtmlElementStrategy: never', ''); + + return str; } final _explainMarginRegExp = RegExp(