mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Remove workarounds now that type promotion accounts for local boolean variables. (flutter/engine#23862)
This change removes workarounds that were introduced prior to landing Dart language feature https://github.com/dart-lang/language/issues/1274, which allows type promotion in null safe code to account for local boolean variables. The workarounds ensured that the code would analyze the same regardless of whether the feature was enabled, allowing for a smoother transition. Now that the feature has fully landed, the workarounds aren't needed anymore.
This commit is contained in:
parent
0de14304b2
commit
cc660d930d
@ -1092,17 +1092,7 @@ abstract class PersistedContainerSurface extends PersistedSurface {
|
||||
for (int indexInOld = 0; indexInOld < oldChildCount; indexInOld += 1) {
|
||||
final PersistedSurface? oldChild = oldChildren[indexInOld];
|
||||
final bool childAlreadyClaimed = oldChild == null;
|
||||
// After https://github.com/dart-lang/language/issues/1274 is
|
||||
// implemented, `oldChild` will be promoted to non-nullable on the RHS
|
||||
// of the `||`, so we won't need to null check it (and it will cause a
|
||||
// build failure to try to do so). Until then, we need to null check it
|
||||
// in such a way that won't cause a build failure once the feature is
|
||||
// implemented. We can do that by casting to `dynamic`, and then
|
||||
// relying on the call to `canUpdateAsMatch` implicitly downcasting to
|
||||
// PersistentSurface.
|
||||
// TODO(paulberry): remove this workaround once the feature is
|
||||
// implemented.
|
||||
if (childAlreadyClaimed || !newChild.canUpdateAsMatch(oldChild as dynamic)) {
|
||||
if (childAlreadyClaimed || !newChild.canUpdateAsMatch(oldChild)) {
|
||||
continue;
|
||||
}
|
||||
allMatches.add(_PersistedSurfaceMatch(
|
||||
|
||||
@ -875,16 +875,6 @@ class SemanticsObject {
|
||||
effectiveTransformIsIdentity = effectiveTransform.isIdentity();
|
||||
}
|
||||
} else if (!hasIdentityTransform) {
|
||||
// After https://github.com/dart-lang/language/issues/1274 is implemented,
|
||||
// `transform` will be promoted to non-nullable so we won't need to null
|
||||
// check it (and it will cause a build failure to try to do so). Until
|
||||
// then, we need to null check it in such a way that won't cause a build
|
||||
// failure once the feature is implemented. We can do that using an
|
||||
// explicit "if" test.
|
||||
// TODO(paulberry): remove this check once the feature is implemented.
|
||||
if (transform == null) { // ignore: unnecessary_null_comparison
|
||||
throw 'impossible';
|
||||
}
|
||||
effectiveTransform = Matrix4.fromFloat32List(transform);
|
||||
effectiveTransformIsIdentity = false;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user