diff --git a/packages/flutter/lib/src/cupertino/dialog.dart b/packages/flutter/lib/src/cupertino/dialog.dart index d8f33d933f..1f9e0e9b46 100644 --- a/packages/flutter/lib/src/cupertino/dialog.dart +++ b/packages/flutter/lib/src/cupertino/dialog.dart @@ -856,7 +856,7 @@ class _CupertinoDialogRenderElement extends RenderObjectElement { @override void moveRenderObjectChild(RenderObject child, _AlertDialogSections oldSlot, _AlertDialogSections newSlot) { if (!allowMoveRenderObjectChild) { - super.moveRenderObjectChild(child, oldSlot, newSlot); + assert(false); return; } diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart index 659fa73d27..7c06cecb06 100644 --- a/packages/flutter/lib/src/widgets/framework.dart +++ b/packages/flutter/lib/src/widgets/framework.dart @@ -6290,30 +6290,7 @@ abstract class RenderObjectElement extends Element { /// [IndexedSlot] is a convenient value for the slot. /// {@endtemplate} @protected - void insertRenderObjectChild(covariant RenderObject child, covariant Object? slot) { - assert(() { - throw FlutterError.fromParts([ - ErrorSummary('RenderObjectElement.insertChildRenderObject() is deprecated.'), - toDiagnosticsNode( - name: 'insertChildRenderObject() was called on this Element', - style: DiagnosticsTreeStyle.shallow, - ), - ErrorDescription( - 'insertChildRenderObject() has been deprecated in favor of ' - 'insertRenderObjectChild(). See https://github.com/flutter/flutter/issues/63269 ' - 'for details.', - ), - ErrorHint( - 'Rather than overriding insertChildRenderObject() in your ' - 'RenderObjectElement subclass, override insertRenderObjectChild() instead, ' - "and DON'T call super.insertRenderObjectChild(). If you're implementing a " - 'new RenderObjectElement, you should override/implement ' - 'insertRenderObjectChild(), moveRenderObjectChild(), and ' - 'removeRenderObjectChild().', - ), - ]); - }()); - } + void insertRenderObjectChild(covariant RenderObject child, covariant Object? slot); /// Move the given child from the given old slot to the given new slot. /// @@ -6330,60 +6307,14 @@ abstract class RenderObjectElement extends Element { /// compared against each other for the purposes of updating one slot with the /// element from another slot) would never call this. @protected - void moveRenderObjectChild(covariant RenderObject child, covariant Object? oldSlot, covariant Object? newSlot) { - assert(() { - throw FlutterError.fromParts([ - ErrorSummary('RenderObjectElement.moveChildRenderObject() is deprecated.'), - toDiagnosticsNode( - name: 'super.moveChildRenderObject() was called on this Element', - style: DiagnosticsTreeStyle.shallow, - ), - ErrorDescription( - 'moveChildRenderObject() has been deprecated in favor of ' - 'moveRenderObjectChild(). See https://github.com/flutter/flutter/issues/63269 ' - 'for details.', - ), - ErrorHint( - 'Rather than overriding moveChildRenderObject() in your ' - 'RenderObjectElement subclass, override moveRenderObjectChild() instead, ' - "and DON'T call super.moveRenderObjectChild(). If you're implementing a " - 'new RenderObjectElement, you should override/implement ' - 'insertRenderObjectChild(), moveRenderObjectChild(), and ' - 'removeRenderObjectChild().', - ), - ]); - }()); - } + void moveRenderObjectChild(covariant RenderObject child, covariant Object? oldSlot, covariant Object? newSlot); /// Remove the given child from [renderObject]. /// /// The given child is guaranteed to have been inserted at the given `slot` /// and have [renderObject] as its parent. @protected - void removeRenderObjectChild(covariant RenderObject child, covariant Object? slot) { - assert(() { - throw FlutterError.fromParts([ - ErrorSummary('RenderObjectElement.removeChildRenderObject() is deprecated.'), - toDiagnosticsNode( - name: 'super.removeChildRenderObject() was called on this Element', - style: DiagnosticsTreeStyle.shallow, - ), - ErrorDescription( - 'removeChildRenderObject() has been deprecated in favor of ' - 'removeRenderObjectChild(). See https://github.com/flutter/flutter/issues/63269 ' - 'for details.', - ), - ErrorHint( - 'Rather than overriding removeChildRenderObject() in your ' - 'RenderObjectElement subclass, override removeRenderObjectChild() instead, ' - "and DON'T call super.removeRenderObjectChild(). If you're implementing a " - 'new RenderObjectElement, you should override/implement ' - 'insertRenderObjectChild(), moveRenderObjectChild(), and ' - 'removeRenderObjectChild().', - ), - ]); - }()); - } + void removeRenderObjectChild(covariant RenderObject child, covariant Object? slot); @override void debugFillProperties(DiagnosticPropertiesBuilder properties) { diff --git a/packages/flutter/test/widgets/framework_test.dart b/packages/flutter/test/widgets/framework_test.dart index d884e85210..2e70d1f6a5 100644 --- a/packages/flutter/test/widgets/framework_test.dart +++ b/packages/flutter/test/widgets/framework_test.dart @@ -2119,6 +2119,15 @@ class FakeLeafRenderObject extends RenderBox { class TestRenderObjectElement extends RenderObjectElement { TestRenderObjectElement() : super(Table()); + + @override + void insertRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } + + @override + void moveRenderObjectChild(covariant RenderObject child, covariant Object? oldSlot, covariant Object? newSlot) { } + + @override + void removeRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } } class _EmptyWidget extends Widget { diff --git a/packages/flutter/test/widgets/memory_allocations_test.dart b/packages/flutter/test/widgets/memory_allocations_test.dart index 84e325b708..26c9586a06 100644 --- a/packages/flutter/test/widgets/memory_allocations_test.dart +++ b/packages/flutter/test/widgets/memory_allocations_test.dart @@ -66,6 +66,15 @@ class _TestElement extends RootRenderObjectElement{ mount(null, null); deactivate(); } + + @override + void insertRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } + + @override + void moveRenderObjectChild(covariant RenderObject child, covariant Object? oldSlot, covariant Object? newSlot) { } + + @override + void removeRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } } class _TestRenderObject extends RenderObject { diff --git a/packages/flutter/test/widgets/render_object_element_test.dart b/packages/flutter/test/widgets/render_object_element_test.dart index a760447392..46cc676f95 100644 --- a/packages/flutter/test/widgets/render_object_element_test.dart +++ b/packages/flutter/test/widgets/render_object_element_test.dart @@ -105,6 +105,15 @@ abstract class SwapperElement extends RenderObjectElement { swapper = updateChild(swapper, widget.swapper, swapperIsOnTop); swapperIsOnTop = !swapperIsOnTop; } + + @override + void insertRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } + + @override + void moveRenderObjectChild(covariant RenderObject child, covariant Object? oldSlot, covariant Object? newSlot) { } + + @override + void removeRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } } class SwapperElementWithProperOverrides extends SwapperElement { @@ -288,26 +297,4 @@ void main() { expect(swapper.removeSlots, contains('stable')); expect(swapper.removeSlots, contains(false)); }); - - testWidgets('RenderObjectElement *ChildRenderObject methods fail with deprecation message', (WidgetTester tester) async { - const Key redKey = ValueKey('red'); - const Key blueKey = ValueKey('blue'); - Widget widget() { - return SwapperWithNoOverrides( - stable: ColoredBox( - key: redKey, - color: Color(nonconst(0xffff0000)), - ), - swapper: ColoredBox( - key: blueKey, - color: Color(nonconst(0xff0000ff)), - ), - ); - } - - await tester.pumpWidget(widget()); - final FlutterError error = tester.takeException() as FlutterError; - final ErrorSummary summary = error.diagnostics.first as ErrorSummary; - expect(summary.toString(), contains('deprecated')); - }); } diff --git a/packages/flutter/test_release/widgets/memory_allocations_test.dart b/packages/flutter/test_release/widgets/memory_allocations_test.dart index 1545b931ba..7ae5790984 100644 --- a/packages/flutter/test_release/widgets/memory_allocations_test.dart +++ b/packages/flutter/test_release/widgets/memory_allocations_test.dart @@ -63,6 +63,15 @@ class _TestElement extends RootRenderObjectElement{ mount(null, null); deactivate(); } + + @override + void insertRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } + + @override + void moveRenderObjectChild(covariant RenderObject child, covariant Object? oldSlot, covariant Object? newSlot) { } + + @override + void removeRenderObjectChild(covariant RenderObject child, covariant Object? slot) { } } class _MyStatefulWidget extends StatefulWidget {