Unverified Commit 6b9d3ea4 authored by Greg Price's avatar Greg Price Committed by GitHub

Fill in SliverConstraints fields missing from ==, hashCode, toString (#143661)

I was doing some debugging on a RenderSliver subclass, and found
that SliverConstraints.toString was missing the precedingScrollExtent
field.

Add that, and add both that field and userScrollDirection to the
`==` and hashCode implementations, which had been skipping them,
so that all three methods now handle all the class's fields.
parent a431dee5
......@@ -556,7 +556,9 @@ class SliverConstraints extends Constraints {
assert(other.debugAssertIsValid());
return other.axisDirection == axisDirection
&& other.growthDirection == growthDirection
&& other.userScrollDirection == userScrollDirection
&& other.scrollOffset == scrollOffset
&& other.precedingScrollExtent == precedingScrollExtent
&& other.overlap == overlap
&& other.remainingPaintExtent == remainingPaintExtent
&& other.crossAxisExtent == crossAxisExtent
......@@ -570,7 +572,9 @@ class SliverConstraints extends Constraints {
int get hashCode => Object.hash(
axisDirection,
growthDirection,
userScrollDirection,
scrollOffset,
precedingScrollExtent,
overlap,
remainingPaintExtent,
crossAxisExtent,
......@@ -587,6 +591,7 @@ class SliverConstraints extends Constraints {
'$growthDirection',
'$userScrollDirection',
'scrollOffset: ${scrollOffset.toStringAsFixed(1)}',
'precedingScrollExtent: ${precedingScrollExtent.toStringAsFixed(1)}',
'remainingPaintExtent: ${remainingPaintExtent.toStringAsFixed(1)}',
if (overlap != 0.0) 'overlap: ${overlap.toStringAsFixed(1)}',
'crossAxisExtent: ${crossAxisExtent.toStringAsFixed(1)}',
......
......@@ -90,10 +90,10 @@ void main() {
' │ │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ 0.0, precedingScrollExtent: 0.0, remainingPaintExtent: 600.0,\n'
' │ │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ │ remainingCacheExtent: 850.0, cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, paintExtent: 400.0,\n'
' │ │ maxPaintExtent: 400.0, cacheExtent: 400.0)\n'
' │ │\n'
......@@ -106,10 +106,10 @@ void main() {
' │ │ parentData: paintOffset=Offset(0.0, 400.0) (can use size)\n'
' │ │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 200.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 450.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ 0.0, precedingScrollExtent: 400.0, remainingPaintExtent: 200.0,\n'
' │ │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ │ remainingCacheExtent: 450.0, cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, paintExtent: 200.0,\n'
' │ │ maxPaintExtent: 400.0, hasVisualOverflow: true, cacheExtent:\n'
' │ │ 400.0)\n'
......@@ -123,10 +123,10 @@ void main() {
' │ │ parentData: paintOffset=Offset(0.0, 800.0) (can use size)\n'
' │ │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 0.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 50.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ 0.0, precedingScrollExtent: 800.0, remainingPaintExtent: 0.0,\n'
' │ │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ │ remainingCacheExtent: 50.0, cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, hidden,\n'
' │ │ maxPaintExtent: 400.0, hasVisualOverflow: true, cacheExtent:\n'
' │ │ 50.0)\n'
......@@ -140,10 +140,10 @@ void main() {
' │ │ parentData: paintOffset=Offset(0.0, 1200.0) (can use size)\n'
' │ │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ │ 0.0, remainingPaintExtent: 0.0, crossAxisExtent: 800.0,\n'
' │ │ crossAxisDirection: AxisDirection.right,\n'
' │ │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 0.0,\n'
' │ │ cacheOrigin: 0.0)\n'
' │ │ 0.0, precedingScrollExtent: 1200.0, remainingPaintExtent: 0.0,\n'
' │ │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ │ remainingCacheExtent: 0.0, cacheOrigin: 0.0)\n'
' │ │ geometry: SliverGeometry(scrollExtent: 400.0, hidden,\n'
' │ │ maxPaintExtent: 400.0, hasVisualOverflow: true)\n'
' │ │\n'
......@@ -156,10 +156,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 1600.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 0.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 0.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ 0.0, precedingScrollExtent: 1600.0, remainingPaintExtent: 0.0,\n'
' │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 0.0, cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 400.0, hidden,\n'
' │ maxPaintExtent: 400.0, hasVisualOverflow: true)\n'
' │\n'
......@@ -977,7 +977,7 @@ void main() {
' The "precedingScrollExtent" is NaN, expected greater than or equal to zero.\n'
' The constraints are not normalized.\n'
'The offending constraints were:\n'
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: NaN, remainingPaintExtent: NaN, overlap: NaN, crossAxisExtent: NaN, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: NaN, remainingCacheExtent: NaN, cacheOrigin: NaN)',
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: NaN, precedingScrollExtent: NaN, remainingPaintExtent: NaN, overlap: NaN, crossAxisExtent: NaN, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: NaN, remainingCacheExtent: NaN, cacheOrigin: NaN)',
);
threw = true;
}
......@@ -1013,7 +1013,7 @@ void main() {
' The "precedingScrollExtent" is negative.\n'
' The constraints are not normalized.\n'
'The offending constraints were:\n'
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: -1.0, remainingPaintExtent: -1.0, crossAxisExtent: 0.0, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: 0.0, remainingCacheExtent: -1.0, cacheOrigin: 1.0)',
' SliverConstraints(AxisDirection.down, GrowthDirection.forward, ScrollDirection.idle, scrollOffset: -1.0, precedingScrollExtent: -1.0, remainingPaintExtent: -1.0, crossAxisExtent: 0.0, crossAxisDirection: AxisDirection.left, viewportMainAxisExtent: 0.0, remainingCacheExtent: -1.0, cacheOrigin: 1.0)',
);
threw = true;
}
......
......@@ -316,10 +316,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ 0.0, precedingScrollExtent: 0.0, remainingPaintExtent: 600.0,\n'
' │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 850.0, cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 40000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 40000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 850.0)\n'
......@@ -330,10 +330,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ 0.0, precedingScrollExtent: 0.0, remainingPaintExtent: 600.0,\n'
' │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 850.0, cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 40000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 40000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 850.0)\n'
......@@ -491,10 +491,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 2000.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 1100.0,\n'
' │ cacheOrigin: -250.0)\n'
' │ 2000.0, precedingScrollExtent: 0.0, remainingPaintExtent:\n'
' │ 600.0, crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 1100.0, cacheOrigin: -250.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 40000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 40000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 1100.0)\n'
......@@ -505,10 +505,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 2000.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 1100.0,\n'
' │ cacheOrigin: -250.0)\n'
' │ 2000.0, precedingScrollExtent: 0.0, remainingPaintExtent:\n'
' │ 600.0, crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 1100.0, cacheOrigin: -250.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 40000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 40000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 1100.0)\n'
......
......@@ -336,10 +336,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ 0.0, precedingScrollExtent: 0.0, remainingPaintExtent: 600.0,\n'
' │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 850.0, cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 300.0, paintExtent: 300.0,\n'
' │ maxPaintExtent: 300.0, cacheExtent: 300.0)\n'
' │ currently live children: 0 to 2\n'
......
......@@ -70,10 +70,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ 0.0, precedingScrollExtent: 0.0, remainingPaintExtent: 600.0,\n'
' │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 850.0, cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 12000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 12000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 850.0)\n'
......@@ -83,10 +83,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ 0.0, precedingScrollExtent: 0.0, remainingPaintExtent: 600.0,\n'
' │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 850.0, cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 12000.0, paintExtent:\n'
' │ 600.0, maxPaintExtent: 12000.0, hasVisualOverflow: true,\n'
' │ cacheExtent: 850.0)\n'
......
......@@ -88,10 +88,10 @@ void main() {
' │ parentData: paintOffset=Offset(0.0, 0.0) (can use size)\n'
' │ constraints: SliverConstraints(AxisDirection.down,\n'
' │ GrowthDirection.forward, ScrollDirection.idle, scrollOffset:\n'
' │ 0.0, remainingPaintExtent: 600.0, crossAxisExtent: 800.0,\n'
' │ crossAxisDirection: AxisDirection.right,\n'
' │ viewportMainAxisExtent: 600.0, remainingCacheExtent: 850.0,\n'
' │ cacheOrigin: 0.0)\n'
' │ 0.0, precedingScrollExtent: 0.0, remainingPaintExtent: 600.0,\n'
' │ crossAxisExtent: 800.0, crossAxisDirection:\n'
' │ AxisDirection.right, viewportMainAxisExtent: 600.0,\n'
' │ remainingCacheExtent: 850.0, cacheOrigin: 0.0)\n'
' │ geometry: SliverGeometry(scrollExtent: 200.0, paintExtent: 200.0,\n'
' │ maxPaintExtent: 200.0, hasVisualOverflow: true, cacheExtent:\n'
' │ 200.0)\n'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment