super_editor
super_editor copied to clipboard
[BUG] - [DemoApp] Toggling debug info crashes the editor
Package Version Latest main
To Reproduce Steps to reproduce the behavior:
- Run the example app
- Click on the debug visuals toggle
Actual behavior The editor crashes with the following exception:
Restarted application in 333ms.
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown building AnimatedBuilder(listenable: ValueNotifier<TextInputConnection?>#99375(null), state: _AnimatedState#b3bd8):
A RenderViewport expected a child of type RenderSliver but received a child of type RenderStack.
RenderObjects expect specific types of children because they coordinate with their children during layout and paint. For example, a RenderSliver cannot be the child of a RenderBox because a RenderSliver does not understand the RenderBox layout protocol.
The RenderViewport that expected a RenderSliver child was created by: Viewport ← IgnorePointer-[GlobalKey#552d6] ← Semantics ← Listener ← _GestureSemantics ← RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#66afa] ← Listener ← _ScrollableScope ← _ScrollSemantics-[GlobalKey#7f3c6] ← NotificationListener<ScrollMetricsNotification> ← Scrollable ← CustomScrollView ← ⋯
The RenderStack that did not match the expected child type was created by: Stack ← AnimatedBuilder ← SuperEditorImeDebugVisuals ← SuperEditorImeInteractor ← Viewport ← IgnorePointer-[GlobalKey#552d6] ← Semantics ← Listener ← _GestureSemantics ← RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#66afa] ← Listener ← _ScrollableScope ← ⋯
The relevant error-causing widget was:
AnimatedBuilder AnimatedBuilder:file:///Users/angelosilvestre/dev/super_editor/super_editor/lib/src/default_editor/debug_visualization.dart:108:12
When the exception was thrown, this was the stack:
#0 ContainerRenderObjectMixin.debugValidateChild.<anonymous closure> (package:flutter/src/rendering/object.dart:4239:9)
#1 ContainerRenderObjectMixin.debugValidateChild (package:flutter/src/rendering/object.dart:4266:6)
#2 MultiChildRenderObjectElement.insertRenderObjectChild (package:flutter/src/widgets/framework.dart:6973:25)
#3 _ViewportElement.insertRenderObjectChild (package:flutter/src/widgets/viewport.dart:266:11)
#4 RenderObjectElement.attachRenderObject (package:flutter/src/widgets/framework.dart:6732:35)
#5 RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6597:5)
#6 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7042:11)
... Normal element mounting (23 frames)
#29 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468:16)
#30 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7035:36)
#31 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7047:32)
#32 _ViewportElement.mount (package:flutter/src/widgets/viewport.dart:225:11)
... Normal element mounting (114 frames)
#146 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468:16)
#147 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7035:36)
#148 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7047:32)
... Normal element mounting (36 frames)
#184 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4468:16)
#185 Element.updateChild (package:flutter/src/widgets/framework.dart:3957:20)
#186 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#187 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#188 StatelessElement.update (package:flutter/src/widgets/framework.dart:5693:5)
#189 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#190 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#191 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#192 StatelessElement.update (package:flutter/src/widgets/framework.dart:5693:5)
#193 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#194 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#195 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780:11)
#196 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#197 StatefulElement.update (package:flutter/src/widgets/framework.dart:5803:5)
#198 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#199 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#200 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#201 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#202 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#203 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#204 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#205 StatelessElement.update (package:flutter/src/widgets/framework.dart:5693:5)
#206 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#207 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#208 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#209 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#210 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#211 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6907:14)
#212 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#213 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#214 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#215 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#216 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#217 Element.updateChildren (package:flutter/src/widgets/framework.dart:4090:32)
#218 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7060:17)
#219 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#220 Element.updateChildren (package:flutter/src/widgets/framework.dart:4090:32)
#221 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:7060:17)
#222 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#223 _OverlayPortalElement.update (package:flutter/src/widgets/overlay.dart:2091:14)
#224 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#225 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#226 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780:11)
#227 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#228 StatefulElement.update (package:flutter/src/widgets/framework.dart:5803:5)
#229 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#230 _OverlayPortalElement.update (package:flutter/src/widgets/overlay.dart:2091:14)
#231 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#232 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#233 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780:11)
#234 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#235 StatefulElement.update (package:flutter/src/widgets/framework.dart:5803:5)
#236 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#237 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#238 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#239 StatelessElement.update (package:flutter/src/widgets/framework.dart:5693:5)
#240 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#241 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#242 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#243 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#244 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#245 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#246 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#247 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#248 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#249 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#250 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#251 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#252 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#253 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#254 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#255 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#256 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#257 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#258 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#259 StatelessElement.update (package:flutter/src/widgets/framework.dart:5693:5)
#260 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#261 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#262 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#263 ProxyElement.update (package:flutter/src/widgets/framework.dart:5946:5)
#264 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#265 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#266 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#267 StatelessElement.update (package:flutter/src/widgets/framework.dart:5693:5)
#268 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#269 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#270 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780:11)
#271 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#272 StatefulElement.update (package:flutter/src/widgets/framework.dart:5803:5)
#273 Element.updateChild (package:flutter/src/widgets/framework.dart:3941:15)
#274 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5642:16)
#275 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5780:11)
#276 Element.rebuild (package:flutter/src/widgets/framework.dart:5333:7)
#277 BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2693:15)
#278 BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2752:11)
#279 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3048:18)
#280 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1162:21)
#281 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468:5)
#282 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397:15)
#283 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318:9)
#284 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1176:5)
#285 _invoke (dart:ui/hooks.dart:312:13)
#286 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:419:5)
#287 _drawFrame (dart:ui/hooks.dart:283:31)
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by widgets library ═══════════════════════════════════
A RenderViewport expected a child of type RenderSliver but received a child of type RenderErrorBox.
The relevant error-causing widget was:
SuperEditorImeDebugVisuals SuperEditorImeDebugVisuals:file:///Users/angelosilvestre/dev/super_editor/super_editor/lib/src/default_editor/document_ime/supereditor_ime_interactor.dart:479:12
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by widgets library ═══════════════════════════════════
A RenderViewport expected a child of type RenderSliver but received a child of type RenderErrorBox.
The relevant error-causing widget was:
SuperEditorImeInteractor SuperEditorImeInteractor:file:///Users/angelosilvestre/dev/super_editor/super_editor/lib/src/default_editor/super_editor.dart:749:16
════════════════════════════════════════════════════════════════════════════════
════════ Exception caught by widgets library ═══════════════════════════════════
A RenderViewport expected a child of type RenderSliver but received a child of type RenderErrorBox.
The relevant error-causing widget was:
CustomScrollView CustomScrollView:file:///Users/angelosilvestre/dev/super_editor/super_editor/lib/src/default_editor/document_scrollable.dart:212:16
════════════════════════════════════════════════════════════════════════════════
Expected behavior The editor shouldn't crash
Platform macOS
Flutter version 3.24.0 • channel stable
@matthew-carroll
FYI @knopp because I see some reference to slivers in here, so it might be related to your sliver work.
Seems like it would be. I'll take a look first thing tomorrow.