| OLD | NEW |
| 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 import '../common.dart'; | 7 import '../common.dart'; |
| 8 import '../common/resolution.dart' show Resolution; | 8 import '../common/resolution.dart' show Resolution; |
| 9 import '../compiler.dart' show Compiler; | 9 import '../compiler.dart' show Compiler; |
| 10 import '../constants/constructors.dart'; | 10 import '../constants/constructors.dart'; |
| (...skipping 978 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 989 abstract class LocalElement extends Element | 989 abstract class LocalElement extends Element |
| 990 implements AstElement, TypedElement, Local {} | 990 implements AstElement, TypedElement, Local {} |
| 991 | 991 |
| 992 /// A top level, static or instance field, a formal parameter or local variable. | 992 /// A top level, static or instance field, a formal parameter or local variable. |
| 993 abstract class VariableElement extends ExecutableElement { | 993 abstract class VariableElement extends ExecutableElement { |
| 994 @override | 994 @override |
| 995 VariableDefinitions get node; | 995 VariableDefinitions get node; |
| 996 | 996 |
| 997 Expression get initializer; | 997 Expression get initializer; |
| 998 | 998 |
| 999 /// The constant expression defining the value of the variable if `const`, | 999 /// The constant expression defining the (initial) value of the variable. |
| 1000 /// `null` otherwise. | 1000 /// |
| 1001 /// If the variable is `const` the value is always non-null, possibly an |
| 1002 /// [ErroneousConstantExpression], otherwise, the value is null when the |
| 1003 /// initializer isn't a constant expression. |
| 1001 ConstantExpression get constant; | 1004 ConstantExpression get constant; |
| 1002 } | 1005 } |
| 1003 | 1006 |
| 1004 /// An entity that defines a local entity (memory slot) in generated code. | 1007 /// An entity that defines a local entity (memory slot) in generated code. |
| 1005 /// | 1008 /// |
| 1006 /// Parameters, local variables and local functions (can) define local entity | 1009 /// Parameters, local variables and local functions (can) define local entity |
| 1007 /// and thus implement [Local] through [LocalElement]. For non-element locals, | 1010 /// and thus implement [Local] through [LocalElement]. For non-element locals, |
| 1008 /// like `this` and boxes, specialized [Local] classes are created. | 1011 /// like `this` and boxes, specialized [Local] classes are created. |
| 1009 /// | 1012 /// |
| 1010 /// Type variables can introduce locals in factories and constructors | 1013 /// Type variables can introduce locals in factories and constructors |
| (...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1794 /// by a field. | 1797 /// by a field. |
| 1795 bool get isDeclaredByField; | 1798 bool get isDeclaredByField; |
| 1796 | 1799 |
| 1797 /// Returns `true` if this member is abstract. | 1800 /// Returns `true` if this member is abstract. |
| 1798 bool get isAbstract; | 1801 bool get isAbstract; |
| 1799 | 1802 |
| 1800 /// If abstract, [implementation] points to the overridden concrete member, | 1803 /// If abstract, [implementation] points to the overridden concrete member, |
| 1801 /// if any. Otherwise [implementation] points to the member itself. | 1804 /// if any. Otherwise [implementation] points to the member itself. |
| 1802 Member get implementation; | 1805 Member get implementation; |
| 1803 } | 1806 } |
| OLD | NEW |