From aac018974fcaa5e22603baf49bd33e85cc9e8ae5 Mon Sep 17 00:00:00 2001 From: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com> Date: Tue, 8 Aug 2023 21:43:57 -0700 Subject: [PATCH] Use pattern matching to avoid strange type annotations (#131964) Addresses https://github.com/flutter/flutter/pull/131640#discussion_r1284861384 --- packages/flutter/lib/src/rendering/editable.dart | 10 ++++------ packages/flutter/lib/src/rendering/paragraph.dart | 11 ++++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/flutter/lib/src/rendering/editable.dart b/packages/flutter/lib/src/rendering/editable.dart index 7952912b1b4bb..779e38371f3cf 100644 --- a/packages/flutter/lib/src/rendering/editable.dart +++ b/packages/flutter/lib/src/rendering/editable.dart @@ -1918,15 +1918,13 @@ class RenderEditable extends RenderBox with RelayoutWhenSystemFontsChangeMixin, bool hitTestChildren(BoxHitTestResult result, { required Offset position }) { final Offset effectivePosition = position - _paintOffset; final InlineSpan? textSpan = _textPainter.text; - if (textSpan != null) { - final TextPosition textPosition = _textPainter.getPositionForOffset(effectivePosition); - final Object? span = textSpan.getSpanForPosition(textPosition); - if (span is HitTestTarget) { + switch (textSpan?.getSpanForPosition(_textPainter.getPositionForOffset(effectivePosition))) { + case final HitTestTarget span: result.add(HitTestEntry(span)); return true; - } + case _: + return hitTestInlineChildren(result, effectivePosition); } - return hitTestInlineChildren(result, effectivePosition); } late TapGestureRecognizer _tap; diff --git a/packages/flutter/lib/src/rendering/paragraph.dart b/packages/flutter/lib/src/rendering/paragraph.dart index d53720c869bf9..345bc75c340ca 100644 --- a/packages/flutter/lib/src/rendering/paragraph.dart +++ b/packages/flutter/lib/src/rendering/paragraph.dart @@ -725,12 +725,13 @@ class RenderParagraph extends RenderBox with ContainerRenderObjectMixin