From 24d434d156a91e2ebb5199463ca4b4e85966a11a Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Fri, 8 Jan 2021 12:49:04 -0800 Subject: [PATCH] Revert "Revert "Fix _LateInitializationError for RenderObjectElement.renderObject (#70974)" (#73575)" (#73580) --- packages/flutter/lib/src/widgets/framework.dart | 8 ++++---- packages/flutter/test/widgets/framework_test.dart | 10 ++++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart index 3978fc3a7fc..71b3bc791e8 100644 --- a/packages/flutter/lib/src/widgets/framework.dart +++ b/packages/flutter/lib/src/widgets/framework.dart @@ -5463,8 +5463,8 @@ abstract class RenderObjectElement extends Element { /// The underlying [RenderObject] for this element. @override - RenderObject get renderObject => _renderObject; - late RenderObject _renderObject; + RenderObject get renderObject => _renderObject!; + RenderObject? _renderObject; bool _debugDoingBuild = false; @override @@ -5566,7 +5566,7 @@ abstract class RenderObjectElement extends Element { void _debugUpdateRenderObjectOwner() { assert(() { - _renderObject.debugCreator = DebugCreator(this); + renderObject.debugCreator = DebugCreator(this); return true; }()); } @@ -6058,7 +6058,7 @@ abstract class RenderObjectElement extends Element { @override void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); - properties.add(DiagnosticsProperty('renderObject', renderObject, defaultValue: null)); + properties.add(DiagnosticsProperty('renderObject', _renderObject, defaultValue: null)); } } diff --git a/packages/flutter/test/widgets/framework_test.dart b/packages/flutter/test/widgets/framework_test.dart index 7dc9e7e44ab..9b8e7a12fb7 100644 --- a/packages/flutter/test/widgets/framework_test.dart +++ b/packages/flutter/test/widgets/framework_test.dart @@ -1494,6 +1494,12 @@ void main() { expect(GestureBinding.instance!.pointerRouter.debugGlobalRouteCount, pointerRouterCount); expect(RawKeyboard.instance.keyEventHandler, same(rawKeyEventHandler)); }); + + testWidgets('Can access debugFillProperties without _LateInitializationError', (WidgetTester tester) async { + final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder(); + TestRenderObjectElement().debugFillProperties(builder); + expect(builder.properties.any((DiagnosticsNode property) => property.name == 'renderObject' && property.value == null), isTrue); + }); } class _FakeFocusManager implements FocusManager { @@ -1837,3 +1843,7 @@ class FakeLeafRenderObject extends RenderBox { size = constraints.biggest; } } + +class TestRenderObjectElement extends RenderObjectElement { + TestRenderObjectElement() : super(Table()); +}