diff --git a/packages/flutter/lib/src/rendering/layer.dart b/packages/flutter/lib/src/rendering/layer.dart index 07327103ff..e41b6c0a50 100644 --- a/packages/flutter/lib/src/rendering/layer.dart +++ b/packages/flutter/lib/src/rendering/layer.dart @@ -524,10 +524,12 @@ class ContainerLayer extends Layer { 'for more details.'), library: 'rendering library', context: ErrorDescription('during compositing'), - informationCollector: () sync* { - yield child.toDiagnosticsNode(name: 'Attempted to composite layer', style: DiagnosticsTreeStyle.errorProperty); - yield predecessor.toDiagnosticsNode(name: 'after layer', style: DiagnosticsTreeStyle.errorProperty); - yield ErrorDescription('which occupies the same area at a higher elevation.'); + informationCollector: () { + return [ + child.toDiagnosticsNode(name: 'Attempted to composite layer', style: DiagnosticsTreeStyle.errorProperty), + predecessor.toDiagnosticsNode(name: 'after layer', style: DiagnosticsTreeStyle.errorProperty), + ErrorDescription('which occupies the same area at a higher elevation.'), + ]; } )); return [ @@ -615,16 +617,18 @@ class ContainerLayer extends Layer { } @override - Iterable findAll(Offset regionOffset) sync* { + Iterable findAll(Offset regionOffset) { + Iterable result = Iterable.empty(); if (firstChild == null) - return; + return result; Layer child = lastChild; while (true) { - yield* child.findAll(regionOffset); + result = result.followedBy(child.findAll(regionOffset)); if (child == firstChild) break; child = child.previousSibling; } + return result; } @override @@ -1006,10 +1010,10 @@ class ClipRectLayer extends ContainerLayer { } @override - Iterable findAll(Offset regionOffset) sync* { + Iterable findAll(Offset regionOffset) { if (!clipRect.contains(regionOffset)) - return; - yield* super.findAll(regionOffset); + return Iterable.empty(); + return super.findAll(regionOffset); } @override @@ -1087,10 +1091,10 @@ class ClipRRectLayer extends ContainerLayer { } @override - Iterable findAll(Offset regionOffset) sync* { + Iterable findAll(Offset regionOffset) { if (!clipRRect.contains(regionOffset)) - return; - yield* super.findAll(regionOffset); + return Iterable.empty(); + return super.findAll(regionOffset); } @override @@ -1168,10 +1172,10 @@ class ClipPathLayer extends ContainerLayer { } @override - Iterable findAll(Offset regionOffset) sync* { + Iterable findAll(Offset regionOffset) { if (!clipPath.contains(regionOffset)) - return; - yield* super.findAll(regionOffset); + return Iterable.empty(); + return super.findAll(regionOffset); } @override @@ -1264,12 +1268,12 @@ class TransformLayer extends OffsetLayer { } @override - Iterable findAll(Offset regionOffset) sync* { + Iterable findAll(Offset regionOffset) { final Offset transformedOffset = _transformOffset(regionOffset); if (transformedOffset == null) { - return; + return Iterable.empty(); } - yield* super.findAll(transformedOffset); + return super.findAll(transformedOffset); } @override @@ -1582,10 +1586,10 @@ class PhysicalModelLayer extends ContainerLayer { } @override - Iterable findAll(Offset regionOffset) sync* { + Iterable findAll(Offset regionOffset) { if (!clipPath.contains(regionOffset)) - return; - yield* super.findAll(regionOffset); + return Iterable.empty(); + return super.findAll(regionOffset); } @override @@ -2031,20 +2035,21 @@ class AnnotatedRegionLayer extends ContainerLayer { final S typedResult = untypedResult; return typedResult; } - return super.find(regionOffset); + return null; } @override - Iterable findAll(Offset regionOffset) sync* { - yield* super.findAll(regionOffset); + Iterable findAll(Offset regionOffset) { + final Iterable childResults = super.findAll(regionOffset); if (size != null && !(offset & size).contains(regionOffset)) { - return; + return childResults; } if (T == S) { final Object untypedResult = value; final S typedResult = untypedResult; - yield typedResult; + return childResults.followedBy([typedResult]); } + return childResults; } @override