Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(729)

Unified Diff: sky/sdk/lib/framework/fn2.dart

Issue 1177483004: Change how we narrow the "root" type on RenderObjectWrappers. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/sdk/lib/framework/components2/scaffold.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/sdk/lib/framework/fn2.dart
diff --git a/sky/sdk/lib/framework/fn2.dart b/sky/sdk/lib/framework/fn2.dart
index a0d5efec57a4177b6fb2d3c42261dbe41e5857bc..9c756c9a3a2fe256784c98bdc892da2d2d6b4397 100644
--- a/sky/sdk/lib/framework/fn2.dart
+++ b/sky/sdk/lib/framework/fn2.dart
@@ -84,7 +84,8 @@ abstract class UINode {
void didMount() { }
void didUnmount() { }
- RenderObject root;
+ RenderObject _root;
+ RenderObject get root => _root;
// Subclasses which implements Nodes that become stateful may return true
// if the |old| node has become stateful and should be retained.
@@ -99,7 +100,7 @@ abstract class UINode {
// where to put this descendant
void remove() {
- root = null;
+ _root = null;
setParent(null);
}
@@ -167,7 +168,8 @@ abstract class TagNode extends UINode {
UINode oldContent = old == null ? null : (old as TagNode).content;
content = syncChild(content, oldContent, slot);
assert(content.root != null);
- root = content.root;
+ _root = content.root;
+ assert(_root == root); // in case a subclass reintroduces it
}
void remove() {
@@ -298,16 +300,16 @@ abstract class RenderObjectWrapper extends UINode {
void _sync(UINode old, dynamic slot) {
assert(parent != null);
if (old == null) {
- root = createNode();
- assert(root != null);
+ _root = createNode();
var ancestor = findAncestor(RenderObjectWrapper);
if (ancestor is RenderObjectWrapper)
ancestor.insert(this, slot);
} else {
- root = old.root;
+ _root = old.root;
}
- assert(mounted);
+ assert(_root == root); // in case a subclass reintroduces it
assert(root != null);
+ assert(mounted);
_nodeMap[root] = this;
syncRenderObject(old);
}
@@ -381,7 +383,7 @@ class Clip extends OneChildRenderObjectWrapper {
Clip({ UINode child, Object key })
: super(child: child, key: key);
- RenderClip root;
+ RenderClip get root => super.root as RenderClip;
RenderClip createNode() => new RenderClip();
}
@@ -391,7 +393,7 @@ class Padding extends OneChildRenderObjectWrapper {
Padding({ this.padding, UINode child, Object key })
: super(child: child, key: key);
- RenderPadding root;
+ RenderPadding get root => super.root as RenderPadding;
final EdgeDims padding;
RenderPadding createNode() => new RenderPadding(padding: padding);
@@ -408,7 +410,7 @@ class DecoratedBox extends OneChildRenderObjectWrapper {
DecoratedBox({ this.decoration, UINode child, Object key })
: super(child: child, key: key);
- RenderDecoratedBox root;
+ RenderDecoratedBox get root => super.root as RenderDecoratedBox;
final BoxDecoration decoration;
RenderDecoratedBox createNode() => new RenderDecoratedBox(decoration: decoration);
@@ -429,7 +431,7 @@ class SizedBox extends OneChildRenderObjectWrapper {
Object key
}) : desiredSize = new Size(width, height), super(child: child, key: key);
- RenderSizedBox root;
+ RenderSizedBox get root => super.root as RenderSizedBox;
final Size desiredSize;
RenderSizedBox createNode() => new RenderSizedBox(desiredSize: desiredSize);
@@ -446,7 +448,7 @@ class ConstrainedBox extends OneChildRenderObjectWrapper {
ConstrainedBox({ this.constraints, UINode child, Object key })
: super(child: child, key: key);
- RenderConstrainedBox root;
+ RenderConstrainedBox get root => super.root as RenderConstrainedBox;
final BoxConstraints constraints;
RenderConstrainedBox createNode() => new RenderConstrainedBox(additionalConstraints: constraints);
@@ -462,7 +464,7 @@ class ShrinkWrapWidth extends OneChildRenderObjectWrapper {
ShrinkWrapWidth({ UINode child, Object key }) : super(child: child, key: key);
- RenderShrinkWrapWidth root;
+ RenderShrinkWrapWidth get root => super.root as RenderShrinkWrapWidth;
RenderShrinkWrapWidth createNode() => new RenderShrinkWrapWidth();
@@ -473,7 +475,7 @@ class Transform extends OneChildRenderObjectWrapper {
Transform({ this.transform, UINode child, Object key })
: super(child: child, key: key);
- RenderTransform root;
+ RenderTransform get root => super.root as RenderTransform;
final Matrix4 transform;
RenderTransform createNode() => new RenderTransform(transform: transform);
@@ -490,7 +492,7 @@ class SizeObserver extends OneChildRenderObjectWrapper {
SizeObserver({ this.callback, UINode child, Object key })
: super(child: child, key: key);
- RenderSizeObserver root;
+ RenderSizeObserver get root => super.root as RenderSizeObserver;
final SizeChangedCallback callback;
RenderSizeObserver createNode() => new RenderSizeObserver(callback: callback);
@@ -513,7 +515,7 @@ class CustomPaint extends OneChildRenderObjectWrapper {
CustomPaint({ this.callback, UINode child, Object key })
: super(child: child, key: key);
- RenderCustomPaint root;
+ RenderCustomPaint get root => super.root as RenderCustomPaint;
final CustomPaintCallback callback;
RenderCustomPaint createNode() => new RenderCustomPaint(callback: callback);
@@ -720,7 +722,7 @@ class BlockContainer extends MultiChildRenderObjectWrapper {
BlockContainer({ Object key, List<UINode> children })
: super(key: key, children: children);
- RenderBlock root;
+ RenderBlock get root => super.root as RenderBlock;
RenderBlock createNode() => new RenderBlock();
}
@@ -730,7 +732,7 @@ class StackContainer extends MultiChildRenderObjectWrapper {
StackContainer({ Object key, List<UINode> children })
: super(key: key, children: children);
- RenderStack root;
+ RenderStack get root => super.root as RenderStack;
RenderStack createNode() => new RenderStack();
}
@@ -748,7 +750,7 @@ class Paragraph extends RenderObjectWrapper {
Paragraph({ Object key, this.text }) : super(key: key);
- RenderParagraph root;
+ RenderParagraph get root => super.root as RenderParagraph;
RenderParagraph createNode() => new RenderParagraph(text: text);
final String text;
@@ -774,7 +776,7 @@ class FlexContainer extends MultiChildRenderObjectWrapper {
this.justifyContent: FlexJustifyContent.flexStart
}) : super(key: key, children: children);
- RenderFlex root;
+ RenderFlex get root => super.root as RenderFlex;
RenderFlex createNode() => new RenderFlex(direction: this.direction);
final FlexDirection direction;
@@ -801,7 +803,7 @@ class Image extends RenderObjectWrapper {
this.size
}) : super(key: key);
- RenderImage root;
+ RenderImage get root => super.root as RenderImage;
RenderImage createNode() => new RenderImage(this.src, this.size);
final String src;
@@ -969,7 +971,8 @@ abstract class Component extends UINode {
_built = syncChild(_built, oldBuilt, slot);
assert(_built != null);
_dirty = false;
- root = _built.root;
+ _root = _built.root;
+ assert(_root == root); // in case a subclass reintroduces it
assert(root != null);
}
« no previous file with comments | « sky/sdk/lib/framework/components2/scaffold.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698