debugWidgetBuilderValue function
Asserts that the built
widget is not null.
Used when the given widget
calls a builder function to check that the
function returned a non-null value, as typically required.
Does nothing when asserts are disabled.
Implementation
void debugWidgetBuilderValue(Widget widget, Widget? built) {
assert(() {
if (built == null) {
throw FlutterError.fromParts(<DiagnosticsNode>[
ErrorSummary('A build function returned null.'),
DiagnosticsProperty<Widget>('The offending widget is', widget, style: DiagnosticsTreeStyle.errorProperty),
ErrorDescription('Build functions must never return null.'),
ErrorHint(
'To return an empty space that causes the building widget to fill available room, return "Container()". '
'To return an empty space that takes as little room as possible, return "Container(width: 0.0, height: 0.0)".',
),
]);
}
if (widget == built) {
throw FlutterError.fromParts(<DiagnosticsNode>[
ErrorSummary('A build function returned context.widget.'),
DiagnosticsProperty<Widget>('The offending widget is', widget, style: DiagnosticsTreeStyle.errorProperty),
ErrorDescription(
'Build functions must never return their BuildContext parameter\'s widget or a child that contains "context.widget". '
'Doing so introduces a loop in the widget tree that can cause the app to crash.',
),
]);
}
return true;
}());
}