From 4b36d7f76ecf6edd945b6a7a47c9bb85e7d47f50 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Thu, 3 Sep 2015 00:02:26 -0700 Subject: [PATCH] Use null-aware operators in package:sky --- sky/packages/sky/lib/mojo/activity.dart | 2 +- sky/packages/sky/lib/src/rendering/layer.dart | 2 +- sky/packages/sky/lib/src/widgets/basic.dart | 7 ++----- sky/packages/sky/lib/src/widgets/default_text_style.dart | 2 +- sky/packages/sky/lib/src/widgets/framework.dart | 6 +++--- sky/packages/sky/lib/src/widgets/homogeneous_viewport.dart | 2 +- sky/packages/sky/lib/src/widgets/icon.dart | 2 +- sky/packages/sky/lib/src/widgets/scaffold.dart | 2 +- sky/packages/sky/lib/src/widgets/transitions.dart | 4 +--- sky/packages/sky/pubspec.yaml | 2 +- 10 files changed, 13 insertions(+), 18 deletions(-) diff --git a/sky/packages/sky/lib/mojo/activity.dart b/sky/packages/sky/lib/mojo/activity.dart index f1936385b..1e591d0d4 100644 --- a/sky/packages/sky/lib/mojo/activity.dart +++ b/sky/packages/sky/lib/mojo/activity.dart @@ -50,7 +50,7 @@ void updateTaskDescription(String label, Color color) { TaskDescription description = new TaskDescription() ..label = label - ..primaryColor = (color != null ? color.value : null); + ..primaryColor = color?.value; _activityProxy.ptr.setTaskDescription(description); } diff --git a/sky/packages/sky/lib/src/rendering/layer.dart b/sky/packages/sky/lib/src/rendering/layer.dart index adcbe8c44..ea4a7551e 100644 --- a/sky/packages/sky/lib/src/rendering/layer.dart +++ b/sky/packages/sky/lib/src/rendering/layer.dart @@ -242,7 +242,7 @@ class OpacityLayer extends ContainerLayer { int alpha; void addToScene(sky.SceneBuilder builder, Offset layerOffset) { - builder.pushOpacity(alpha, bounds == null ? null : bounds.shift(layerOffset)); + builder.pushOpacity(alpha, bounds?.shift(layerOffset)); addChildrenToScene(builder, offset + layerOffset); builder.pop(); } diff --git a/sky/packages/sky/lib/src/widgets/basic.dart b/sky/packages/sky/lib/src/widgets/basic.dart index 469714474..af6675648 100644 --- a/sky/packages/sky/lib/src/widgets/basic.dart +++ b/sky/packages/sky/lib/src/widgets/basic.dart @@ -487,10 +487,7 @@ class Stack extends MultiChildRenderObjectWrapper { RenderStack get renderObject => super.renderObject; void updateParentData(RenderObject child, Positioned positioned) { - if (positioned == null) - _updateParentDataWithValues(child, null, null, null, null); - else - _updateParentDataWithValues(child, positioned.top, positioned.right, positioned.bottom, positioned.left); + _updateParentDataWithValues(child, positioned?.top, positioned?.right, positioned?.bottom, positioned?.left); } void _updateParentDataWithValues(RenderObject child, double top, double right, double bottom, double left) { @@ -592,7 +589,7 @@ class Flex extends MultiChildRenderObjectWrapper { } void updateParentData(RenderObject child, Flexible flexible) { - _updateParentDataWithValues(child, flexible == null ? null : flexible.flex); + _updateParentDataWithValues(child, flexible?.flex); } void _updateParentDataWithValues(RenderObject child, int flex) { diff --git a/sky/packages/sky/lib/src/widgets/default_text_style.dart b/sky/packages/sky/lib/src/widgets/default_text_style.dart index 4c8b18e63..63399045c 100644 --- a/sky/packages/sky/lib/src/widgets/default_text_style.dart +++ b/sky/packages/sky/lib/src/widgets/default_text_style.dart @@ -21,7 +21,7 @@ class DefaultTextStyle extends Inherited { static TextStyle of(Widget widget) { DefaultTextStyle result = widget.inheritedOfType(DefaultTextStyle); - return result == null ? null : result.style; + return result?.style; } bool syncShouldNotify(DefaultTextStyle old) => style != old.style; diff --git a/sky/packages/sky/lib/src/widgets/framework.dart b/sky/packages/sky/lib/src/widgets/framework.dart index badcf927d..bbd125347 100644 --- a/sky/packages/sky/lib/src/widgets/framework.dart +++ b/sky/packages/sky/lib/src/widgets/framework.dart @@ -498,7 +498,7 @@ abstract class TagNode extends Widget { } void _sync(Widget old, dynamic slot) { - Widget oldChild = old == null ? null : (old as TagNode).child; + Widget oldChild = (old as TagNode)?.child; child = syncChild(child, oldChild, slot); if (child != null) { assert(child.parent == this); @@ -1259,7 +1259,7 @@ abstract class OneChildRenderObjectWrapper extends RenderObjectWrapper { void syncRenderObject(RenderObjectWrapper old) { super.syncRenderObject(old); - Widget oldChild = old == null ? null : (old as OneChildRenderObjectWrapper).child; + Widget oldChild = (old as OneChildRenderObjectWrapper)?.child; Widget newChild = child; _child = syncChild(newChild, oldChild, null); assert((newChild == null && child == null) || (newChild != null && child.parent == this)); @@ -1304,7 +1304,7 @@ abstract class MultiChildRenderObjectWrapper extends RenderObjectWrapper { void insertChildRenderObject(RenderObjectWrapper child, Widget slot) { final renderObject = this.renderObject; // TODO(ianh): Remove this once the analyzer is cleverer - RenderObject nextSibling = slot != null ? slot.renderObject : null; + RenderObject nextSibling = slot?.renderObject; assert(nextSibling == null || nextSibling is RenderObject); assert(renderObject is ContainerRenderObjectMixin); renderObject.add(child.renderObject, before: nextSibling); diff --git a/sky/packages/sky/lib/src/widgets/homogeneous_viewport.dart b/sky/packages/sky/lib/src/widgets/homogeneous_viewport.dart index 9b6765aaa..c6c95e84a 100644 --- a/sky/packages/sky/lib/src/widgets/homogeneous_viewport.dart +++ b/sky/packages/sky/lib/src/widgets/homogeneous_viewport.dart @@ -65,7 +65,7 @@ class HomogeneousViewport extends RenderObjectWrapper { } void insertChildRenderObject(RenderObjectWrapper child, Widget slot) { - RenderObject nextSibling = slot != null ? slot.renderObject : null; + RenderObject nextSibling = slot?.renderObject; renderObject.add(child.renderObject, before: nextSibling); } diff --git a/sky/packages/sky/lib/src/widgets/icon.dart b/sky/packages/sky/lib/src/widgets/icon.dart index 495bd0120..7aafe22cb 100644 --- a/sky/packages/sky/lib/src/widgets/icon.dart +++ b/sky/packages/sky/lib/src/widgets/icon.dart @@ -31,7 +31,7 @@ class IconTheme extends Inherited { static IconThemeData of(Component component) { IconTheme result = component.inheritedOfType(IconTheme); - return result == null ? null : result.data; + return result?.data; } bool syncShouldNotify(IconTheme old) => data != old.data; diff --git a/sky/packages/sky/lib/src/widgets/scaffold.dart b/sky/packages/sky/lib/src/widgets/scaffold.dart index dc1928e4c..ed3c29c2c 100644 --- a/sky/packages/sky/lib/src/widgets/scaffold.dart +++ b/sky/packages/sky/lib/src/widgets/scaffold.dart @@ -208,7 +208,7 @@ class Scaffold extends RenderObjectWrapper { } void insertChildRenderObject(RenderObjectWrapper child, ScaffoldSlots slot) { - renderObject[slot] = child != null ? child.renderObject : null; + renderObject[slot] = child?.renderObject; } void detachChildRenderObject(RenderObjectWrapper child) { diff --git a/sky/packages/sky/lib/src/widgets/transitions.dart b/sky/packages/sky/lib/src/widgets/transitions.dart index 2a23e0504..d94a6b721 100644 --- a/sky/packages/sky/lib/src/widgets/transitions.dart +++ b/sky/packages/sky/lib/src/widgets/transitions.dart @@ -11,8 +11,6 @@ import 'package:vector_math/vector_math.dart'; export 'package:sky/animation/direction.dart' show Direction; -dynamic _maybe(AnimatedValue x) => x != null ? x.value : null; - // A helper class to anchor widgets to one another. Pass an instance of this to // a Transition, then use the build() method to create a child with the same // transition applied. @@ -270,7 +268,7 @@ class SquashTransition extends TransitionBase { performance.updateVariable(width); if (height != null) performance.updateVariable(height); - return new SizedBox(width: _maybe(width), height: _maybe(height), child: child); + return new SizedBox(width: width?.value, height: height?.value, child: child); } } diff --git a/sky/packages/sky/pubspec.yaml b/sky/packages/sky/pubspec.yaml index 72011469f..cc50dc49e 100644 --- a/sky/packages/sky/pubspec.yaml +++ b/sky/packages/sky/pubspec.yaml @@ -15,4 +15,4 @@ dependencies: vector_math: ^1.4.3 intl: ^0.12.4+2 environment: - sdk: '>=1.8.0 <2.0.0' + sdk: '>=1.12.0 <2.0.0'