From 786d0306dbd4c354f8e1f69e18580452e7308d24 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Tue, 10 Nov 2020 14:29:41 -0800 Subject: [PATCH] Assert for RenderFlex intrinsics if using baseline alignment (#70139) --- packages/flutter/lib/src/rendering/flex.dart | 10 +++++++ .../flutter/test/rendering/flex_test.dart | 26 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/packages/flutter/lib/src/rendering/flex.dart b/packages/flutter/lib/src/rendering/flex.dart index fc4329cf60..a3a464d523 100644 --- a/packages/flutter/lib/src/rendering/flex.dart +++ b/packages/flutter/lib/src/rendering/flex.dart @@ -512,6 +512,16 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin[box], + crossAxisAlignment: CrossAxisAlignment.baseline, + textBaseline: TextBaseline.alphabetic, + ); + layout(flex, constraints: const BoxConstraints( + minWidth: 200.0, maxWidth: 200.0, minHeight: 200.0, maxHeight: 200.0, + )); + + final Matcher cannotCalculateIntrinsics = throwsA(isAssertionError.having( + (AssertionError e) => e.message, + 'message', + 'Intrinsics are not available for CrossAxisAlignment.baseline.', + )); + + expect(() => flex.getMaxIntrinsicHeight(100), cannotCalculateIntrinsics); + expect(() => flex.getMinIntrinsicHeight(100), cannotCalculateIntrinsics); + expect(() => flex.getMaxIntrinsicWidth(100), cannotCalculateIntrinsics); + expect(() => flex.getMinIntrinsicWidth(100), cannotCalculateIntrinsics); + }); }