| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 analyzer.src.dart.element.element; | 5 library analyzer.src.dart.element.element; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 import 'dart:math' show min; | 8 import 'dart:math' show min; |
| 9 | 9 |
| 10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
| (...skipping 2503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2514 */ | 2514 */ |
| 2515 static String _REQUIRED_CLASS_NAME = "Required"; | 2515 static String _REQUIRED_CLASS_NAME = "Required"; |
| 2516 | 2516 |
| 2517 /** | 2517 /** |
| 2518 * The name of the top-level variable used to mark a parameter as being | 2518 * The name of the top-level variable used to mark a parameter as being |
| 2519 * required. | 2519 * required. |
| 2520 */ | 2520 */ |
| 2521 static String _REQUIRED_VARIABLE_NAME = "required"; | 2521 static String _REQUIRED_VARIABLE_NAME = "required"; |
| 2522 | 2522 |
| 2523 /** | 2523 /** |
| 2524 * The name of the top-level variable used to mark a member as intended to be | |
| 2525 * overridden. | |
| 2526 */ | |
| 2527 static String _VIRTUAL_VARIABLE_NAME = "virtual"; | |
| 2528 | |
| 2529 /** | |
| 2530 * The element representing the field, variable, or constructor being used as | 2524 * The element representing the field, variable, or constructor being used as |
| 2531 * an annotation. | 2525 * an annotation. |
| 2532 */ | 2526 */ |
| 2533 Element element; | 2527 Element element; |
| 2534 | 2528 |
| 2535 /** | 2529 /** |
| 2536 * The compilation unit in which this annotation appears. | 2530 * The compilation unit in which this annotation appears. |
| 2537 */ | 2531 */ |
| 2538 CompilationUnitElementImpl compilationUnit; | 2532 CompilationUnitElementImpl compilationUnit; |
| 2539 | 2533 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2628 @override | 2622 @override |
| 2629 bool get isRequired => | 2623 bool get isRequired => |
| 2630 element is ConstructorElement && | 2624 element is ConstructorElement && |
| 2631 element.enclosingElement.name == _REQUIRED_CLASS_NAME && | 2625 element.enclosingElement.name == _REQUIRED_CLASS_NAME && |
| 2632 element.library?.name == _META_LIB_NAME || | 2626 element.library?.name == _META_LIB_NAME || |
| 2633 element is PropertyAccessorElement && | 2627 element is PropertyAccessorElement && |
| 2634 element.name == _REQUIRED_VARIABLE_NAME && | 2628 element.name == _REQUIRED_VARIABLE_NAME && |
| 2635 element.library?.name == _META_LIB_NAME; | 2629 element.library?.name == _META_LIB_NAME; |
| 2636 | 2630 |
| 2637 /** | 2631 /** |
| 2638 * Return `true` if this annotation marks the associated member as supporting | |
| 2639 * overrides. | |
| 2640 * | |
| 2641 * This is currently used by fields in Strong Mode, as other members are | |
| 2642 * already virtual-by-default. | |
| 2643 */ | |
| 2644 bool get isVirtual => | |
| 2645 element is PropertyAccessorElement && | |
| 2646 element.name == _VIRTUAL_VARIABLE_NAME && | |
| 2647 element.library?.name == _META_LIB_NAME; | |
| 2648 | |
| 2649 /** | |
| 2650 * Get the library containing this annotation. | 2632 * Get the library containing this annotation. |
| 2651 */ | 2633 */ |
| 2652 Source get librarySource => compilationUnit.librarySource; | 2634 Source get librarySource => compilationUnit.librarySource; |
| 2653 | 2635 |
| 2654 @override | 2636 @override |
| 2655 Source get source => compilationUnit.source; | 2637 Source get source => compilationUnit.source; |
| 2656 | 2638 |
| 2657 @override | 2639 @override |
| 2658 DartObject computeConstantValue() { | 2640 DartObject computeConstantValue() { |
| 2659 if (evaluationResult == null) { | 2641 if (evaluationResult == null) { |
| (...skipping 1606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4266 | 4248 |
| 4267 /** | 4249 /** |
| 4268 * Set whether this field is static. | 4250 * Set whether this field is static. |
| 4269 */ | 4251 */ |
| 4270 void set isStatic(bool isStatic) { | 4252 void set isStatic(bool isStatic) { |
| 4271 _assertNotResynthesized(_unlinkedVariable); | 4253 _assertNotResynthesized(_unlinkedVariable); |
| 4272 setModifier(Modifier.STATIC, isStatic); | 4254 setModifier(Modifier.STATIC, isStatic); |
| 4273 } | 4255 } |
| 4274 | 4256 |
| 4275 @override | 4257 @override |
| 4276 bool get isVirtual { | 4258 bool get isVirtual => true; |
| 4277 for (ElementAnnotationImpl annotation in metadata) { | |
| 4278 if (annotation.isVirtual) { | |
| 4279 return true; | |
| 4280 } | |
| 4281 } | |
| 4282 return false; | |
| 4283 } | |
| 4284 | 4259 |
| 4285 @override | 4260 @override |
| 4286 ElementKind get kind => ElementKind.FIELD; | 4261 ElementKind get kind => ElementKind.FIELD; |
| 4287 | 4262 |
| 4288 @override | 4263 @override |
| 4289 /*=T*/ accept/*<T>*/(ElementVisitor<dynamic/*=T*/ > visitor) => | 4264 /*=T*/ accept/*<T>*/(ElementVisitor<dynamic/*=T*/ > visitor) => |
| 4290 visitor.visitFieldElement(this); | 4265 visitor.visitFieldElement(this); |
| 4291 | 4266 |
| 4292 @override | 4267 @override |
| 4293 AstNode computeNode() { | 4268 AstNode computeNode() { |
| (...skipping 4825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9119 | 9094 |
| 9120 @override | 9095 @override |
| 9121 void visitElement(Element element) { | 9096 void visitElement(Element element) { |
| 9122 int offset = element.nameOffset; | 9097 int offset = element.nameOffset; |
| 9123 if (offset != -1) { | 9098 if (offset != -1) { |
| 9124 map[offset] = element; | 9099 map[offset] = element; |
| 9125 } | 9100 } |
| 9126 super.visitElement(element); | 9101 super.visitElement(element); |
| 9127 } | 9102 } |
| 9128 } | 9103 } |
| OLD | NEW |