diff --git a/packages/flutter/lib/src/gestures/hit_test.dart b/packages/flutter/lib/src/gestures/hit_test.dart index 5a818d2e93..94994fbdcf 100644 --- a/packages/flutter/lib/src/gestures/hit_test.dart +++ b/packages/flutter/lib/src/gestures/hit_test.dart @@ -38,19 +38,20 @@ abstract class HitTestTarget { HitTestTarget._(); /// Override this method to receive events. - void handleEvent(PointerEvent event, HitTestEntry entry); + void handleEvent(PointerEvent event, HitTestEntry entry); } /// Data collected during a hit test about a specific [HitTestTarget]. /// /// Subclass this object to pass additional information from the hit test phase /// to the event propagation phase. -class HitTestEntry { +@optionalTypeArgs +class HitTestEntry { /// Creates a hit test entry. HitTestEntry(this.target); /// The [HitTestTarget] encountered during the hit test. - final HitTestTarget target; + final T target; @override String toString() => '${describeIdentity(this)}($target)'; diff --git a/packages/flutter/lib/src/rendering/box.dart b/packages/flutter/lib/src/rendering/box.dart index 165e81281f..68ca72a75e 100644 --- a/packages/flutter/lib/src/rendering/box.dart +++ b/packages/flutter/lib/src/rendering/box.dart @@ -886,7 +886,7 @@ class BoxHitTestResult extends HitTestResult { } /// A hit test entry used by [RenderBox]. -class BoxHitTestEntry extends HitTestEntry { +class BoxHitTestEntry extends HitTestEntry { /// Creates a box hit test entry. /// /// The [localPosition] argument must not be null. @@ -894,9 +894,6 @@ class BoxHitTestEntry extends HitTestEntry { : assert(localPosition != null), super(target); - @override - RenderBox get target => super.target as RenderBox; - /// The position of the hit test in the local coordinates of [target]. final Offset localPosition; diff --git a/packages/flutter/lib/src/rendering/mouse_tracker.dart b/packages/flutter/lib/src/rendering/mouse_tracker.dart index f8c6c85ff0..0e2234107e 100644 --- a/packages/flutter/lib/src/rendering/mouse_tracker.dart +++ b/packages/flutter/lib/src/rendering/mouse_tracker.dart @@ -238,8 +238,9 @@ class MouseTracker extends ChangeNotifier { assert(result != null); final LinkedHashMap annotations = LinkedHashMap(); for (final HitTestEntry entry in result.path) { - if (entry.target is MouseTrackerAnnotation) { - annotations[entry.target as MouseTrackerAnnotation] = entry.transform!; + final Object target = entry.target; + if (target is MouseTrackerAnnotation) { + annotations[target] = entry.transform!; } } return annotations; diff --git a/packages/flutter/lib/src/rendering/sliver.dart b/packages/flutter/lib/src/rendering/sliver.dart index 1fa9de85bf..219c2c1731 100644 --- a/packages/flutter/lib/src/rendering/sliver.dart +++ b/packages/flutter/lib/src/rendering/sliver.dart @@ -870,7 +870,7 @@ class SliverHitTestResult extends HitTestResult { /// /// The coordinate system used by this hit test entry is relative to the /// [AxisDirection] of the target sliver. -class SliverHitTestEntry extends HitTestEntry { +class SliverHitTestEntry extends HitTestEntry { /// Creates a sliver hit test entry. /// /// The [mainAxisPosition] and [crossAxisPosition] arguments must not be null. @@ -882,9 +882,6 @@ class SliverHitTestEntry extends HitTestEntry { assert(crossAxisPosition != null), super(target); - @override - RenderSliver get target => super.target as RenderSliver; - /// The distance in the [AxisDirection] from the edge of the sliver's painted /// area (as given by the [SliverConstraints.scrollOffset]) to the hit point. /// This can be an unusual direction, for example in the [AxisDirection.up] diff --git a/packages/flutter/test/rendering/mouse_tracker_test_utils.dart b/packages/flutter/test/rendering/mouse_tracker_test_utils.dart index 87922790a9..5fcab8606a 100644 --- a/packages/flutter/test/rendering/mouse_tracker_test_utils.dart +++ b/packages/flutter/test/rendering/mouse_tracker_test_utils.dart @@ -96,7 +96,7 @@ class TestAnnotationTarget with Diagnosticable implements MouseTrackerAnnotation // A hit test entry that can be assigned with a [TestAnnotationTarget] and an // optional transform matrix. -class TestAnnotationEntry extends HitTestEntry { +class TestAnnotationEntry extends HitTestEntry { TestAnnotationEntry(TestAnnotationTarget target, [Matrix4? transform]) : transform = transform ?? Matrix4.identity(), super(target);