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

Side by Side Diff: pkg/compiler/lib/src/elements/elements.dart

Issue 1127363003: Insert the right checks for redirecting factories to deferred constructors. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: update to status-file rebase Created 5 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/compiler/lib/src/elements/modelx.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library elements; 5 library elements;
6 6
7 7
8 import '../constants/expressions.dart'; 8 import '../constants/expressions.dart';
9 import '../tree/tree.dart'; 9 import '../tree/tree.dart';
10 import '../util/util.dart'; 10 import '../util/util.dart';
(...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after
1225 /// 1225 ///
1226 /// class C { factory C() = D; } 1226 /// class C { factory C() = D; }
1227 /// class D { factory D() = E; } 1227 /// class D { factory D() = E; }
1228 /// class E { E(); } 1228 /// class E { E(); }
1229 /// 1229 ///
1230 /// The immediate redirection target of `C` is `D` and the immediate 1230 /// The immediate redirection target of `C` is `D` and the immediate
1231 /// redirection target of `D` is `E`. `E` is not a redirecting factory 1231 /// redirection target of `D` is `E`. `E` is not a redirecting factory
1232 /// constructor so its immediate redirection target is `null`. 1232 /// constructor so its immediate redirection target is `null`.
1233 ConstructorElement get immediateRedirectionTarget; 1233 ConstructorElement get immediateRedirectionTarget;
1234 1234
1235 bool get isCyclicRedirection;
1236
1237 /// The prefix of the immediateRedirectionTarget, if it is deferred.
1238 /// [null] if it is not deferred.
1239 PrefixElement get redirectionDeferredPrefix;
1240
1235 /// Is `true` if this constructor is a redirecting generative constructor. 1241 /// Is `true` if this constructor is a redirecting generative constructor.
1236 bool get isRedirectingGenerative; 1242 bool get isRedirectingGenerative;
1237 1243
1238 /// Is `true` if this constructor is a redirecting factory constructor. 1244 /// Is `true` if this constructor is a redirecting factory constructor.
1239 bool get isRedirectingFactory; 1245 bool get isRedirectingFactory;
1240 1246
1241 /// Compute the type of the effective target of this constructor for an 1247 /// Compute the type of the effective target of this constructor for an
1242 /// instantiation site with type [:newType:]. 1248 /// instantiation site with type [:newType:].
1243 InterfaceType computeEffectiveTargetType(InterfaceType newType); 1249 InterfaceType computeEffectiveTargetType(InterfaceType newType);
1244 1250
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1632 bool get isDeclaredByField; 1638 bool get isDeclaredByField;
1633 1639
1634 /// Returns `true` if this member is abstract. 1640 /// Returns `true` if this member is abstract.
1635 bool get isAbstract; 1641 bool get isAbstract;
1636 1642
1637 /// If abstract, [implementation] points to the overridden concrete member, 1643 /// If abstract, [implementation] points to the overridden concrete member,
1638 /// if any. Otherwise [implementation] points to the member itself. 1644 /// if any. Otherwise [implementation] points to the member itself.
1639 Member get implementation; 1645 Member get implementation;
1640 } 1646 }
1641 1647
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/elements/modelx.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698