| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Mixins that implement convenience methods on [Element] subclasses. | 5 /// Mixins that implement convenience methods on [Element] subclasses. |
| 6 | 6 |
| 7 library elements.common; | 7 library elements.common; |
| 8 | 8 |
| 9 import '../common/names.dart' show Identifiers, Names, Uris; | 9 import '../common/names.dart' show Identifiers, Names, Uris; |
| 10 import '../core_types.dart' show CoreClasses; | 10 import '../core_types.dart' show CoreClasses; |
| (...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 601 return isClassMember && !isStatic; | 601 return isClassMember && !isStatic; |
| 602 } | 602 } |
| 603 | 603 |
| 604 @override | 604 @override |
| 605 bool get isAbstract { | 605 bool get isAbstract { |
| 606 return getter != null && getter.isAbstract || | 606 return getter != null && getter.isAbstract || |
| 607 setter != null && setter.isAbstract; | 607 setter != null && setter.isAbstract; |
| 608 } | 608 } |
| 609 } | 609 } |
| 610 | 610 |
| 611 enum _FromEnvironmentState { NOT, BOOL, INT, STRING, } |
| 612 |
| 611 abstract class ConstructorElementCommon implements ConstructorElement { | 613 abstract class ConstructorElementCommon implements ConstructorElement { |
| 614 _FromEnvironmentState _fromEnvironmentState; |
| 615 |
| 616 _FromEnvironmentState get fromEnvironmentState { |
| 617 if (_fromEnvironmentState == null) { |
| 618 _fromEnvironmentState = _FromEnvironmentState.NOT; |
| 619 if (name == Identifiers.fromEnvironment && library.isDartCore) { |
| 620 switch (enclosingClass.name) { |
| 621 case 'bool': |
| 622 _fromEnvironmentState = _FromEnvironmentState.BOOL; |
| 623 break; |
| 624 case 'int': |
| 625 _fromEnvironmentState = _FromEnvironmentState.INT; |
| 626 break; |
| 627 case 'String': |
| 628 _fromEnvironmentState = _FromEnvironmentState.STRING; |
| 629 break; |
| 630 } |
| 631 } |
| 632 } |
| 633 return _fromEnvironmentState; |
| 634 } |
| 635 |
| 612 @override | 636 @override |
| 613 bool get isFromEnvironmentConstructor { | 637 bool get isFromEnvironmentConstructor { |
| 614 return name == Identifiers.fromEnvironment && | 638 return fromEnvironmentState != _FromEnvironmentState.NOT; |
| 615 library.isDartCore && | |
| 616 (enclosingClass.name == 'bool' || | |
| 617 enclosingClass.name == 'int' || | |
| 618 enclosingClass.name == 'String'); | |
| 619 } | 639 } |
| 620 | 640 |
| 621 @override | 641 @override |
| 622 bool get isIntFromEnvironmentConstructor { | 642 bool get isIntFromEnvironmentConstructor { |
| 623 return name == Identifiers.fromEnvironment && | 643 return fromEnvironmentState == _FromEnvironmentState.INT; |
| 624 library.isDartCore && | |
| 625 enclosingClass.name == 'int'; | |
| 626 } | 644 } |
| 627 | 645 |
| 628 @override | 646 @override |
| 629 bool get isBoolFromEnvironmentConstructor { | 647 bool get isBoolFromEnvironmentConstructor { |
| 630 return name == Identifiers.fromEnvironment && | 648 return fromEnvironmentState == _FromEnvironmentState.BOOL; |
| 631 library.isDartCore && | |
| 632 enclosingClass.name == 'bool'; | |
| 633 } | 649 } |
| 634 | 650 |
| 635 @override | 651 @override |
| 636 bool get isStringFromEnvironmentConstructor { | 652 bool get isStringFromEnvironmentConstructor { |
| 637 return name == Identifiers.fromEnvironment && | 653 return fromEnvironmentState == _FromEnvironmentState.STRING; |
| 638 library.isDartCore && | |
| 639 enclosingClass.name == 'String'; | |
| 640 } | 654 } |
| 641 } | 655 } |
| OLD | NEW |