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

Side by Side Diff: pkg/analyzer/lib/src/generated/element.dart

Issue 185603002: Update and analyzer snapshot with AST -> Ast rename. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Tweak for analyzer version in 'intl' package. Created 6 years, 9 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
OLDNEW
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 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine.element; 8 library engine.element;
9 9
10 import 'dart:collection'; 10 import 'dart:collection';
11 import 'java_core.dart'; 11 import 'java_core.dart';
12 import 'java_engine.dart'; 12 import 'java_engine.dart';
13 import 'utilities_collection.dart'; 13 import 'utilities_collection.dart';
14 import 'source.dart'; 14 import 'source.dart';
15 import 'scanner.dart' show Keyword; 15 import 'scanner.dart' show Keyword;
16 import 'ast.dart'; 16 import 'ast.dart';
17 import 'sdk.dart' show DartSdk; 17 import 'sdk.dart' show DartSdk;
18 import 'html.dart' show XmlAttributeNode, XmlTagNode; 18 import 'html.dart' show XmlAttributeNode, XmlTagNode;
19 import 'engine.dart' show AnalysisContext; 19 import 'engine.dart' show AnalysisContext;
20 import 'constant.dart' show EvaluationResultImpl; 20 import 'constant.dart' show EvaluationResultImpl;
21 import 'utilities_dart.dart'; 21 import 'utilities_dart.dart';
22 22
23 /** 23 /**
24 * The interface `ClassElement` defines the behavior of elements that represent a class. 24 * The interface `ClassElement` defines the behavior of elements that represent a class.
25 *
26 * @coverage dart.engine.element
27 */ 25 */
28 abstract class ClassElement implements Element { 26 abstract class ClassElement implements Element {
29 /** 27 /**
30 * Return an array containing all of the accessors (getters and setters) decla red in this class. 28 * Return an array containing all of the accessors (getters and setters) decla red in this class.
31 * 29 *
32 * @return the accessors declared in this class 30 * @return the accessors declared in this class
33 */ 31 */
34 List<PropertyAccessorElement> get accessors; 32 List<PropertyAccessorElement> get accessors;
35 33
36 /** 34 /**
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 * @return `true` if this class can validly be used as a mixin 244 * @return `true` if this class can validly be used as a mixin
247 */ 245 */
248 bool get isValidMixin; 246 bool get isValidMixin;
249 247
250 /** 248 /**
251 * Return the element representing the getter that results from looking up the given getter in 249 * Return the element representing the getter that results from looking up the given getter in
252 * this class with respect to the given library, or `null` if the look up fail s. The 250 * this class with respect to the given library, or `null` if the look up fail s. The
253 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1: 251 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1:
254 * <blockquote>The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i> 252 * <blockquote>The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i>
255 * with respect to library <i>L</i> is: 253 * with respect to library <i>L</i> is:
256 *
257 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is 254 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is
258 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. 255 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup.
259 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result 256 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result
260 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. 257 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>.
261 * Otherwise, we say that the lookup has failed. 258 * Otherwise, we say that the lookup has failed.
262 *
263 * </blockquote> 259 * </blockquote>
264 * 260 *
265 * @param getterName the name of the getter being looked up 261 * @param getterName the name of the getter being looked up
266 * @param library the library with respect to which the lookup is being perfor med 262 * @param library the library with respect to which the lookup is being perfor med
267 * @return the result of looking up the given getter in this class with respec t to the given 263 * @return the result of looking up the given getter in this class with respec t to the given
268 * library 264 * library
269 */ 265 */
270 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library ); 266 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library );
271 267
272 /** 268 /**
273 * Return the element representing the method that results from looking up the given method in 269 * Return the element representing the method that results from looking up the given method in
274 * this class with respect to the given library, or `null` if the look up fail s. The 270 * this class with respect to the given library, or `null` if the look up fail s. The
275 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1: 271 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1:
276 * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> wit h respect to library 272 * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> wit h respect to library
277 * <i>L</i> is: 273 * <i>L</i> is:
278 *
279 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then 274 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
280 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then 275 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then
281 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect 276 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect
282 * to <i>L</i>. Otherwise, we say that the lookup has failed. 277 * to <i>L</i>. Otherwise, we say that the lookup has failed.
283 *
284 * </blockquote> 278 * </blockquote>
285 * 279 *
286 * @param methodName the name of the method being looked up 280 * @param methodName the name of the method being looked up
287 * @param library the library with respect to which the lookup is being perfor med 281 * @param library the library with respect to which the lookup is being perfor med
288 * @return the result of looking up the given method in this class with respec t to the given 282 * @return the result of looking up the given method in this class with respec t to the given
289 * library 283 * library
290 */ 284 */
291 MethodElement lookUpMethod(String methodName, LibraryElement library); 285 MethodElement lookUpMethod(String methodName, LibraryElement library);
292 286
293 /** 287 /**
294 * Return the element representing the setter that results from looking up the given setter in 288 * Return the element representing the setter that results from looking up the given setter in
295 * this class with respect to the given library, or `null` if the look up fail s. The 289 * this class with respect to the given library, or `null` if the look up fail s. The
296 * behavior of this method is defined by the Dart Language Specification in se ction 12.16: 290 * behavior of this method is defined by the Dart Language Specification in se ction 12.16:
297 * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i> 291 * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i>
298 * with respect to library <i>L</i> is: 292 * with respect to library <i>L</i> is:
299 *
300 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is 293 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is
301 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. 294 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup.
302 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result 295 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result
303 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. 296 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>.
304 * Otherwise, we say that the lookup has failed. 297 * Otherwise, we say that the lookup has failed.
305 *
306 * </blockquote> 298 * </blockquote>
307 * 299 *
308 * @param setterName the name of the setter being looked up 300 * @param setterName the name of the setter being looked up
309 * @param library the library with respect to which the lookup is being perfor med 301 * @param library the library with respect to which the lookup is being perfor med
310 * @return the result of looking up the given setter in this class with respec t to the given 302 * @return the result of looking up the given setter in this class with respec t to the given
311 * library 303 * library
312 */ 304 */
313 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ); 305 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library );
314 } 306 }
315 307
(...skipping 14 matching lines...) Expand all
330 * not associated with a particular instance, but rather with an entire librar y or class. 322 * not associated with a particular instance, but rather with an entire librar y or class.
331 * 323 *
332 * @return `true` if this executable element is a static element 324 * @return `true` if this executable element is a static element
333 */ 325 */
334 bool get isStatic; 326 bool get isStatic;
335 } 327 }
336 328
337 /** 329 /**
338 * The interface `CompilationUnitElement` defines the behavior of elements repre senting a 330 * The interface `CompilationUnitElement` defines the behavior of elements repre senting a
339 * compilation unit. 331 * compilation unit.
340 *
341 * @coverage dart.engine.element
342 */ 332 */
343 abstract class CompilationUnitElement implements Element, UriReferencedElement { 333 abstract class CompilationUnitElement implements Element, UriReferencedElement {
344 /** 334 /**
345 * Return an array containing all of the top-level accessors (getters and sett ers) contained in 335 * Return an array containing all of the top-level accessors (getters and sett ers) contained in
346 * this compilation unit. 336 * this compilation unit.
347 * 337 *
348 * @return the top-level accessors contained in this compilation unit 338 * @return the top-level accessors contained in this compilation unit
349 */ 339 */
350 List<PropertyAccessorElement> get accessors; 340 List<PropertyAccessorElement> get accessors;
351 341
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 * Return an array containing all of the classes contained in this compilation unit. 399 * Return an array containing all of the classes contained in this compilation unit.
410 * 400 *
411 * @return the classes contained in this compilation unit 401 * @return the classes contained in this compilation unit
412 */ 402 */
413 List<ClassElement> get types; 403 List<ClassElement> get types;
414 } 404 }
415 405
416 /** 406 /**
417 * The interface `ConstructorElement` defines the behavior of elements represent ing a 407 * The interface `ConstructorElement` defines the behavior of elements represent ing a
418 * constructor or a factory method defined within a type. 408 * constructor or a factory method defined within a type.
419 *
420 * @coverage dart.engine.element
421 */ 409 */
422 abstract class ConstructorElement implements ClassMemberElement, ExecutableEleme nt { 410 abstract class ConstructorElement implements ClassMemberElement, ExecutableEleme nt {
423 /** 411 /**
424 * Return the resolved [ConstructorDeclaration] node that declares this 412 * Return the resolved [ConstructorDeclaration] node that declares this
425 * [ConstructorElement] . 413 * [ConstructorElement] .
426 * 414 *
427 * This method is expensive, because resolved AST might be evicted from cache, so parsing and 415 * This method is expensive, because resolved AST might be evicted from cache, so parsing and
428 * resolving will be performed. 416 * resolving will be performed.
429 * 417 *
430 * @return the resolved [ConstructorDeclaration], not `null`. 418 * @return the resolved [ConstructorDeclaration], not `null`.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 453
466 /** 454 /**
467 * The interface `Element` defines the behavior common to all of the elements in the element 455 * The interface `Element` defines the behavior common to all of the elements in the element
468 * model. Generally speaking, the element model is a semantic model of the progr am that represents 456 * model. Generally speaking, the element model is a semantic model of the progr am that represents
469 * things that are declared with a name and hence can be referenced elsewhere in the code. 457 * things that are declared with a name and hence can be referenced elsewhere in the code.
470 * 458 *
471 * There are two exceptions to the general case. First, there are elements in th e element model that 459 * There are two exceptions to the general case. First, there are elements in th e element model that
472 * are created for the convenience of various kinds of analysis but that do not have any 460 * are created for the convenience of various kinds of analysis but that do not have any
473 * corresponding declaration within the source code. Such elements are marked as being 461 * corresponding declaration within the source code. Such elements are marked as being
474 * <i>synthetic</i>. Examples of synthetic elements include 462 * <i>synthetic</i>. Examples of synthetic elements include
475 *
476 * * default constructors in classes that do not define any explicit constructor s, 463 * * default constructors in classes that do not define any explicit constructor s,
477 * * getters and setters that are induced by explicit field declarations, 464 * * getters and setters that are induced by explicit field declarations,
478 * * fields that are induced by explicit declarations of getters and setters, an d 465 * * fields that are induced by explicit declarations of getters and setters, an d
479 * * functions representing the initialization expression for a variable. 466 * * functions representing the initialization expression for a variable.
480 * 467 *
481 *
482 * Second, there are elements in the element model that do not have a name. Thes e correspond to 468 * Second, there are elements in the element model that do not have a name. Thes e correspond to
483 * unnamed functions and exist in order to more accurately represent the semanti c structure of the 469 * unnamed functions and exist in order to more accurately represent the semanti c structure of the
484 * program. 470 * program.
485 *
486 * @coverage dart.engine.element
487 */ 471 */
488 abstract class Element { 472 abstract class Element {
489 /** 473 /**
490 * An Unicode right arrow. 474 * An Unicode right arrow.
491 */ 475 */
492 static final String RIGHT_ARROW = " \u2192 "; 476 static final String RIGHT_ARROW = " \u2192 ";
493 477
494 /** 478 /**
495 * A comparator that can be used to sort elements by their name offset. Elemen ts with a smaller 479 * A comparator that can be used to sort elements by their name offset. Elemen ts with a smaller
496 * offset will be sorted to be before elements with a larger name offset. 480 * offset will be sorted to be before elements with a larger name offset.
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 /** 579 /**
596 * Return the offset of the name of this element in the file that contains the declaration of this 580 * Return the offset of the name of this element in the file that contains the declaration of this
597 * element, or `-1` if this element is synthetic, does not have a name, or oth erwise does 581 * element, or `-1` if this element is synthetic, does not have a name, or oth erwise does
598 * not have an offset. 582 * not have an offset.
599 * 583 *
600 * @return the offset of the name of this element 584 * @return the offset of the name of this element
601 */ 585 */
602 int get nameOffset; 586 int get nameOffset;
603 587
604 /** 588 /**
605 * Return the resolved [ASTNode] node that declares this [Element]. 589 * Return the resolved [AstNode] node that declares this [Element].
606 * 590 *
607 * This method is expensive, because resolved AST might be evicted from cache, so parsing and 591 * This method is expensive, because resolved AST might be evicted from cache, so parsing and
608 * resolving will be performed. 592 * resolving will be performed.
609 * 593 *
610 * @return the resolved [ASTNode], maybe `null` if [Element] is synthetic or 594 * @return the resolved [AstNode], maybe `null` if [Element] is synthetic or
611 * isn't contained in a compilation unit, such as a [LibraryElement]. 595 * isn't contained in a compilation unit, such as a [LibraryElement].
612 */ 596 */
613 ASTNode get node; 597 AstNode get node;
614 598
615 /** 599 /**
616 * Return the source that contains this element, or `null` if this element is not contained 600 * Return the source that contains this element, or `null` if this element is not contained
617 * in a source. 601 * in a source.
618 * 602 *
619 * @return the source that contains this element 603 * @return the source that contains this element
620 */ 604 */
621 Source get source; 605 Source get source;
622 606
623 /** 607 /**
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 * the order in which the children will be visited. 670 * the order in which the children will be visited.
687 * 671 *
688 * @param visitor the visitor that will be used to visit the children of this element 672 * @param visitor the visitor that will be used to visit the children of this element
689 */ 673 */
690 void visitChildren(ElementVisitor visitor); 674 void visitChildren(ElementVisitor visitor);
691 } 675 }
692 676
693 /** 677 /**
694 * The interface `ElementAnnotation` defines the behavior of objects representin g a single 678 * The interface `ElementAnnotation` defines the behavior of objects representin g a single
695 * annotation associated with an element. 679 * annotation associated with an element.
696 *
697 * @coverage dart.engine.element
698 */ 680 */
699 abstract class ElementAnnotation { 681 abstract class ElementAnnotation {
700 /** 682 /**
701 * Return the element representing the field, variable, or const constructor b eing used as an 683 * Return the element representing the field, variable, or const constructor b eing used as an
702 * annotation. 684 * annotation.
703 * 685 *
704 * @return the field, variable, or constructor being used as an annotation 686 * @return the field, variable, or constructor being used as an annotation
705 */ 687 */
706 Element get element; 688 Element get element;
707 689
(...skipping 18 matching lines...) Expand all
726 * object. 708 * object.
727 * 709 *
728 * @return `true` if this annotation marks the associated class as implementin g a proxy 710 * @return `true` if this annotation marks the associated class as implementin g a proxy
729 * object 711 * object
730 */ 712 */
731 bool get isProxy; 713 bool get isProxy;
732 } 714 }
733 715
734 /** 716 /**
735 * The enumeration `ElementKind` defines the various kinds of elements in the el ement model. 717 * The enumeration `ElementKind` defines the various kinds of elements in the el ement model.
736 *
737 * @coverage dart.engine.element
738 */ 718 */
739 class ElementKind extends Enum<ElementKind> { 719 class ElementKind extends Enum<ElementKind> {
740 static final ElementKind ANGULAR_FILTER = new ElementKind('ANGULAR_FILTER', 0, "Angular filter"); 720 static final ElementKind ANGULAR_FILTER = new ElementKind('ANGULAR_FILTER', 0, "Angular filter");
741 721
742 static final ElementKind ANGULAR_COMPONENT = new ElementKind('ANGULAR_COMPONEN T', 1, "Angular component"); 722 static final ElementKind ANGULAR_COMPONENT = new ElementKind('ANGULAR_COMPONEN T', 1, "Angular component");
743 723
744 static final ElementKind ANGULAR_CONTROLLER = new ElementKind('ANGULAR_CONTROL LER', 2, "Angular controller"); 724 static final ElementKind ANGULAR_CONTROLLER = new ElementKind('ANGULAR_CONTROL LER', 2, "Angular controller");
745 725
746 static final ElementKind ANGULAR_DIRECTIVE = new ElementKind('ANGULAR_DIRECTIV E', 3, "Angular directive"); 726 static final ElementKind ANGULAR_DIRECTIVE = new ElementKind('ANGULAR_DIRECTIV E', 3, "Angular directive");
747 727
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
861 * Initialize a newly created element kind to have the given display name. 841 * Initialize a newly created element kind to have the given display name.
862 * 842 *
863 * @param displayName the name displayed in the UI for this kind of element 843 * @param displayName the name displayed in the UI for this kind of element
864 */ 844 */
865 ElementKind(String name, int ordinal, this.displayName) : super(name, ordinal) ; 845 ElementKind(String name, int ordinal, this.displayName) : super(name, ordinal) ;
866 } 846 }
867 847
868 /** 848 /**
869 * The interface `ElementLocation` defines the behavior of objects that represen t the location 849 * The interface `ElementLocation` defines the behavior of objects that represen t the location
870 * of an element within the element model. 850 * of an element within the element model.
871 *
872 * @coverage dart.engine.element
873 */ 851 */
874 abstract class ElementLocation { 852 abstract class ElementLocation {
875 /** 853 /**
876 * Return an encoded representation of this location that can be used to creat e a location that is 854 * Return an encoded representation of this location that can be used to creat e a location that is
877 * equal to this location. 855 * equal to this location.
878 * 856 *
879 * @return an encoded representation of this location 857 * @return an encoded representation of this location
880 */ 858 */
881 String get encoding; 859 String get encoding;
882 } 860 }
883 861
884 /** 862 /**
885 * The interface `ElementVisitor` defines the behavior of objects that can be us ed to visit an 863 * The interface `ElementVisitor` defines the behavior of objects that can be us ed to visit an
886 * element structure. 864 * element structure.
887 *
888 * @coverage dart.engine.element
889 */ 865 */
890 abstract class ElementVisitor<R> { 866 abstract class ElementVisitor<R> {
891 R visitAngularComponentElement(AngularComponentElement element); 867 R visitAngularComponentElement(AngularComponentElement element);
892 868
893 R visitAngularControllerElement(AngularControllerElement element); 869 R visitAngularControllerElement(AngularControllerElement element);
894 870
895 R visitAngularDirectiveElement(AngularDirectiveElement element); 871 R visitAngularDirectiveElement(AngularDirectiveElement element);
896 872
897 R visitAngularFilterElement(AngularFilterElement element); 873 R visitAngularFilterElement(AngularFilterElement element);
898 874
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
945 R visitPropertyAccessorElement(PropertyAccessorElement element); 921 R visitPropertyAccessorElement(PropertyAccessorElement element);
946 922
947 R visitTopLevelVariableElement(TopLevelVariableElement element); 923 R visitTopLevelVariableElement(TopLevelVariableElement element);
948 924
949 R visitTypeParameterElement(TypeParameterElement element); 925 R visitTypeParameterElement(TypeParameterElement element);
950 } 926 }
951 927
952 /** 928 /**
953 * The interface `EmbeddedHtmlScriptElement` defines the behavior of elements re presenting a 929 * The interface `EmbeddedHtmlScriptElement` defines the behavior of elements re presenting a
954 * script tag in an HTML file having content that defines a Dart library. 930 * script tag in an HTML file having content that defines a Dart library.
955 *
956 * @coverage dart.engine.element
957 */ 931 */
958 abstract class EmbeddedHtmlScriptElement implements HtmlScriptElement { 932 abstract class EmbeddedHtmlScriptElement implements HtmlScriptElement {
959 /** 933 /**
960 * Return the library element defined by the content of the script tag. 934 * Return the library element defined by the content of the script tag.
961 * 935 *
962 * @return the library element (not `null`) 936 * @return the library element (not `null`)
963 */ 937 */
964 LibraryElement get scriptLibrary; 938 LibraryElement get scriptLibrary;
965 } 939 }
966 940
967 /** 941 /**
968 * The interface `ExecutableElement` defines the behavior of elements representi ng an 942 * The interface `ExecutableElement` defines the behavior of elements representi ng an
969 * executable object, including functions, methods, constructors, getters, and s etters. 943 * executable object, including functions, methods, constructors, getters, and s etters.
970 *
971 * @coverage dart.engine.element
972 */ 944 */
973 abstract class ExecutableElement implements Element { 945 abstract class ExecutableElement implements Element {
974 /** 946 /**
975 * Return an array containing all of the functions defined within this executa ble element. 947 * Return an array containing all of the functions defined within this executa ble element.
976 * 948 *
977 * @return the functions defined within this executable element 949 * @return the functions defined within this executable element
978 */ 950 */
979 List<FunctionElement> get functions; 951 List<FunctionElement> get functions;
980 952
981 /** 953 /**
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 * not associated with a particular instance, but rather with an entire librar y or class. 999 * not associated with a particular instance, but rather with an entire librar y or class.
1028 * 1000 *
1029 * @return `true` if this executable element is a static element 1001 * @return `true` if this executable element is a static element
1030 */ 1002 */
1031 bool get isStatic; 1003 bool get isStatic;
1032 } 1004 }
1033 1005
1034 /** 1006 /**
1035 * The interface `ExportElement` defines the behavior of objects representing in formation 1007 * The interface `ExportElement` defines the behavior of objects representing in formation
1036 * about a single export directive within a library. 1008 * about a single export directive within a library.
1037 *
1038 * @coverage dart.engine.element
1039 */ 1009 */
1040 abstract class ExportElement implements Element, UriReferencedElement { 1010 abstract class ExportElement implements Element, UriReferencedElement {
1041 /** 1011 /**
1042 * An empty array of export elements. 1012 * An empty array of export elements.
1043 */ 1013 */
1044 static final List<ExportElement> EMPTY_ARRAY = new List<ExportElement>(0); 1014 static final List<ExportElement> EMPTY_ARRAY = new List<ExportElement>(0);
1045 1015
1046 /** 1016 /**
1047 * Return an array containing the combinators that were specified as part of t he export directive 1017 * Return an array containing the combinators that were specified as part of t he export directive
1048 * in the order in which they were specified. 1018 * in the order in which they were specified.
1049 * 1019 *
1050 * @return the combinators specified in the export directive 1020 * @return the combinators specified in the export directive
1051 */ 1021 */
1052 List<NamespaceCombinator> get combinators; 1022 List<NamespaceCombinator> get combinators;
1053 1023
1054 /** 1024 /**
1055 * Return the library that is exported from this library by this export direct ive. 1025 * Return the library that is exported from this library by this export direct ive.
1056 * 1026 *
1057 * @return the library that is exported from this library 1027 * @return the library that is exported from this library
1058 */ 1028 */
1059 LibraryElement get exportedLibrary; 1029 LibraryElement get exportedLibrary;
1060 } 1030 }
1061 1031
1062 /** 1032 /**
1063 * The interface `ExternalHtmlScriptElement` defines the behavior of elements re presenting a 1033 * The interface `ExternalHtmlScriptElement` defines the behavior of elements re presenting a
1064 * script tag in an HTML file having a `source` attribute that references a Dart library 1034 * script tag in an HTML file having a `source` attribute that references a Dart library
1065 * source file. 1035 * source file.
1066 *
1067 * @coverage dart.engine.element
1068 */ 1036 */
1069 abstract class ExternalHtmlScriptElement implements HtmlScriptElement { 1037 abstract class ExternalHtmlScriptElement implements HtmlScriptElement {
1070 /** 1038 /**
1071 * Return the source referenced by this element, or `null` if this element doe s not 1039 * Return the source referenced by this element, or `null` if this element doe s not
1072 * reference a Dart library source file. 1040 * reference a Dart library source file.
1073 * 1041 *
1074 * @return the source for the external Dart library 1042 * @return the source for the external Dart library
1075 */ 1043 */
1076 Source get scriptSource; 1044 Source get scriptSource;
1077 } 1045 }
1078 1046
1079 /** 1047 /**
1080 * The interface `FieldElement` defines the behavior of elements representing a field defined 1048 * The interface `FieldElement` defines the behavior of elements representing a field defined
1081 * within a type. 1049 * within a type.
1082 *
1083 * @coverage dart.engine.element
1084 */ 1050 */
1085 abstract class FieldElement implements ClassMemberElement, PropertyInducingEleme nt { 1051 abstract class FieldElement implements ClassMemberElement, PropertyInducingEleme nt {
1086 } 1052 }
1087 1053
1088 /** 1054 /**
1089 * The interface `FieldFormalParameterElement` defines the behavior of elements representing a 1055 * The interface `FieldFormalParameterElement` defines the behavior of elements representing a
1090 * field formal parameter defined within a constructor element. 1056 * field formal parameter defined within a constructor element.
1091 */ 1057 */
1092 abstract class FieldFormalParameterElement implements ParameterElement { 1058 abstract class FieldFormalParameterElement implements ParameterElement {
1093 /** 1059 /**
1094 * Return the field element associated with this field formal parameter, or `n ull` if the 1060 * Return the field element associated with this field formal parameter, or `n ull` if the
1095 * parameter references a field that doesn't exist. 1061 * parameter references a field that doesn't exist.
1096 * 1062 *
1097 * @return the field element associated with this field formal parameter 1063 * @return the field element associated with this field formal parameter
1098 */ 1064 */
1099 FieldElement get field; 1065 FieldElement get field;
1100 } 1066 }
1101 1067
1102 /** 1068 /**
1103 * The interface `FunctionElement` defines the behavior of elements representing a function. 1069 * The interface `FunctionElement` defines the behavior of elements representing a function.
1104 *
1105 * @coverage dart.engine.element
1106 */ 1070 */
1107 abstract class FunctionElement implements ExecutableElement, LocalElement { 1071 abstract class FunctionElement implements ExecutableElement, LocalElement {
1108 /** 1072 /**
1109 * Return the resolved [FunctionDeclaration] node that declares this [Function Element] 1073 * Return the resolved [FunctionDeclaration] node that declares this [Function Element]
1110 * . 1074 * .
1111 * 1075 *
1112 * This method is expensive, because resolved AST might be evicted from cache, so parsing and 1076 * This method is expensive, because resolved AST might be evicted from cache, so parsing and
1113 * resolving will be performed. 1077 * resolving will be performed.
1114 * 1078 *
1115 * @return the resolved [FunctionDeclaration], not `null`. 1079 * @return the resolved [FunctionDeclaration], not `null`.
1116 */ 1080 */
1117 FunctionDeclaration get node; 1081 FunctionDeclaration get node;
1118 } 1082 }
1119 1083
1120 /** 1084 /**
1121 * The interface `FunctionTypeAliasElement` defines the behavior of elements rep resenting a 1085 * The interface `FunctionTypeAliasElement` defines the behavior of elements rep resenting a
1122 * function type alias (`typedef`). 1086 * function type alias (`typedef`).
1123 *
1124 * @coverage dart.engine.element
1125 */ 1087 */
1126 abstract class FunctionTypeAliasElement implements Element { 1088 abstract class FunctionTypeAliasElement implements Element {
1127 /** 1089 /**
1128 * Return the compilation unit in which this type alias is defined. 1090 * Return the compilation unit in which this type alias is defined.
1129 * 1091 *
1130 * @return the compilation unit in which this type alias is defined 1092 * @return the compilation unit in which this type alias is defined
1131 */ 1093 */
1132 CompilationUnitElement get enclosingElement; 1094 CompilationUnitElement get enclosingElement;
1133 1095
1134 /** 1096 /**
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1167 * Return an array containing all of the type parameters defined for this type . 1129 * Return an array containing all of the type parameters defined for this type .
1168 * 1130 *
1169 * @return the type parameters defined for this type 1131 * @return the type parameters defined for this type
1170 */ 1132 */
1171 List<TypeParameterElement> get typeParameters; 1133 List<TypeParameterElement> get typeParameters;
1172 } 1134 }
1173 1135
1174 /** 1136 /**
1175 * The interface `HideElementCombinator` defines the behavior of combinators tha t cause some 1137 * The interface `HideElementCombinator` defines the behavior of combinators tha t cause some
1176 * of the names in a namespace to be hidden when being imported. 1138 * of the names in a namespace to be hidden when being imported.
1177 *
1178 * @coverage dart.engine.element
1179 */ 1139 */
1180 abstract class HideElementCombinator implements NamespaceCombinator { 1140 abstract class HideElementCombinator implements NamespaceCombinator {
1181 /** 1141 /**
1182 * Return an array containing the names that are not to be made visible in the importing library 1142 * Return an array containing the names that are not to be made visible in the importing library
1183 * even if they are defined in the imported library. 1143 * even if they are defined in the imported library.
1184 * 1144 *
1185 * @return the names from the imported library that are hidden from the import ing library 1145 * @return the names from the imported library that are hidden from the import ing library
1186 */ 1146 */
1187 List<String> get hiddenNames; 1147 List<String> get hiddenNames;
1188 } 1148 }
1189 1149
1190 /** 1150 /**
1191 * The interface `HtmlElement` defines the behavior of elements representing an HTML file. 1151 * The interface `HtmlElement` defines the behavior of elements representing an HTML file.
1192 *
1193 * @coverage dart.engine.element
1194 */ 1152 */
1195 abstract class HtmlElement implements Element { 1153 abstract class HtmlElement implements Element {
1196 /** 1154 /**
1197 * Return the [CompilationUnitElement] associated with this Angular HTML file, maybe 1155 * Return the [CompilationUnitElement] associated with this Angular HTML file, maybe
1198 * `null` if not an Angular file. 1156 * `null` if not an Angular file.
1199 */ 1157 */
1200 CompilationUnitElement get angularCompilationUnit; 1158 CompilationUnitElement get angularCompilationUnit;
1201 1159
1202 /** 1160 /**
1203 * Return an array containing all of the script elements contained in the HTML file. This includes 1161 * Return an array containing all of the script elements contained in the HTML file. This includes
1204 * scripts with libraries that are defined by the content of a script tag as w ell as libraries 1162 * scripts with libraries that are defined by the content of a script tag as w ell as libraries
1205 * that are referenced in the {@core source} attribute of a script tag. 1163 * that are referenced in the {@core source} attribute of a script tag.
1206 * 1164 *
1207 * @return the script elements in the HTML file (not `null`, contains no `null `s) 1165 * @return the script elements in the HTML file (not `null`, contains no `null `s)
1208 */ 1166 */
1209 List<HtmlScriptElement> get scripts; 1167 List<HtmlScriptElement> get scripts;
1210 } 1168 }
1211 1169
1212 /** 1170 /**
1213 * The interface `HtmlScriptElement` defines the behavior of elements representi ng a script 1171 * The interface `HtmlScriptElement` defines the behavior of elements representi ng a script
1214 * tag in an HTML file. 1172 * tag in an HTML file.
1215 * 1173 *
1216 * @see EmbeddedHtmlScriptElement 1174 * @see EmbeddedHtmlScriptElement
1217 * @see ExternalHtmlScriptElement 1175 * @see ExternalHtmlScriptElement
1218 * @coverage dart.engine.element
1219 */ 1176 */
1220 abstract class HtmlScriptElement implements Element { 1177 abstract class HtmlScriptElement implements Element {
1221 } 1178 }
1222 1179
1223 /** 1180 /**
1224 * The interface `ImportElement` defines the behavior of objects representing in formation 1181 * The interface `ImportElement` defines the behavior of objects representing in formation
1225 * about a single import directive within a library. 1182 * about a single import directive within a library.
1226 *
1227 * @coverage dart.engine.element
1228 */ 1183 */
1229 abstract class ImportElement implements Element, UriReferencedElement { 1184 abstract class ImportElement implements Element, UriReferencedElement {
1230 /** 1185 /**
1231 * An empty array of import elements. 1186 * An empty array of import elements.
1232 */ 1187 */
1233 static final List<ImportElement> EMPTY_ARRAY = new List<ImportElement>(0); 1188 static final List<ImportElement> EMPTY_ARRAY = new List<ImportElement>(0);
1234 1189
1235 /** 1190 /**
1236 * Return an array containing the combinators that were specified as part of t he import directive 1191 * Return an array containing the combinators that were specified as part of t he import directive
1237 * in the order in which they were specified. 1192 * in the order in which they were specified.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1269 * or `-1` for synthetic import. 1224 * or `-1` for synthetic import.
1270 * 1225 *
1271 * @return the offset of the character just past the node's URI 1226 * @return the offset of the character just past the node's URI
1272 */ 1227 */
1273 int get uriEnd; 1228 int get uriEnd;
1274 } 1229 }
1275 1230
1276 /** 1231 /**
1277 * The interface `LabelElement` defines the behavior of elements representing a label 1232 * The interface `LabelElement` defines the behavior of elements representing a label
1278 * associated with a statement. 1233 * associated with a statement.
1279 *
1280 * @coverage dart.engine.element
1281 */ 1234 */
1282 abstract class LabelElement implements Element { 1235 abstract class LabelElement implements Element {
1283 /** 1236 /**
1284 * Return the executable element in which this label is defined. 1237 * Return the executable element in which this label is defined.
1285 * 1238 *
1286 * @return the executable element in which this label is defined 1239 * @return the executable element in which this label is defined
1287 */ 1240 */
1288 ExecutableElement get enclosingElement; 1241 ExecutableElement get enclosingElement;
1289 } 1242 }
1290 1243
1291 /** 1244 /**
1292 * The interface `LibraryElement` defines the behavior of elements representing a library. 1245 * The interface `LibraryElement` defines the behavior of elements representing a library.
1293 *
1294 * @coverage dart.engine.element
1295 */ 1246 */
1296 abstract class LibraryElement implements Element { 1247 abstract class LibraryElement implements Element {
1297 /** 1248 /**
1298 * Return the compilation unit that defines this library. 1249 * Return the compilation unit that defines this library.
1299 * 1250 *
1300 * @return the compilation unit that defines this library 1251 * @return the compilation unit that defines this library
1301 */ 1252 */
1302 CompilationUnitElement get definingCompilationUnit; 1253 CompilationUnitElement get definingCompilationUnit;
1303 1254
1304 /** 1255 /**
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1422 * 1373 *
1423 * @param timeStamp the time stamp to compare against 1374 * @param timeStamp the time stamp to compare against
1424 * @return `true` if this library is up to date with respect to the given time stamp 1375 * @return `true` if this library is up to date with respect to the given time stamp
1425 */ 1376 */
1426 bool isUpToDate2(int timeStamp); 1377 bool isUpToDate2(int timeStamp);
1427 } 1378 }
1428 1379
1429 /** 1380 /**
1430 * The interface `LocalElement` defines the behavior of elements that can be (bu t are not 1381 * The interface `LocalElement` defines the behavior of elements that can be (bu t are not
1431 * required to be) defined within a method or function (an [ExecutableElement]). 1382 * required to be) defined within a method or function (an [ExecutableElement]).
1432 *
1433 * @coverage dart.engine.element
1434 */ 1383 */
1435 abstract class LocalElement implements Element { 1384 abstract class LocalElement implements Element {
1436 /** 1385 /**
1437 * Return a source range that covers the approximate portion of the source in which the name of 1386 * Return a source range that covers the approximate portion of the source in which the name of
1438 * this element is visible, or `null` if there is no single range of character s within which 1387 * this element is visible, or `null` if there is no single range of character s within which
1439 * the element name is visible. 1388 * the element name is visible.
1440 *
1441 * * For a local variable, this includes everything from the end of the variab le's initializer 1389 * * For a local variable, this includes everything from the end of the variab le's initializer
1442 * to the end of the block that encloses the variable declaration. 1390 * to the end of the block that encloses the variable declaration.
1443 * * For a parameter, this includes the body of the method or function that de clares the 1391 * * For a parameter, this includes the body of the method or function that de clares the
1444 * parameter. 1392 * parameter.
1445 * * For a local function, this includes everything from the beginning of the function's body to 1393 * * For a local function, this includes everything from the beginning of the function's body to
1446 * the end of the block that encloses the function declaration. 1394 * the end of the block that encloses the function declaration.
1447 * * For top-level functions, `null` will be returned because they are potenti ally visible 1395 * * For top-level functions, `null` will be returned because they are potenti ally visible
1448 * in multiple sources. 1396 * in multiple sources.
1449 * 1397 *
1450 *
1451 * @return the range of characters in which the name of this element is visibl e 1398 * @return the range of characters in which the name of this element is visibl e
1452 */ 1399 */
1453 SourceRange get visibleRange; 1400 SourceRange get visibleRange;
1454 } 1401 }
1455 1402
1456 /** 1403 /**
1457 * The interface `LocalVariableElement` defines the behavior common to elements that represent 1404 * The interface `LocalVariableElement` defines the behavior common to elements that represent
1458 * a local variable. 1405 * a local variable.
1459 *
1460 * @coverage dart.engine.element
1461 */ 1406 */
1462 abstract class LocalVariableElement implements LocalElement, VariableElement { 1407 abstract class LocalVariableElement implements LocalElement, VariableElement {
1463 /** 1408 /**
1464 * Return an array containing all of the toolkit specific objects attached to this variable. 1409 * Return an array containing all of the toolkit specific objects attached to this variable.
1465 * 1410 *
1466 * @return the toolkit objects attached to this variable 1411 * @return the toolkit objects attached to this variable
1467 */ 1412 */
1468 List<ToolkitObjectElement> get toolkitObjects; 1413 List<ToolkitObjectElement> get toolkitObjects;
1469 } 1414 }
1470 1415
1471 /** 1416 /**
1472 * The interface `MethodElement` defines the behavior of elements that represent a method 1417 * The interface `MethodElement` defines the behavior of elements that represent a method
1473 * defined within a type. 1418 * defined within a type.
1474 *
1475 * @coverage dart.engine.element
1476 */ 1419 */
1477 abstract class MethodElement implements ClassMemberElement, ExecutableElement { 1420 abstract class MethodElement implements ClassMemberElement, ExecutableElement {
1478 /** 1421 /**
1479 * Return the resolved [MethodDeclaration] node that declares this [MethodElem ent]. 1422 * Return the resolved [MethodDeclaration] node that declares this [MethodElem ent].
1480 * 1423 *
1481 * This method is expensive, because resolved AST might be evicted from cache, so parsing and 1424 * This method is expensive, because resolved AST might be evicted from cache, so parsing and
1482 * resolving will be performed. 1425 * resolving will be performed.
1483 * 1426 *
1484 * @return the resolved [MethodDeclaration], not `null`. 1427 * @return the resolved [MethodDeclaration], not `null`.
1485 */ 1428 */
1486 MethodDeclaration get node; 1429 MethodDeclaration get node;
1487 1430
1488 /** 1431 /**
1489 * Return `true` if this method is abstract. Methods are abstract if they are not external 1432 * Return `true` if this method is abstract. Methods are abstract if they are not external
1490 * and have no body. 1433 * and have no body.
1491 * 1434 *
1492 * @return `true` if this method is abstract 1435 * @return `true` if this method is abstract
1493 */ 1436 */
1494 bool get isAbstract; 1437 bool get isAbstract;
1495 } 1438 }
1496 1439
1497 /** 1440 /**
1498 * The interface `MultiplyDefinedElement` defines the behavior of pseudo-element s that 1441 * The interface `MultiplyDefinedElement` defines the behavior of pseudo-element s that
1499 * represent multiple elements defined within a single scope that have the same name. This situation 1442 * represent multiple elements defined within a single scope that have the same name. This situation
1500 * is not allowed by the language, so objects implementing this interface always represent an error. 1443 * is not allowed by the language, so objects implementing this interface always represent an error.
1501 * As a result, most of the normal operations on elements do not make sense and will return useless 1444 * As a result, most of the normal operations on elements do not make sense and will return useless
1502 * results. 1445 * results.
1503 *
1504 * @coverage dart.engine.element
1505 */ 1446 */
1506 abstract class MultiplyDefinedElement implements Element { 1447 abstract class MultiplyDefinedElement implements Element {
1507 /** 1448 /**
1508 * Return an array containing all of the elements that were defined within the scope to have the 1449 * Return an array containing all of the elements that were defined within the scope to have the
1509 * same name. 1450 * same name.
1510 * 1451 *
1511 * @return the elements that were defined with the same name 1452 * @return the elements that were defined with the same name
1512 */ 1453 */
1513 List<Element> get conflictingElements; 1454 List<Element> get conflictingElements;
1514 1455
1515 /** 1456 /**
1516 * Return the type of this element as the dynamic type. 1457 * Return the type of this element as the dynamic type.
1517 * 1458 *
1518 * @return the type of this element as the dynamic type 1459 * @return the type of this element as the dynamic type
1519 */ 1460 */
1520 Type2 get type; 1461 Type2 get type;
1521 } 1462 }
1522 1463
1523 /** 1464 /**
1524 * The interface [MultiplyInheritedExecutableElement] defines all of the behavio r of an 1465 * The interface [MultiplyInheritedExecutableElement] defines all of the behavio r of an
1525 * [ExecutableElement], with the additional information of an array of 1466 * [ExecutableElement], with the additional information of an array of
1526 * [ExecutableElement]s from which this element was composed. 1467 * [ExecutableElement]s from which this element was composed.
1527 *
1528 * @coverage dart.engine.element
1529 */ 1468 */
1530 abstract class MultiplyInheritedExecutableElement implements ExecutableElement { 1469 abstract class MultiplyInheritedExecutableElement implements ExecutableElement {
1531 /** 1470 /**
1532 * Return an array containing all of the executable elements defined within th is executable 1471 * Return an array containing all of the executable elements defined within th is executable
1533 * element. 1472 * element.
1534 * 1473 *
1535 * @return the elements defined within this executable element 1474 * @return the elements defined within this executable element
1536 */ 1475 */
1537 List<ExecutableElement> get inheritedElements; 1476 List<ExecutableElement> get inheritedElements;
1538 } 1477 }
1539 1478
1540 /** 1479 /**
1541 * The interface `NamespaceCombinator` defines the behavior common to objects th at control how 1480 * The interface `NamespaceCombinator` defines the behavior common to objects th at control how
1542 * namespaces are combined. 1481 * namespaces are combined.
1543 *
1544 * @coverage dart.engine.element
1545 */ 1482 */
1546 abstract class NamespaceCombinator { 1483 abstract class NamespaceCombinator {
1547 /** 1484 /**
1548 * An empty array of namespace combinators. 1485 * An empty array of namespace combinators.
1549 */ 1486 */
1550 static final List<NamespaceCombinator> EMPTY_ARRAY = new List<NamespaceCombina tor>(0); 1487 static final List<NamespaceCombinator> EMPTY_ARRAY = new List<NamespaceCombina tor>(0);
1551 } 1488 }
1552 1489
1553 /** 1490 /**
1554 * The interface `ParameterElement` defines the behavior of elements representin g a parameter 1491 * The interface `ParameterElement` defines the behavior of elements representin g a parameter
1555 * defined within an executable element. 1492 * defined within an executable element.
1556 *
1557 * @coverage dart.engine.element
1558 */ 1493 */
1559 abstract class ParameterElement implements LocalElement, VariableElement { 1494 abstract class ParameterElement implements LocalElement, VariableElement {
1560 /** 1495 /**
1561 * Return a source range that covers the portion of the source in which the de fault value for this 1496 * Return a source range that covers the portion of the source in which the de fault value for this
1562 * parameter is specified, or `null` if there is no default value. 1497 * parameter is specified, or `null` if there is no default value.
1563 * 1498 *
1564 * @return the range of characters in which the default value of this paramete r is specified 1499 * @return the range of characters in which the default value of this paramete r is specified
1565 */ 1500 */
1566 SourceRange get defaultValueRange; 1501 SourceRange get defaultValueRange;
1567 1502
(...skipping 16 matching lines...) Expand all
1584 * Return `true` if this parameter is an initializing formal parameter. 1519 * Return `true` if this parameter is an initializing formal parameter.
1585 * 1520 *
1586 * @return `true` if this parameter is an initializing formal parameter 1521 * @return `true` if this parameter is an initializing formal parameter
1587 */ 1522 */
1588 bool get isInitializingFormal; 1523 bool get isInitializingFormal;
1589 } 1524 }
1590 1525
1591 /** 1526 /**
1592 * The interface `PrefixElement` defines the behavior common to elements that re present a 1527 * The interface `PrefixElement` defines the behavior common to elements that re present a
1593 * prefix used to import one or more libraries into another library. 1528 * prefix used to import one or more libraries into another library.
1594 *
1595 * @coverage dart.engine.element
1596 */ 1529 */
1597 abstract class PrefixElement implements Element { 1530 abstract class PrefixElement implements Element {
1598 /** 1531 /**
1599 * Return the library into which other libraries are imported using this prefi x. 1532 * Return the library into which other libraries are imported using this prefi x.
1600 * 1533 *
1601 * @return the library into which other libraries are imported using this pref ix 1534 * @return the library into which other libraries are imported using this pref ix
1602 */ 1535 */
1603 LibraryElement get enclosingElement; 1536 LibraryElement get enclosingElement;
1604 1537
1605 /** 1538 /**
1606 * Return an array containing all of the libraries that are imported using thi s prefix. 1539 * Return an array containing all of the libraries that are imported using thi s prefix.
1607 * 1540 *
1608 * @return the libraries that are imported using this prefix 1541 * @return the libraries that are imported using this prefix
1609 */ 1542 */
1610 List<LibraryElement> get importedLibraries; 1543 List<LibraryElement> get importedLibraries;
1611 } 1544 }
1612 1545
1613 /** 1546 /**
1614 * The interface `PropertyAccessorElement` defines the behavior of elements repr esenting a 1547 * The interface `PropertyAccessorElement` defines the behavior of elements repr esenting a
1615 * getter or a setter. Note that explicitly defined property accessors implicitl y define a synthetic 1548 * getter or a setter. Note that explicitly defined property accessors implicitl y define a synthetic
1616 * field. Symmetrically, synthetic accessors are implicitly created for explicit ly defined fields. 1549 * field. Symmetrically, synthetic accessors are implicitly created for explicit ly defined fields.
1617 * The following rules apply: 1550 * The following rules apply:
1618 *
1619 * * Every explicit field is represented by a non-synthetic [FieldElement]. 1551 * * Every explicit field is represented by a non-synthetic [FieldElement].
1620 * * Every explicit field induces a getter and possibly a setter, both of which are represented by 1552 * * Every explicit field induces a getter and possibly a setter, both of which are represented by
1621 * synthetic [PropertyAccessorElement]s. 1553 * synthetic [PropertyAccessorElement]s.
1622 * * Every explicit getter or setter is represented by a non-synthetic 1554 * * Every explicit getter or setter is represented by a non-synthetic
1623 * [PropertyAccessorElement]. 1555 * [PropertyAccessorElement].
1624 * * Every explicit getter or setter (or pair thereof if they have the same name ) induces a field 1556 * * Every explicit getter or setter (or pair thereof if they have the same name ) induces a field
1625 * that is represented by a synthetic [FieldElement]. 1557 * that is represented by a synthetic [FieldElement].
1626 *
1627 *
1628 * @coverage dart.engine.element
1629 */ 1558 */
1630 abstract class PropertyAccessorElement implements ExecutableElement { 1559 abstract class PropertyAccessorElement implements ExecutableElement {
1631 /** 1560 /**
1632 * Return the accessor representing the getter that corresponds to (has the sa me name as) this 1561 * Return the accessor representing the getter that corresponds to (has the sa me name as) this
1633 * setter, or `null` if this accessor is not a setter or if there is no corres ponding 1562 * setter, or `null` if this accessor is not a setter or if there is no corres ponding
1634 * getter. 1563 * getter.
1635 * 1564 *
1636 * @return the getter that corresponds to this setter 1565 * @return the getter that corresponds to this setter
1637 */ 1566 */
1638 PropertyAccessorElement get correspondingGetter; 1567 PropertyAccessorElement get correspondingGetter;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1676 */ 1605 */
1677 bool get isSetter; 1606 bool get isSetter;
1678 } 1607 }
1679 1608
1680 /** 1609 /**
1681 * The interface `PropertyInducingElement` defines the behavior of elements repr esenting a 1610 * The interface `PropertyInducingElement` defines the behavior of elements repr esenting a
1682 * variable that has an associated getter and possibly a setter. Note that expli citly defined 1611 * variable that has an associated getter and possibly a setter. Note that expli citly defined
1683 * variables implicitly define a synthetic getter and that non-`final` explicitl y defined 1612 * variables implicitly define a synthetic getter and that non-`final` explicitl y defined
1684 * variables implicitly define a synthetic setter. Symmetrically, synthetic fiel ds are implicitly 1613 * variables implicitly define a synthetic setter. Symmetrically, synthetic fiel ds are implicitly
1685 * created for explicitly defined getters and setters. The following rules apply : 1614 * created for explicitly defined getters and setters. The following rules apply :
1686 *
1687 * * Every explicit variable is represented by a non-synthetic [PropertyInducing Element]. 1615 * * Every explicit variable is represented by a non-synthetic [PropertyInducing Element].
1688 * * Every explicit variable induces a getter and possibly a setter, both of whi ch are represented 1616 * * Every explicit variable induces a getter and possibly a setter, both of whi ch are represented
1689 * by synthetic [PropertyAccessorElement]s. 1617 * by synthetic [PropertyAccessorElement]s.
1690 * * Every explicit getter or setter is represented by a non-synthetic 1618 * * Every explicit getter or setter is represented by a non-synthetic
1691 * [PropertyAccessorElement]. 1619 * [PropertyAccessorElement].
1692 * * Every explicit getter or setter (or pair thereof if they have the same name ) induces a 1620 * * Every explicit getter or setter (or pair thereof if they have the same name ) induces a
1693 * variable that is represented by a synthetic [PropertyInducingElement]. 1621 * variable that is represented by a synthetic [PropertyInducingElement].
1694 *
1695 *
1696 * @coverage dart.engine.element
1697 */ 1622 */
1698 abstract class PropertyInducingElement implements VariableElement { 1623 abstract class PropertyInducingElement implements VariableElement {
1699 /** 1624 /**
1700 * Return the getter associated with this variable. If this variable was expli citly defined (is 1625 * Return the getter associated with this variable. If this variable was expli citly defined (is
1701 * not synthetic) then the getter associated with it will be synthetic. 1626 * not synthetic) then the getter associated with it will be synthetic.
1702 * 1627 *
1703 * @return the getter associated with this variable 1628 * @return the getter associated with this variable
1704 */ 1629 */
1705 PropertyAccessorElement get getter; 1630 PropertyAccessorElement get getter;
1706 1631
(...skipping 13 matching lines...) Expand all
1720 * not associated with a particular instance, but rather with an entire librar y or class. 1645 * not associated with a particular instance, but rather with an entire librar y or class.
1721 * 1646 *
1722 * @return `true` if this executable element is a static element 1647 * @return `true` if this executable element is a static element
1723 */ 1648 */
1724 bool get isStatic; 1649 bool get isStatic;
1725 } 1650 }
1726 1651
1727 /** 1652 /**
1728 * The interface `ShowElementCombinator` defines the behavior of combinators tha t cause some 1653 * The interface `ShowElementCombinator` defines the behavior of combinators tha t cause some
1729 * of the names in a namespace to be visible (and the rest hidden) when being im ported. 1654 * of the names in a namespace to be visible (and the rest hidden) when being im ported.
1730 *
1731 * @coverage dart.engine.element
1732 */ 1655 */
1733 abstract class ShowElementCombinator implements NamespaceCombinator { 1656 abstract class ShowElementCombinator implements NamespaceCombinator {
1734 /** 1657 /**
1735 * Return the offset of the character immediately following the last character of this node. 1658 * Return the offset of the character immediately following the last character of this node.
1736 * 1659 *
1737 * @return the offset of the character just past this node 1660 * @return the offset of the character just past this node
1738 */ 1661 */
1739 int get end; 1662 int get end;
1740 1663
1741 /** 1664 /**
1742 * Return the offset of the 'show' keyword of this element. 1665 * Return the offset of the 'show' keyword of this element.
1743 * 1666 *
1744 * @return the offset of the 'show' keyword of this element 1667 * @return the offset of the 'show' keyword of this element
1745 */ 1668 */
1746 int get offset; 1669 int get offset;
1747 1670
1748 /** 1671 /**
1749 * Return an array containing the names that are to be made visible in the imp orting library if 1672 * Return an array containing the names that are to be made visible in the imp orting library if
1750 * they are defined in the imported library. 1673 * they are defined in the imported library.
1751 * 1674 *
1752 * @return the names from the imported library that are visible in the importi ng library 1675 * @return the names from the imported library that are visible in the importi ng library
1753 */ 1676 */
1754 List<String> get shownNames; 1677 List<String> get shownNames;
1755 } 1678 }
1756 1679
1757 /** 1680 /**
1758 * The interface `ToolkitObjectElement` defines the behavior of elements that re present a 1681 * The interface `ToolkitObjectElement` defines the behavior of elements that re present a
1759 * toolkit specific object, such as Angular controller or component. These eleme nts are not based on 1682 * toolkit specific object, such as Angular controller or component. These eleme nts are not based on
1760 * the Dart syntax, but on some semantic agreement, such as a special annotation . 1683 * the Dart syntax, but on some semantic agreement, such as a special annotation .
1761 *
1762 * @coverage dart.engine.element
1763 */ 1684 */
1764 abstract class ToolkitObjectElement implements Element { 1685 abstract class ToolkitObjectElement implements Element {
1765 /** 1686 /**
1766 * An empty array of toolkit object elements. 1687 * An empty array of toolkit object elements.
1767 */ 1688 */
1768 static final List<ToolkitObjectElement> EMPTY_ARRAY = new List<ToolkitObjectEl ement>(0); 1689 static final List<ToolkitObjectElement> EMPTY_ARRAY = new List<ToolkitObjectEl ement>(0);
1769 } 1690 }
1770 1691
1771 /** 1692 /**
1772 * The interface `TopLevelVariableElement` defines the behavior of elements repr esenting a 1693 * The interface `TopLevelVariableElement` defines the behavior of elements repr esenting a
1773 * top-level variable. 1694 * top-level variable.
1774 *
1775 * @coverage dart.engine.element
1776 */ 1695 */
1777 abstract class TopLevelVariableElement implements PropertyInducingElement { 1696 abstract class TopLevelVariableElement implements PropertyInducingElement {
1778 } 1697 }
1779 1698
1780 /** 1699 /**
1781 * The interface `TypeParameterElement` defines the behavior of elements represe nting a type 1700 * The interface `TypeParameterElement` defines the behavior of elements represe nting a type
1782 * parameter. 1701 * parameter.
1783 *
1784 * @coverage dart.engine.element
1785 */ 1702 */
1786 abstract class TypeParameterElement implements Element { 1703 abstract class TypeParameterElement implements Element {
1787 /** 1704 /**
1788 * Return the type representing the bound associated with this parameter, or ` null` if this 1705 * Return the type representing the bound associated with this parameter, or ` null` if this
1789 * parameter does not have an explicit bound. 1706 * parameter does not have an explicit bound.
1790 * 1707 *
1791 * @return the type representing the bound associated with this parameter 1708 * @return the type representing the bound associated with this parameter
1792 */ 1709 */
1793 Type2 get bound; 1710 Type2 get bound;
1794 1711
1795 /** 1712 /**
1796 * Return the type defined by this type parameter. 1713 * Return the type defined by this type parameter.
1797 * 1714 *
1798 * @return the type defined by this type parameter 1715 * @return the type defined by this type parameter
1799 */ 1716 */
1800 TypeParameterType get type; 1717 TypeParameterType get type;
1801 } 1718 }
1802 1719
1803 /** 1720 /**
1804 * The interface `UndefinedElement` defines the behavior of pseudo-elements that represent 1721 * The interface `UndefinedElement` defines the behavior of pseudo-elements that represent
1805 * names that are undefined. This situation is not allowed by the language, so o bjects implementing 1722 * names that are undefined. This situation is not allowed by the language, so o bjects implementing
1806 * this interface always represent an error. As a result, most of the normal ope rations on elements 1723 * this interface always represent an error. As a result, most of the normal ope rations on elements
1807 * do not make sense and will return useless results. 1724 * do not make sense and will return useless results.
1808 *
1809 * @coverage dart.engine.element
1810 */ 1725 */
1811 abstract class UndefinedElement implements Element { 1726 abstract class UndefinedElement implements Element {
1812 } 1727 }
1813 1728
1814 /** 1729 /**
1815 * The interface `UriReferencedElement` defines the behavior of objects included into a 1730 * The interface `UriReferencedElement` defines the behavior of objects included into a
1816 * library using some URI. 1731 * library using some URI.
1817 *
1818 * @coverage dart.engine.element
1819 */ 1732 */
1820 abstract class UriReferencedElement implements Element { 1733 abstract class UriReferencedElement implements Element {
1821 /** 1734 /**
1822 * Return the URI that is used to include this element into the enclosing libr ary, or `null` 1735 * Return the URI that is used to include this element into the enclosing libr ary, or `null`
1823 * if this is the defining compilation unit of a library. 1736 * if this is the defining compilation unit of a library.
1824 * 1737 *
1825 * @return the URI that is used to include this element into the enclosing lib rary 1738 * @return the URI that is used to include this element into the enclosing lib rary
1826 */ 1739 */
1827 String get uri; 1740 String get uri;
1828 } 1741 }
1829 1742
1830 /** 1743 /**
1831 * The interface `VariableElement` defines the behavior common to elements that represent a 1744 * The interface `VariableElement` defines the behavior common to elements that represent a
1832 * variable. 1745 * variable.
1833 *
1834 * @coverage dart.engine.element
1835 */ 1746 */
1836 abstract class VariableElement implements Element { 1747 abstract class VariableElement implements Element {
1837 /** 1748 /**
1838 * Return a synthetic function representing this variable's initializer, or `n ull` if this 1749 * Return a synthetic function representing this variable's initializer, or `n ull` if this
1839 * variable does not have an initializer. The function will have no parameters . The return type of 1750 * variable does not have an initializer. The function will have no parameters . The return type of
1840 * the function will be the compile-time type of the initialization expression . 1751 * the function will be the compile-time type of the initialization expression .
1841 * 1752 *
1842 * @return a synthetic function representing this variable's initializer 1753 * @return a synthetic function representing this variable's initializer
1843 */ 1754 */
1844 FunctionElement get initializer; 1755 FunctionElement get initializer;
(...skipping 30 matching lines...) Expand all
1875 * final. 1786 * final.
1876 * 1787 *
1877 * @return `true` if this variable was declared with the 'final' modifier 1788 * @return `true` if this variable was declared with the 'final' modifier
1878 */ 1789 */
1879 bool get isFinal; 1790 bool get isFinal;
1880 } 1791 }
1881 1792
1882 /** 1793 /**
1883 * The interface `AngularControllerElement` defines the Angular component descri bed by 1794 * The interface `AngularControllerElement` defines the Angular component descri bed by
1884 * <code>NgComponent</code> annotation. 1795 * <code>NgComponent</code> annotation.
1885 *
1886 * @coverage dart.engine.element
1887 */ 1796 */
1888 abstract class AngularComponentElement implements AngularHasSelectorElement, Ang ularHasTemplateElement { 1797 abstract class AngularComponentElement implements AngularHasSelectorElement, Ang ularHasTemplateElement {
1889 /** 1798 /**
1890 * Return an array containing all of the properties declared by this component . 1799 * Return an array containing all of the properties declared by this component .
1891 */ 1800 */
1892 List<AngularPropertyElement> get properties; 1801 List<AngularPropertyElement> get properties;
1893 1802
1894 /** 1803 /**
1895 * Return an array containing all of the scope properties set in the implement ation of this 1804 * Return an array containing all of the scope properties set in the implement ation of this
1896 * component. 1805 * component.
1897 */ 1806 */
1898 List<AngularScopePropertyElement> get scopeProperties; 1807 List<AngularScopePropertyElement> get scopeProperties;
1899 1808
1900 /** 1809 /**
1901 * Returns the CSS file URI. 1810 * Returns the CSS file URI.
1902 */ 1811 */
1903 String get styleUri; 1812 String get styleUri;
1904 1813
1905 /** 1814 /**
1906 * Return the offset of the [getStyleUri] in the [getSource]. 1815 * Return the offset of the [getStyleUri] in the [getSource].
1907 * 1816 *
1908 * @return the offset of the style URI 1817 * @return the offset of the style URI
1909 */ 1818 */
1910 int get styleUriOffset; 1819 int get styleUriOffset;
1911 } 1820 }
1912 1821
1913 /** 1822 /**
1914 * The interface `AngularControllerElement` defines the Angular controller descr ibed by 1823 * The interface `AngularControllerElement` defines the Angular controller descr ibed by
1915 * <code>NgController</code> annotation. 1824 * <code>NgController</code> annotation.
1916 *
1917 * @coverage dart.engine.element
1918 */ 1825 */
1919 abstract class AngularControllerElement implements AngularHasSelectorElement { 1826 abstract class AngularControllerElement implements AngularHasSelectorElement {
1920 } 1827 }
1921 1828
1922 /** 1829 /**
1923 * The interface `AngularDirectiveElement` defines the Angular controller descri bed by 1830 * The interface `AngularDirectiveElement` defines the Angular controller descri bed by
1924 * <code>NgDirective</code> annotation. 1831 * <code>NgDirective</code> annotation.
1925 *
1926 * @coverage dart.engine.element
1927 */ 1832 */
1928 abstract class AngularDirectiveElement implements AngularHasSelectorElement { 1833 abstract class AngularDirectiveElement implements AngularHasSelectorElement {
1929 /** 1834 /**
1930 * Return an array containing all of the properties declared by this directive . 1835 * Return an array containing all of the properties declared by this directive .
1931 */ 1836 */
1932 List<AngularPropertyElement> get properties; 1837 List<AngularPropertyElement> get properties;
1933 1838
1934 /** 1839 /**
1935 * Checks if this directive is implemented by the class with given name. 1840 * Checks if this directive is implemented by the class with given name.
1936 */ 1841 */
1937 bool isClass(String name); 1842 bool isClass(String name);
1938 } 1843 }
1939 1844
1940 /** 1845 /**
1941 * The interface `AngularElement` defines the behavior of objects representing i nformation 1846 * The interface `AngularElement` defines the behavior of objects representing i nformation
1942 * about an Angular specific element. 1847 * about an Angular specific element.
1943 *
1944 * @coverage dart.engine.element
1945 */ 1848 */
1946 abstract class AngularElement implements ToolkitObjectElement { 1849 abstract class AngularElement implements ToolkitObjectElement {
1947 /** 1850 /**
1948 * An empty array of angular elements. 1851 * An empty array of angular elements.
1949 */ 1852 */
1950 static final List<AngularElement> EMPTY_ARRAY = new List<AngularElement>(0); 1853 static final List<AngularElement> EMPTY_ARRAY = new List<AngularElement>(0);
1951 1854
1952 /** 1855 /**
1953 * Returns the [AngularApplication] this element is used in. 1856 * Returns the [AngularApplication] this element is used in.
1954 * 1857 *
1955 * @return the [AngularApplication] this element is used in 1858 * @return the [AngularApplication] this element is used in
1956 */ 1859 */
1957 AngularApplication get application; 1860 AngularApplication get application;
1958 } 1861 }
1959 1862
1960 /** 1863 /**
1961 * The interface `AngularFilterElement` defines the Angular filter described by 1864 * The interface `AngularFilterElement` defines the Angular filter described by
1962 * <code>NgFilter</code> annotation. 1865 * <code>NgFilter</code> annotation.
1963 *
1964 * @coverage dart.engine.element
1965 */ 1866 */
1966 abstract class AngularFilterElement implements AngularElement { 1867 abstract class AngularFilterElement implements AngularElement {
1967 } 1868 }
1968 1869
1969 /** 1870 /**
1970 * [AngularSelectorElement] based on presence of attribute. 1871 * [AngularSelectorElement] based on presence of attribute.
1971 */ 1872 */
1972 abstract class AngularHasAttributeSelectorElement implements AngularSelectorElem ent { 1873 abstract class AngularHasAttributeSelectorElement implements AngularSelectorElem ent {
1973 } 1874 }
1974 1875
1975 /** 1876 /**
1976 * [AngularSelectorElement] based on presence of a class. 1877 * [AngularSelectorElement] based on presence of a class.
1977 */ 1878 */
1978 abstract class AngularHasClassSelectorElement implements AngularSelectorElement { 1879 abstract class AngularHasClassSelectorElement implements AngularSelectorElement {
1979 } 1880 }
1980 1881
1981 /** 1882 /**
1982 * The interface `AngularElement` defines the behavior of objects representing i nformation 1883 * The interface `AngularElement` defines the behavior of objects representing i nformation
1983 * about an Angular element which is applied conditionally using some [AngularSe lectorElement]. 1884 * about an Angular element which is applied conditionally using some [AngularSe lectorElement].
1984 *
1985 * @coverage dart.engine.element
1986 */ 1885 */
1987 abstract class AngularHasSelectorElement implements AngularElement { 1886 abstract class AngularHasSelectorElement implements AngularElement {
1988 /** 1887 /**
1989 * Returns the selector specified for this element. 1888 * Returns the selector specified for this element.
1990 * 1889 *
1991 * @return the [AngularSelectorElement] specified for this element 1890 * @return the [AngularSelectorElement] specified for this element
1992 */ 1891 */
1993 AngularSelectorElement get selector; 1892 AngularSelectorElement get selector;
1994 } 1893 }
1995 1894
1996 /** 1895 /**
1997 * The interface `AngularHasTemplateElement` defines common behavior for 1896 * The interface `AngularHasTemplateElement` defines common behavior for
1998 * [AngularElement] that have template URI / [Source]. 1897 * [AngularElement] that have template URI / [Source].
1999 *
2000 * @coverage dart.engine.element
2001 */ 1898 */
2002 abstract class AngularHasTemplateElement implements AngularElement { 1899 abstract class AngularHasTemplateElement implements AngularElement {
2003 /** 1900 /**
2004 * Returns the HTML template [Source], `null` if not resolved. 1901 * Returns the HTML template [Source], `null` if not resolved.
2005 */ 1902 */
2006 Source get templateSource; 1903 Source get templateSource;
2007 1904
2008 /** 1905 /**
2009 * Returns the HTML template URI. 1906 * Returns the HTML template URI.
2010 */ 1907 */
2011 String get templateUri; 1908 String get templateUri;
2012 1909
2013 /** 1910 /**
2014 * Return the offset of the [getTemplateUri] in the [getSource]. 1911 * Return the offset of the [getTemplateUri] in the [getSource].
2015 * 1912 *
2016 * @return the offset of the template URI 1913 * @return the offset of the template URI
2017 */ 1914 */
2018 int get templateUriOffset; 1915 int get templateUriOffset;
2019 } 1916 }
2020 1917
2021 /** 1918 /**
2022 * The interface `AngularPropertyElement` defines a single property in 1919 * The interface `AngularPropertyElement` defines a single property in
2023 * [AngularComponentElement]. 1920 * [AngularComponentElement].
2024 *
2025 * @coverage dart.engine.element
2026 */ 1921 */
2027 abstract class AngularPropertyElement implements AngularElement { 1922 abstract class AngularPropertyElement implements AngularElement {
2028 /** 1923 /**
2029 * An empty array of property elements. 1924 * An empty array of property elements.
2030 */ 1925 */
2031 static final List<AngularPropertyElement> EMPTY_ARRAY = []; 1926 static final List<AngularPropertyElement> EMPTY_ARRAY = [];
2032 1927
2033 /** 1928 /**
2034 * Returns the field this property is mapped to. 1929 * Returns the field this property is mapped to.
2035 * 1930 *
(...skipping 12 matching lines...) Expand all
2048 /** 1943 /**
2049 * Returns the kind of this property. 1944 * Returns the kind of this property.
2050 * 1945 *
2051 * @return the kind of this property 1946 * @return the kind of this property
2052 */ 1947 */
2053 AngularPropertyKind get propertyKind; 1948 AngularPropertyKind get propertyKind;
2054 } 1949 }
2055 1950
2056 /** 1951 /**
2057 * The enumeration `AngularPropertyKind` defines the different kinds of property bindings. 1952 * The enumeration `AngularPropertyKind` defines the different kinds of property bindings.
2058 *
2059 * @coverage dart.engine.element
2060 */ 1953 */
2061 class AngularPropertyKind extends Enum<AngularPropertyKind> { 1954 class AngularPropertyKind extends Enum<AngularPropertyKind> {
2062 /** 1955 /**
2063 * `@` - Map the DOM attribute string. The attribute string will be taken lite rally or 1956 * `@` - Map the DOM attribute string. The attribute string will be taken lite rally or
2064 * interpolated if it contains binding {{}} syntax and assigned to the express ion. (cost: 0 1957 * interpolated if it contains binding {{}} syntax and assigned to the express ion. (cost: 0
2065 * watches) 1958 * watches)
2066 */ 1959 */
2067 static final AngularPropertyKind ATTR = new AngularPropertyKind('ATTR', 0); 1960 static final AngularPropertyKind ATTR = new AngularPropertyKind('ATTR', 0);
2068 1961
2069 /** 1962 /**
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 2002
2110 class AngularPropertyKind_TWO_WAY extends AngularPropertyKind { 2003 class AngularPropertyKind_TWO_WAY extends AngularPropertyKind {
2111 AngularPropertyKind_TWO_WAY(String name, int ordinal) : super(name, ordinal); 2004 AngularPropertyKind_TWO_WAY(String name, int ordinal) : super(name, ordinal);
2112 2005
2113 bool callsGetter() => true; 2006 bool callsGetter() => true;
2114 } 2007 }
2115 2008
2116 /** 2009 /**
2117 * The interface `AngularScopeVariableElement` defines the Angular <code>Scope</ code> 2010 * The interface `AngularScopeVariableElement` defines the Angular <code>Scope</ code>
2118 * property. They are created for every <code>scope['property'] = value;</code> code snippet. 2011 * property. They are created for every <code>scope['property'] = value;</code> code snippet.
2119 *
2120 * @coverage dart.engine.element
2121 */ 2012 */
2122 abstract class AngularScopePropertyElement implements AngularElement { 2013 abstract class AngularScopePropertyElement implements AngularElement {
2123 /** 2014 /**
2124 * An empty array of scope property elements. 2015 * An empty array of scope property elements.
2125 */ 2016 */
2126 static final List<AngularScopePropertyElement> EMPTY_ARRAY = []; 2017 static final List<AngularScopePropertyElement> EMPTY_ARRAY = [];
2127 2018
2128 /** 2019 /**
2129 * Returns the type of this property, not `null`, maybe <code>dynamic</code>. 2020 * Returns the type of this property, not `null`, maybe <code>dynamic</code>.
2130 * 2021 *
(...skipping 20 matching lines...) Expand all
2151 2042
2152 /** 2043 /**
2153 * [AngularSelectorElement] based on tag name. 2044 * [AngularSelectorElement] based on tag name.
2154 */ 2045 */
2155 abstract class AngularTagSelectorElement implements AngularSelectorElement { 2046 abstract class AngularTagSelectorElement implements AngularSelectorElement {
2156 } 2047 }
2157 2048
2158 /** 2049 /**
2159 * The interface `AngularViewElement` defines the Angular view defined using inv ocation like 2050 * The interface `AngularViewElement` defines the Angular view defined using inv ocation like
2160 * <code>view('views/create.html')</code>. 2051 * <code>view('views/create.html')</code>.
2161 *
2162 * @coverage dart.engine.element
2163 */ 2052 */
2164 abstract class AngularViewElement implements AngularHasTemplateElement { 2053 abstract class AngularViewElement implements AngularHasTemplateElement {
2165 /** 2054 /**
2166 * An empty array of view elements. 2055 * An empty array of view elements.
2167 */ 2056 */
2168 static final List<AngularViewElement> EMPTY_ARRAY = new List<AngularViewElemen t>(0); 2057 static final List<AngularViewElement> EMPTY_ARRAY = new List<AngularViewElemen t>(0);
2169 } 2058 }
2170 2059
2171 /** 2060 /**
2172 * Instances of the class `GeneralizingElementVisitor` implement an element visi tor that will 2061 * Instances of the class `GeneralizingElementVisitor` implement an element visi tor that will
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2215 * LocalElement 2104 * LocalElement
2216 * LocalVariableElement 2105 * LocalVariableElement
2217 * ParameterElement 2106 * ParameterElement
2218 * FieldFormalParameterElement 2107 * FieldFormalParameterElement
2219 * </pre> 2108 * </pre>
2220 * 2109 *
2221 * Subclasses that override a visit method must either invoke the overridden vis it method or 2110 * Subclasses that override a visit method must either invoke the overridden vis it method or
2222 * explicitly invoke the more general visit method. Failure to do so will cause the visit methods 2111 * explicitly invoke the more general visit method. Failure to do so will cause the visit methods
2223 * for superclasses of the element to not be invoked and will cause the children of the visited node 2112 * for superclasses of the element to not be invoked and will cause the children of the visited node
2224 * to not be visited. 2113 * to not be visited.
2225 *
2226 * @coverage dart.engine.element
2227 */ 2114 */
2228 class GeneralizingElementVisitor<R> implements ElementVisitor<R> { 2115 class GeneralizingElementVisitor<R> implements ElementVisitor<R> {
2229 R visitAngularComponentElement(AngularComponentElement element) => visitAngula rHasSelectorElement(element); 2116 R visitAngularComponentElement(AngularComponentElement element) => visitAngula rHasSelectorElement(element);
2230 2117
2231 R visitAngularControllerElement(AngularControllerElement element) => visitAngu larHasSelectorElement(element); 2118 R visitAngularControllerElement(AngularControllerElement element) => visitAngu larHasSelectorElement(element);
2232 2119
2233 R visitAngularDirectiveElement(AngularDirectiveElement element) => visitAngula rHasSelectorElement(element); 2120 R visitAngularDirectiveElement(AngularDirectiveElement element) => visitAngula rHasSelectorElement(element);
2234 2121
2235 R visitAngularElement(AngularElement element) => visitToolkitObjectElement(ele ment); 2122 R visitAngularElement(AngularElement element) => visitToolkitObjectElement(ele ment);
2236 2123
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
2319 2206
2320 /** 2207 /**
2321 * Instances of the class `RecursiveElementVisitor` implement an element visitor that will 2208 * Instances of the class `RecursiveElementVisitor` implement an element visitor that will
2322 * recursively visit all of the element in an element model. For example, using an instance of this 2209 * recursively visit all of the element in an element model. For example, using an instance of this
2323 * class to visit a [CompilationUnitElement] will also cause all of the types in the 2210 * class to visit a [CompilationUnitElement] will also cause all of the types in the
2324 * compilation unit to be visited. 2211 * compilation unit to be visited.
2325 * 2212 *
2326 * Subclasses that override a visit method must either invoke the overridden vis it method or must 2213 * Subclasses that override a visit method must either invoke the overridden vis it method or must
2327 * explicitly ask the visited element to visit its children. Failure to do so wi ll cause the 2214 * explicitly ask the visited element to visit its children. Failure to do so wi ll cause the
2328 * children of the visited element to not be visited. 2215 * children of the visited element to not be visited.
2329 *
2330 * @coverage dart.engine.element
2331 */ 2216 */
2332 class RecursiveElementVisitor<R> implements ElementVisitor<R> { 2217 class RecursiveElementVisitor<R> implements ElementVisitor<R> {
2333 R visitAngularComponentElement(AngularComponentElement element) { 2218 R visitAngularComponentElement(AngularComponentElement element) {
2334 element.visitChildren(this); 2219 element.visitChildren(this);
2335 return null; 2220 return null;
2336 } 2221 }
2337 2222
2338 R visitAngularControllerElement(AngularControllerElement element) { 2223 R visitAngularControllerElement(AngularControllerElement element) {
2339 element.visitChildren(this); 2224 element.visitChildren(this);
2340 return null; 2225 return null;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
2479 element.visitChildren(this); 2364 element.visitChildren(this);
2480 return null; 2365 return null;
2481 } 2366 }
2482 } 2367 }
2483 2368
2484 /** 2369 /**
2485 * Instances of the class `SimpleElementVisitor` implement an element visitor th at will do 2370 * Instances of the class `SimpleElementVisitor` implement an element visitor th at will do
2486 * nothing when visiting an element. It is intended to be a superclass for class es that use the 2371 * nothing when visiting an element. It is intended to be a superclass for class es that use the
2487 * visitor pattern primarily as a dispatch mechanism (and hence don't need to re cursively visit a 2372 * visitor pattern primarily as a dispatch mechanism (and hence don't need to re cursively visit a
2488 * whole structure) and that only need to visit a small number of element types. 2373 * whole structure) and that only need to visit a small number of element types.
2489 *
2490 * @coverage dart.engine.element
2491 */ 2374 */
2492 class SimpleElementVisitor<R> implements ElementVisitor<R> { 2375 class SimpleElementVisitor<R> implements ElementVisitor<R> {
2493 R visitAngularComponentElement(AngularComponentElement element) => null; 2376 R visitAngularComponentElement(AngularComponentElement element) => null;
2494 2377
2495 R visitAngularControllerElement(AngularControllerElement element) => null; 2378 R visitAngularControllerElement(AngularControllerElement element) => null;
2496 2379
2497 R visitAngularDirectiveElement(AngularDirectiveElement element) => null; 2380 R visitAngularDirectiveElement(AngularDirectiveElement element) => null;
2498 2381
2499 R visitAngularFilterElement(AngularFilterElement element) => null; 2382 R visitAngularFilterElement(AngularFilterElement element) => null;
2500 2383
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
2575 * Create the [AuxiliaryElements] with a static and propagated [ExecutableElem ent]. 2458 * Create the [AuxiliaryElements] with a static and propagated [ExecutableElem ent].
2576 * 2459 *
2577 * @param staticElement the static element 2460 * @param staticElement the static element
2578 * @param propagatedElement the propagated element 2461 * @param propagatedElement the propagated element
2579 */ 2462 */
2580 AuxiliaryElements(this.staticElement, this.propagatedElement); 2463 AuxiliaryElements(this.staticElement, this.propagatedElement);
2581 } 2464 }
2582 2465
2583 /** 2466 /**
2584 * Instances of the class `ClassElementImpl` implement a `ClassElement`. 2467 * Instances of the class `ClassElementImpl` implement a `ClassElement`.
2585 *
2586 * @coverage dart.engine.element
2587 */ 2468 */
2588 class ClassElementImpl extends ElementImpl implements ClassElement { 2469 class ClassElementImpl extends ElementImpl implements ClassElement {
2589 /** 2470 /**
2590 * An array containing all of the accessors (getters and setters) contained in this class. 2471 * An array containing all of the accessors (getters and setters) contained in this class.
2591 */ 2472 */
2592 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A RRAY; 2473 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A RRAY;
2593 2474
2594 /** 2475 /**
2595 * An array containing all of the constructors contained in this class. 2476 * An array containing all of the constructors contained in this class.
2596 */ 2477 */
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
3088 return true; 2969 return true;
3089 } 2970 }
3090 } 2971 }
3091 return false; 2972 return false;
3092 } 2973 }
3093 } 2974 }
3094 2975
3095 /** 2976 /**
3096 * Instances of the class `CompilationUnitElementImpl` implement a 2977 * Instances of the class `CompilationUnitElementImpl` implement a
3097 * [CompilationUnitElement]. 2978 * [CompilationUnitElement].
3098 *
3099 * @coverage dart.engine.element
3100 */ 2979 */
3101 class CompilationUnitElementImpl extends ElementImpl implements CompilationUnitE lement { 2980 class CompilationUnitElementImpl extends ElementImpl implements CompilationUnitE lement {
3102 /** 2981 /**
3103 * An empty array of compilation unit elements. 2982 * An empty array of compilation unit elements.
3104 */ 2983 */
3105 static List<CompilationUnitElement> EMPTY_ARRAY = new List<CompilationUnitElem ent>(0); 2984 static List<CompilationUnitElement> EMPTY_ARRAY = new List<CompilationUnitElem ent>(0);
3106 2985
3107 /** 2986 /**
3108 * The source that corresponds to this compilation unit. 2987 * The source that corresponds to this compilation unit.
3109 */ 2988 */
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
3362 EvaluationResultImpl get evaluationResult => _result; 3241 EvaluationResultImpl get evaluationResult => _result;
3363 3242
3364 void set evaluationResult(EvaluationResultImpl result) { 3243 void set evaluationResult(EvaluationResultImpl result) {
3365 this._result = result; 3244 this._result = result;
3366 } 3245 }
3367 } 3246 }
3368 3247
3369 /** 3248 /**
3370 * Instances of the class `ConstLocalVariableElementImpl` implement a 3249 * Instances of the class `ConstLocalVariableElementImpl` implement a
3371 * `LocalVariableElement` for a local 'const' variable that has an initializer. 3250 * `LocalVariableElement` for a local 'const' variable that has an initializer.
3372 *
3373 * @coverage dart.engine.element
3374 */ 3251 */
3375 class ConstLocalVariableElementImpl extends LocalVariableElementImpl { 3252 class ConstLocalVariableElementImpl extends LocalVariableElementImpl {
3376 /** 3253 /**
3377 * The result of evaluating this variable's initializer. 3254 * The result of evaluating this variable's initializer.
3378 */ 3255 */
3379 EvaluationResultImpl _result; 3256 EvaluationResultImpl _result;
3380 3257
3381 /** 3258 /**
3382 * Initialize a newly created local variable element to have the given name. 3259 * Initialize a newly created local variable element to have the given name.
3383 * 3260 *
(...skipping 27 matching lines...) Expand all
3411 3288
3412 EvaluationResultImpl get evaluationResult => _result; 3289 EvaluationResultImpl get evaluationResult => _result;
3413 3290
3414 void set evaluationResult(EvaluationResultImpl result) { 3291 void set evaluationResult(EvaluationResultImpl result) {
3415 this._result = result; 3292 this._result = result;
3416 } 3293 }
3417 } 3294 }
3418 3295
3419 /** 3296 /**
3420 * Instances of the class `ConstructorElementImpl` implement a `ConstructorEleme nt`. 3297 * Instances of the class `ConstructorElementImpl` implement a `ConstructorEleme nt`.
3421 *
3422 * @coverage dart.engine.element
3423 */ 3298 */
3424 class ConstructorElementImpl extends ExecutableElementImpl implements Constructo rElement { 3299 class ConstructorElementImpl extends ExecutableElementImpl implements Constructo rElement {
3425 /** 3300 /**
3426 * An empty array of constructor elements. 3301 * An empty array of constructor elements.
3427 */ 3302 */
3428 static List<ConstructorElement> EMPTY_ARRAY = new List<ConstructorElement>(0); 3303 static List<ConstructorElement> EMPTY_ARRAY = new List<ConstructorElement>(0);
3429 3304
3430 /** 3305 /**
3431 * The constructor to which this constructor is redirecting. 3306 * The constructor to which this constructor is redirecting.
3432 */ 3307 */
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
3503 builder.append("."); 3378 builder.append(".");
3504 builder.append(name); 3379 builder.append(name);
3505 } 3380 }
3506 super.appendTo(builder); 3381 super.appendTo(builder);
3507 } 3382 }
3508 } 3383 }
3509 3384
3510 /** 3385 /**
3511 * Instances of the class `DefaultFieldFormalParameterElementImpl` implement a 3386 * Instances of the class `DefaultFieldFormalParameterElementImpl` implement a
3512 * `FieldFormalParameterElementImpl` for parameters that have an initializer. 3387 * `FieldFormalParameterElementImpl` for parameters that have an initializer.
3513 *
3514 * @coverage dart.engine.element
3515 */ 3388 */
3516 class DefaultFieldFormalParameterElementImpl extends FieldFormalParameterElement Impl { 3389 class DefaultFieldFormalParameterElementImpl extends FieldFormalParameterElement Impl {
3517 /** 3390 /**
3518 * The result of evaluating this variable's initializer. 3391 * The result of evaluating this variable's initializer.
3519 */ 3392 */
3520 EvaluationResultImpl _result; 3393 EvaluationResultImpl _result;
3521 3394
3522 /** 3395 /**
3523 * Initialize a newly created parameter element to have the given name. 3396 * Initialize a newly created parameter element to have the given name.
3524 * 3397 *
3525 * @param name the name of this element 3398 * @param name the name of this element
3526 */ 3399 */
3527 DefaultFieldFormalParameterElementImpl(Identifier name) : super(name); 3400 DefaultFieldFormalParameterElementImpl(Identifier name) : super(name);
3528 3401
3529 EvaluationResultImpl get evaluationResult => _result; 3402 EvaluationResultImpl get evaluationResult => _result;
3530 3403
3531 void set evaluationResult(EvaluationResultImpl result) { 3404 void set evaluationResult(EvaluationResultImpl result) {
3532 this._result = result; 3405 this._result = result;
3533 } 3406 }
3534 } 3407 }
3535 3408
3536 /** 3409 /**
3537 * Instances of the class `DefaultParameterElementImpl` implement a `ParameterEl ement` 3410 * Instances of the class `DefaultParameterElementImpl` implement a `ParameterEl ement`
3538 * for parameters that have an initializer. 3411 * for parameters that have an initializer.
3539 *
3540 * @coverage dart.engine.element
3541 */ 3412 */
3542 class DefaultParameterElementImpl extends ParameterElementImpl { 3413 class DefaultParameterElementImpl extends ParameterElementImpl {
3543 /** 3414 /**
3544 * The result of evaluating this variable's initializer. 3415 * The result of evaluating this variable's initializer.
3545 */ 3416 */
3546 EvaluationResultImpl _result; 3417 EvaluationResultImpl _result;
3547 3418
3548 /** 3419 /**
3549 * Initialize a newly created parameter element to have the given name. 3420 * Initialize a newly created parameter element to have the given name.
3550 * 3421 *
3551 * @param name the name of this element 3422 * @param name the name of this element
3552 */ 3423 */
3553 DefaultParameterElementImpl(Identifier name) : super.con1(name); 3424 DefaultParameterElementImpl(Identifier name) : super.con1(name);
3554 3425
3555 EvaluationResultImpl get evaluationResult => _result; 3426 EvaluationResultImpl get evaluationResult => _result;
3556 3427
3557 void set evaluationResult(EvaluationResultImpl result) { 3428 void set evaluationResult(EvaluationResultImpl result) {
3558 this._result = result; 3429 this._result = result;
3559 } 3430 }
3560 } 3431 }
3561 3432
3562 /** 3433 /**
3563 * Instances of the class `DynamicElementImpl` represent the synthetic element r epresenting 3434 * Instances of the class `DynamicElementImpl` represent the synthetic element r epresenting
3564 * the declaration of the type `dynamic`. 3435 * the declaration of the type `dynamic`.
3565 *
3566 * @coverage dart.engine.element
3567 */ 3436 */
3568 class DynamicElementImpl extends ElementImpl { 3437 class DynamicElementImpl extends ElementImpl {
3569 /** 3438 /**
3570 * Return the unique instance of this class. 3439 * Return the unique instance of this class.
3571 * 3440 *
3572 * @return the unique instance of this class 3441 * @return the unique instance of this class
3573 */ 3442 */
3574 static DynamicElementImpl get instance => DynamicTypeImpl.instance.element as DynamicElementImpl; 3443 static DynamicElementImpl get instance => DynamicTypeImpl.instance.element as DynamicElementImpl;
3575 3444
3576 /** 3445 /**
(...skipping 10 matching lines...) Expand all
3587 setModifier(Modifier.SYNTHETIC, true); 3456 setModifier(Modifier.SYNTHETIC, true);
3588 } 3457 }
3589 3458
3590 accept(ElementVisitor visitor) => null; 3459 accept(ElementVisitor visitor) => null;
3591 3460
3592 ElementKind get kind => ElementKind.DYNAMIC; 3461 ElementKind get kind => ElementKind.DYNAMIC;
3593 } 3462 }
3594 3463
3595 /** 3464 /**
3596 * Instances of the class `ElementAnnotationImpl` implement an [ElementAnnotatio n]. 3465 * Instances of the class `ElementAnnotationImpl` implement an [ElementAnnotatio n].
3597 *
3598 * @coverage dart.engine.element
3599 */ 3466 */
3600 class ElementAnnotationImpl implements ElementAnnotation { 3467 class ElementAnnotationImpl implements ElementAnnotation {
3601 /** 3468 /**
3602 * The element representing the field, variable, or constructor being used as an annotation. 3469 * The element representing the field, variable, or constructor being used as an annotation.
3603 */ 3470 */
3604 final Element element; 3471 final Element element;
3605 3472
3606 /** 3473 /**
3607 * An empty array of annotations. 3474 * An empty array of annotations.
3608 */ 3475 */
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
3677 } 3544 }
3678 return false; 3545 return false;
3679 } 3546 }
3680 3547
3681 String toString() => "@${element.toString()}"; 3548 String toString() => "@${element.toString()}";
3682 } 3549 }
3683 3550
3684 /** 3551 /**
3685 * The abstract class `ElementImpl` implements the behavior common to objects th at implement 3552 * The abstract class `ElementImpl` implements the behavior common to objects th at implement
3686 * an [Element]. 3553 * an [Element].
3687 *
3688 * @coverage dart.engine.element
3689 */ 3554 */
3690 abstract class ElementImpl implements Element { 3555 abstract class ElementImpl implements Element {
3691 /** 3556 /**
3692 * The enclosing element of this element, or `null` if this element is at the root of the 3557 * The enclosing element of this element, or `null` if this element is at the root of the
3693 * element structure. 3558 * element structure.
3694 */ 3559 */
3695 ElementImpl _enclosingElement; 3560 ElementImpl _enclosingElement;
3696 3561
3697 /** 3562 /**
3698 * The name of this element. 3563 * The name of this element.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
3783 String get displayName => _name; 3648 String get displayName => _name;
3784 3649
3785 Element get enclosingElement => _enclosingElement; 3650 Element get enclosingElement => _enclosingElement;
3786 3651
3787 LibraryElement get library => getAncestor(LibraryElement); 3652 LibraryElement get library => getAncestor(LibraryElement);
3788 3653
3789 ElementLocation get location => new ElementLocationImpl.con1(this); 3654 ElementLocation get location => new ElementLocationImpl.con1(this);
3790 3655
3791 String get name => _name; 3656 String get name => _name;
3792 3657
3793 ASTNode get node => getNode2(ASTNode); 3658 AstNode get node => getNode2(AstNode);
3794 3659
3795 Source get source { 3660 Source get source {
3796 if (_enclosingElement == null) { 3661 if (_enclosingElement == null) {
3797 return null; 3662 return null;
3798 } 3663 }
3799 return _enclosingElement.source; 3664 return _enclosingElement.source;
3800 } 3665 }
3801 3666
3802 CompilationUnit get unit => context.resolveCompilationUnit(source, library); 3667 CompilationUnit get unit => context.resolveCompilationUnit(source, library);
3803 3668
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
3891 3756
3892 /** 3757 /**
3893 * Return an identifier that uniquely identifies this element among the childr en of this element's 3758 * Return an identifier that uniquely identifies this element among the childr en of this element's
3894 * parent. 3759 * parent.
3895 * 3760 *
3896 * @return an identifier that uniquely identifies this element relative to its parent 3761 * @return an identifier that uniquely identifies this element relative to its parent
3897 */ 3762 */
3898 String get identifier => name; 3763 String get identifier => name;
3899 3764
3900 /** 3765 /**
3901 * Return the resolved [ASTNode] of the given type enclosing [getNameOffset]. 3766 * Return the resolved [AstNode] of the given type enclosing [getNameOffset].
3902 */ 3767 */
3903 ASTNode getNode2(Type clazz) { 3768 AstNode getNode2(Type clazz) {
3904 CompilationUnit unit = this.unit; 3769 CompilationUnit unit = this.unit;
3905 if (unit == null) { 3770 if (unit == null) {
3906 return null; 3771 return null;
3907 } 3772 }
3908 int offset = nameOffset; 3773 int offset = nameOffset;
3909 ASTNode node = new NodeLocator.con1(offset).searchWithin(unit); 3774 AstNode node = new NodeLocator.con1(offset).searchWithin(unit);
3910 if (node == null) { 3775 if (node == null) {
3911 return null; 3776 return null;
3912 } 3777 }
3913 return node.getAncestor(clazz); 3778 return node.getAncestor(clazz);
3914 } 3779 }
3915 3780
3916 /** 3781 /**
3917 * Return `true` if this element has the given modifier associated with it. 3782 * Return `true` if this element has the given modifier associated with it.
3918 * 3783 *
3919 * @param modifier the modifier being tested for 3784 * @param modifier the modifier being tested for
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
3963 * @param modifier the modifier to be set 3828 * @param modifier the modifier to be set
3964 * @param value `true` if the modifier is to be associated with this element 3829 * @param value `true` if the modifier is to be associated with this element
3965 */ 3830 */
3966 void setModifier(Modifier modifier, bool value) { 3831 void setModifier(Modifier modifier, bool value) {
3967 _modifiers = BooleanArray.set(_modifiers, modifier, value); 3832 _modifiers = BooleanArray.set(_modifiers, modifier, value);
3968 } 3833 }
3969 } 3834 }
3970 3835
3971 /** 3836 /**
3972 * Instances of the class `ElementLocationImpl` implement an [ElementLocation]. 3837 * Instances of the class `ElementLocationImpl` implement an [ElementLocation].
3973 *
3974 * @coverage dart.engine.element
3975 */ 3838 */
3976 class ElementLocationImpl implements ElementLocation { 3839 class ElementLocationImpl implements ElementLocation {
3977 /** 3840 /**
3978 * The path to the element whose location is represented by this object. 3841 * The path to the element whose location is represented by this object.
3979 */ 3842 */
3980 List<String> _components; 3843 List<String> _components;
3981 3844
3982 /** 3845 /**
3983 * The character used to separate components in the encoded form. 3846 * The character used to separate components in the encoded form.
3984 */ 3847 */
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
4211 * @return the second element 4074 * @return the second element
4212 */ 4075 */
4213 Element get secondElt => _second; 4076 Element get secondElt => _second;
4214 4077
4215 int get hashCode => ObjectUtilities.combineHashCodes(_first.hashCode, _second. hashCode); 4078 int get hashCode => ObjectUtilities.combineHashCodes(_first.hashCode, _second. hashCode);
4216 } 4079 }
4217 4080
4218 /** 4081 /**
4219 * Instances of the class `EmbeddedHtmlScriptElementImpl` implement an 4082 * Instances of the class `EmbeddedHtmlScriptElementImpl` implement an
4220 * [EmbeddedHtmlScriptElement]. 4083 * [EmbeddedHtmlScriptElement].
4221 *
4222 * @coverage dart.engine.element
4223 */ 4084 */
4224 class EmbeddedHtmlScriptElementImpl extends HtmlScriptElementImpl implements Emb eddedHtmlScriptElement { 4085 class EmbeddedHtmlScriptElementImpl extends HtmlScriptElementImpl implements Emb eddedHtmlScriptElement {
4225 /** 4086 /**
4226 * The library defined by the script tag's content. 4087 * The library defined by the script tag's content.
4227 */ 4088 */
4228 LibraryElement _scriptLibrary; 4089 LibraryElement _scriptLibrary;
4229 4090
4230 /** 4091 /**
4231 * Initialize a newly created script element to have the specified tag name an d offset. 4092 * Initialize a newly created script element to have the specified tag name an d offset.
4232 * 4093 *
(...skipping 18 matching lines...) Expand all
4251 } 4112 }
4252 4113
4253 void visitChildren(ElementVisitor visitor) { 4114 void visitChildren(ElementVisitor visitor) {
4254 safelyVisitChild(_scriptLibrary, visitor); 4115 safelyVisitChild(_scriptLibrary, visitor);
4255 } 4116 }
4256 } 4117 }
4257 4118
4258 /** 4119 /**
4259 * The abstract class `ExecutableElementImpl` implements the behavior common to 4120 * The abstract class `ExecutableElementImpl` implements the behavior common to
4260 * `ExecutableElement`s. 4121 * `ExecutableElement`s.
4261 *
4262 * @coverage dart.engine.element
4263 */ 4122 */
4264 abstract class ExecutableElementImpl extends ElementImpl implements ExecutableEl ement { 4123 abstract class ExecutableElementImpl extends ElementImpl implements ExecutableEl ement {
4265 /** 4124 /**
4266 * An array containing all of the functions defined within this executable ele ment. 4125 * An array containing all of the functions defined within this executable ele ment.
4267 */ 4126 */
4268 List<FunctionElement> _functions = FunctionElementImpl.EMPTY_ARRAY; 4127 List<FunctionElement> _functions = FunctionElementImpl.EMPTY_ARRAY;
4269 4128
4270 /** 4129 /**
4271 * An array containing all of the labels defined within this executable elemen t. 4130 * An array containing all of the labels defined within this executable elemen t.
4272 */ 4131 */
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
4439 } 4298 }
4440 if (type != null) { 4299 if (type != null) {
4441 builder.append(Element.RIGHT_ARROW); 4300 builder.append(Element.RIGHT_ARROW);
4442 builder.append(type.returnType); 4301 builder.append(type.returnType);
4443 } 4302 }
4444 } 4303 }
4445 } 4304 }
4446 4305
4447 /** 4306 /**
4448 * Instances of the class `ExportElementImpl` implement an [ExportElement]. 4307 * Instances of the class `ExportElementImpl` implement an [ExportElement].
4449 *
4450 * @coverage dart.engine.element
4451 */ 4308 */
4452 class ExportElementImpl extends ElementImpl implements ExportElement { 4309 class ExportElementImpl extends ElementImpl implements ExportElement {
4453 /** 4310 /**
4454 * The URI that is specified by this directive. 4311 * The URI that is specified by this directive.
4455 */ 4312 */
4456 String uri; 4313 String uri;
4457 4314
4458 /** 4315 /**
4459 * The library that is exported from this library by this export directive. 4316 * The library that is exported from this library by this export directive.
4460 */ 4317 */
(...skipping 18 matching lines...) Expand all
4479 builder.append("export "); 4336 builder.append("export ");
4480 (exportedLibrary as LibraryElementImpl).appendTo(builder); 4337 (exportedLibrary as LibraryElementImpl).appendTo(builder);
4481 } 4338 }
4482 4339
4483 String get identifier => exportedLibrary.name; 4340 String get identifier => exportedLibrary.name;
4484 } 4341 }
4485 4342
4486 /** 4343 /**
4487 * Instances of the class `ExternalHtmlScriptElementImpl` implement an 4344 * Instances of the class `ExternalHtmlScriptElementImpl` implement an
4488 * [ExternalHtmlScriptElement]. 4345 * [ExternalHtmlScriptElement].
4489 *
4490 * @coverage dart.engine.element
4491 */ 4346 */
4492 class ExternalHtmlScriptElementImpl extends HtmlScriptElementImpl implements Ext ernalHtmlScriptElement { 4347 class ExternalHtmlScriptElementImpl extends HtmlScriptElementImpl implements Ext ernalHtmlScriptElement {
4493 /** 4348 /**
4494 * The source specified in the `source` attribute or `null` if unspecified. 4349 * The source specified in the `source` attribute or `null` if unspecified.
4495 */ 4350 */
4496 Source scriptSource; 4351 Source scriptSource;
4497 4352
4498 /** 4353 /**
4499 * Initialize a newly created script element to have the specified tag name an d offset. 4354 * Initialize a newly created script element to have the specified tag name an d offset.
4500 * 4355 *
4501 * @param node the XML node from which this element is derived (not `null`) 4356 * @param node the XML node from which this element is derived (not `null`)
4502 */ 4357 */
4503 ExternalHtmlScriptElementImpl(XmlTagNode node) : super(node); 4358 ExternalHtmlScriptElementImpl(XmlTagNode node) : super(node);
4504 4359
4505 accept(ElementVisitor visitor) => visitor.visitExternalHtmlScriptElement(this) ; 4360 accept(ElementVisitor visitor) => visitor.visitExternalHtmlScriptElement(this) ;
4506 4361
4507 ElementKind get kind => ElementKind.EXTERNAL_HTML_SCRIPT; 4362 ElementKind get kind => ElementKind.EXTERNAL_HTML_SCRIPT;
4508 } 4363 }
4509 4364
4510 /** 4365 /**
4511 * Instances of the class `FieldElementImpl` implement a `FieldElement`. 4366 * Instances of the class `FieldElementImpl` implement a `FieldElement`.
4512 *
4513 * @coverage dart.engine.element
4514 */ 4367 */
4515 class FieldElementImpl extends PropertyInducingElementImpl implements FieldEleme nt { 4368 class FieldElementImpl extends PropertyInducingElementImpl implements FieldEleme nt {
4516 /** 4369 /**
4517 * An empty array of field elements. 4370 * An empty array of field elements.
4518 */ 4371 */
4519 static List<FieldElement> EMPTY_ARRAY = new List<FieldElement>(0); 4372 static List<FieldElement> EMPTY_ARRAY = new List<FieldElement>(0);
4520 4373
4521 /** 4374 /**
4522 * Initialize a newly created field element to have the given name. 4375 * Initialize a newly created field element to have the given name.
4523 * 4376 *
(...skipping 23 matching lines...) Expand all
4547 */ 4400 */
4548 void set static(bool isStatic) { 4401 void set static(bool isStatic) {
4549 setModifier(Modifier.STATIC, isStatic); 4402 setModifier(Modifier.STATIC, isStatic);
4550 } 4403 }
4551 } 4404 }
4552 4405
4553 /** 4406 /**
4554 * Instances of the class `FieldFormalParameterElementImpl` extend 4407 * Instances of the class `FieldFormalParameterElementImpl` extend
4555 * [ParameterElementImpl] to provide the additional information of the [FieldEle ment] 4408 * [ParameterElementImpl] to provide the additional information of the [FieldEle ment]
4556 * associated with the parameter. 4409 * associated with the parameter.
4557 *
4558 * @coverage dart.engine.element
4559 */ 4410 */
4560 class FieldFormalParameterElementImpl extends ParameterElementImpl implements Fi eldFormalParameterElement { 4411 class FieldFormalParameterElementImpl extends ParameterElementImpl implements Fi eldFormalParameterElement {
4561 /** 4412 /**
4562 * The field associated with this field formal parameter. 4413 * The field associated with this field formal parameter.
4563 */ 4414 */
4564 FieldElement field; 4415 FieldElement field;
4565 4416
4566 /** 4417 /**
4567 * Initialize a newly created parameter element to have the given name. 4418 * Initialize a newly created parameter element to have the given name.
4568 * 4419 *
4569 * @param name the name of this element 4420 * @param name the name of this element
4570 */ 4421 */
4571 FieldFormalParameterElementImpl(Identifier name) : super.con1(name); 4422 FieldFormalParameterElementImpl(Identifier name) : super.con1(name);
4572 4423
4573 accept(ElementVisitor visitor) => visitor.visitFieldFormalParameterElement(thi s); 4424 accept(ElementVisitor visitor) => visitor.visitFieldFormalParameterElement(thi s);
4574 4425
4575 bool get isInitializingFormal => true; 4426 bool get isInitializingFormal => true;
4576 } 4427 }
4577 4428
4578 /** 4429 /**
4579 * Instances of the class `FunctionElementImpl` implement a `FunctionElement`. 4430 * Instances of the class `FunctionElementImpl` implement a `FunctionElement`.
4580 *
4581 * @coverage dart.engine.element
4582 */ 4431 */
4583 class FunctionElementImpl extends ExecutableElementImpl implements FunctionEleme nt { 4432 class FunctionElementImpl extends ExecutableElementImpl implements FunctionEleme nt {
4584 /** 4433 /**
4585 * The offset to the beginning of the visible range for this element. 4434 * The offset to the beginning of the visible range for this element.
4586 */ 4435 */
4587 int _visibleRangeOffset = 0; 4436 int _visibleRangeOffset = 0;
4588 4437
4589 /** 4438 /**
4590 * The length of the visible range for this element, or `-1` if this element d oes not have a 4439 * The length of the visible range for this element, or `-1` if this element d oes not have a
4591 * visible range. 4440 * visible range.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
4648 } 4497 }
4649 super.appendTo(builder); 4498 super.appendTo(builder);
4650 } 4499 }
4651 4500
4652 String get identifier => "${name}@${nameOffset}"; 4501 String get identifier => "${name}@${nameOffset}";
4653 } 4502 }
4654 4503
4655 /** 4504 /**
4656 * Instances of the class `FunctionTypeAliasElementImpl` implement a 4505 * Instances of the class `FunctionTypeAliasElementImpl` implement a
4657 * `FunctionTypeAliasElement`. 4506 * `FunctionTypeAliasElement`.
4658 *
4659 * @coverage dart.engine.element
4660 */ 4507 */
4661 class FunctionTypeAliasElementImpl extends ElementImpl implements FunctionTypeAl iasElement { 4508 class FunctionTypeAliasElementImpl extends ElementImpl implements FunctionTypeAl iasElement {
4662 /** 4509 /**
4663 * An array containing all of the parameters defined by this type alias. 4510 * An array containing all of the parameters defined by this type alias.
4664 */ 4511 */
4665 List<ParameterElement> _parameters = ParameterElementImpl.EMPTY_ARRAY; 4512 List<ParameterElement> _parameters = ParameterElementImpl.EMPTY_ARRAY;
4666 4513
4667 /** 4514 /**
4668 * The return type defined by this type alias. 4515 * The return type defined by this type alias.
4669 */ 4516 */
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
4797 if (type != null) { 4644 if (type != null) {
4798 builder.append(Element.RIGHT_ARROW); 4645 builder.append(Element.RIGHT_ARROW);
4799 builder.append(type.returnType); 4646 builder.append(type.returnType);
4800 } 4647 }
4801 } 4648 }
4802 } 4649 }
4803 4650
4804 /** 4651 /**
4805 * Instances of the class `HideElementCombinatorImpl` implement a 4652 * Instances of the class `HideElementCombinatorImpl` implement a
4806 * [HideElementCombinator]. 4653 * [HideElementCombinator].
4807 *
4808 * @coverage dart.engine.element
4809 */ 4654 */
4810 class HideElementCombinatorImpl implements HideElementCombinator { 4655 class HideElementCombinatorImpl implements HideElementCombinator {
4811 /** 4656 /**
4812 * The names that are not to be made visible in the importing library even if they are defined in 4657 * The names that are not to be made visible in the importing library even if they are defined in
4813 * the imported library. 4658 * the imported library.
4814 */ 4659 */
4815 List<String> hiddenNames = StringUtilities.EMPTY_ARRAY; 4660 List<String> hiddenNames = StringUtilities.EMPTY_ARRAY;
4816 4661
4817 String toString() { 4662 String toString() {
4818 JavaStringBuilder builder = new JavaStringBuilder(); 4663 JavaStringBuilder builder = new JavaStringBuilder();
4819 builder.append("show "); 4664 builder.append("show ");
4820 int count = hiddenNames.length; 4665 int count = hiddenNames.length;
4821 for (int i = 0; i < count; i++) { 4666 for (int i = 0; i < count; i++) {
4822 if (i > 0) { 4667 if (i > 0) {
4823 builder.append(", "); 4668 builder.append(", ");
4824 } 4669 }
4825 builder.append(hiddenNames[i]); 4670 builder.append(hiddenNames[i]);
4826 } 4671 }
4827 return builder.toString(); 4672 return builder.toString();
4828 } 4673 }
4829 } 4674 }
4830 4675
4831 /** 4676 /**
4832 * Instances of the class `HtmlElementImpl` implement an [HtmlElement]. 4677 * Instances of the class `HtmlElementImpl` implement an [HtmlElement].
4833 *
4834 * @coverage dart.engine.element
4835 */ 4678 */
4836 class HtmlElementImpl extends ElementImpl implements HtmlElement { 4679 class HtmlElementImpl extends ElementImpl implements HtmlElement {
4837 /** 4680 /**
4838 * An empty array of HTML file elements. 4681 * An empty array of HTML file elements.
4839 */ 4682 */
4840 static List<HtmlElement> EMPTY_ARRAY = new List<HtmlElement>(0); 4683 static List<HtmlElement> EMPTY_ARRAY = new List<HtmlElement>(0);
4841 4684
4842 /** 4685 /**
4843 * The analysis context in which this library is defined. 4686 * The analysis context in which this library is defined.
4844 */ 4687 */
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
4910 if (source == null) { 4753 if (source == null) {
4911 builder.append("{HTML file}"); 4754 builder.append("{HTML file}");
4912 } else { 4755 } else {
4913 builder.append(source.fullName); 4756 builder.append(source.fullName);
4914 } 4757 }
4915 } 4758 }
4916 } 4759 }
4917 4760
4918 /** 4761 /**
4919 * Instances of the class `HtmlScriptElementImpl` implement an [HtmlScriptElemen t]. 4762 * Instances of the class `HtmlScriptElementImpl` implement an [HtmlScriptElemen t].
4920 *
4921 * @coverage dart.engine.element
4922 */ 4763 */
4923 abstract class HtmlScriptElementImpl extends ElementImpl implements HtmlScriptEl ement { 4764 abstract class HtmlScriptElementImpl extends ElementImpl implements HtmlScriptEl ement {
4924 /** 4765 /**
4925 * An empty array of HTML script elements. 4766 * An empty array of HTML script elements.
4926 */ 4767 */
4927 static List<HtmlScriptElement> EMPTY_ARRAY = new List<HtmlScriptElement>(0); 4768 static List<HtmlScriptElement> EMPTY_ARRAY = new List<HtmlScriptElement>(0);
4928 4769
4929 /** 4770 /**
4930 * Initialize a newly created script element to have the specified tag name an d offset. 4771 * Initialize a newly created script element to have the specified tag name an d offset.
4931 * 4772 *
4932 * @param node the XML node from which this element is derived (not `null`) 4773 * @param node the XML node from which this element is derived (not `null`)
4933 */ 4774 */
4934 HtmlScriptElementImpl(XmlTagNode node) : super.con2(node.tag, node.tagToken.of fset); 4775 HtmlScriptElementImpl(XmlTagNode node) : super.con2(node.tag, node.tagToken.of fset);
4935 } 4776 }
4936 4777
4937 /** 4778 /**
4938 * Instances of the class `ImportElementImpl` implement an [ImportElement]. 4779 * Instances of the class `ImportElementImpl` implement an [ImportElement].
4939 *
4940 * @coverage dart.engine.element
4941 */ 4780 */
4942 class ImportElementImpl extends ElementImpl implements ImportElement { 4781 class ImportElementImpl extends ElementImpl implements ImportElement {
4943 /** 4782 /**
4944 * The offset of the character immediately following the last character of thi s node's URI, may be 4783 * The offset of the character immediately following the last character of thi s node's URI, may be
4945 * `-1` if synthetic. 4784 * `-1` if synthetic.
4946 */ 4785 */
4947 int uriEnd = -1; 4786 int uriEnd = -1;
4948 4787
4949 /** 4788 /**
4950 * The offset of the prefix of this import in the file that contains the this import directive, or 4789 * The offset of the prefix of this import in the file that contains the this import directive, or
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
4993 void appendTo(JavaStringBuilder builder) { 4832 void appendTo(JavaStringBuilder builder) {
4994 builder.append("import "); 4833 builder.append("import ");
4995 (importedLibrary as LibraryElementImpl).appendTo(builder); 4834 (importedLibrary as LibraryElementImpl).appendTo(builder);
4996 } 4835 }
4997 4836
4998 String get identifier => "${(importedLibrary as LibraryElementImpl).identifier }@${nameOffset}"; 4837 String get identifier => "${(importedLibrary as LibraryElementImpl).identifier }@${nameOffset}";
4999 } 4838 }
5000 4839
5001 /** 4840 /**
5002 * Instances of the class `LabelElementImpl` implement a `LabelElement`. 4841 * Instances of the class `LabelElementImpl` implement a `LabelElement`.
5003 *
5004 * @coverage dart.engine.element
5005 */ 4842 */
5006 class LabelElementImpl extends ElementImpl implements LabelElement { 4843 class LabelElementImpl extends ElementImpl implements LabelElement {
5007 /** 4844 /**
5008 * A flag indicating whether this label is associated with a `switch` statemen t. 4845 * A flag indicating whether this label is associated with a `switch` statemen t.
5009 */ 4846 */
5010 bool _onSwitchStatement = false; 4847 bool _onSwitchStatement = false;
5011 4848
5012 /** 4849 /**
5013 * A flag indicating whether this label is associated with a `switch` member ( `case` 4850 * A flag indicating whether this label is associated with a `switch` member ( `case`
5014 * or `default`). 4851 * or `default`).
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
5050 /** 4887 /**
5051 * Return `true` if this label is associated with a `switch` statement. 4888 * Return `true` if this label is associated with a `switch` statement.
5052 * 4889 *
5053 * @return `true` if this label is associated with a `switch` statement 4890 * @return `true` if this label is associated with a `switch` statement
5054 */ 4891 */
5055 bool get isOnSwitchStatement => _onSwitchStatement; 4892 bool get isOnSwitchStatement => _onSwitchStatement;
5056 } 4893 }
5057 4894
5058 /** 4895 /**
5059 * Instances of the class `LibraryElementImpl` implement a `LibraryElement`. 4896 * Instances of the class `LibraryElementImpl` implement a `LibraryElement`.
5060 *
5061 * @coverage dart.engine.element
5062 */ 4897 */
5063 class LibraryElementImpl extends ElementImpl implements LibraryElement { 4898 class LibraryElementImpl extends ElementImpl implements LibraryElement {
5064 /** 4899 /**
5065 * An empty array of library elements. 4900 * An empty array of library elements.
5066 */ 4901 */
5067 static List<LibraryElement> EMPTY_ARRAY = new List<LibraryElement>(0); 4902 static List<LibraryElement> EMPTY_ARRAY = new List<LibraryElement>(0);
5068 4903
5069 /** 4904 /**
5070 * Determine if the given library is up to date with respect to the given time stamp. 4905 * Determine if the given library is up to date with respect to the given time stamp.
5071 * 4906 *
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
5397 visited.add(exportedLibrary); 5232 visited.add(exportedLibrary);
5398 } 5233 }
5399 } 5234 }
5400 } 5235 }
5401 return false; 5236 return false;
5402 } 5237 }
5403 } 5238 }
5404 5239
5405 /** 5240 /**
5406 * Instances of the class `LocalVariableElementImpl` implement a `LocalVariableE lement`. 5241 * Instances of the class `LocalVariableElementImpl` implement a `LocalVariableE lement`.
5407 *
5408 * @coverage dart.engine.element
5409 */ 5242 */
5410 class LocalVariableElementImpl extends VariableElementImpl implements LocalVaria bleElement { 5243 class LocalVariableElementImpl extends VariableElementImpl implements LocalVaria bleElement {
5411 /** 5244 /**
5412 * Is `true` if this variable is potentially mutated somewhere in its scope. 5245 * Is `true` if this variable is potentially mutated somewhere in its scope.
5413 */ 5246 */
5414 bool _isPotentiallyMutatedInScope2 = false; 5247 bool _isPotentiallyMutatedInScope2 = false;
5415 5248
5416 /** 5249 /**
5417 * Is `true` if this variable is potentially mutated somewhere in closure. 5250 * Is `true` if this variable is potentially mutated somewhere in closure.
5418 */ 5251 */
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
5508 builder.append(type); 5341 builder.append(type);
5509 builder.append(" "); 5342 builder.append(" ");
5510 builder.append(displayName); 5343 builder.append(displayName);
5511 } 5344 }
5512 5345
5513 String get identifier => "${super.identifier}@${nameOffset}"; 5346 String get identifier => "${super.identifier}@${nameOffset}";
5514 } 5347 }
5515 5348
5516 /** 5349 /**
5517 * Instances of the class `MethodElementImpl` implement a `MethodElement`. 5350 * Instances of the class `MethodElementImpl` implement a `MethodElement`.
5518 *
5519 * @coverage dart.engine.element
5520 */ 5351 */
5521 class MethodElementImpl extends ExecutableElementImpl implements MethodElement { 5352 class MethodElementImpl extends ExecutableElementImpl implements MethodElement {
5522 /** 5353 /**
5523 * An empty array of method elements. 5354 * An empty array of method elements.
5524 */ 5355 */
5525 static List<MethodElement> EMPTY_ARRAY = new List<MethodElement>(0); 5356 static List<MethodElement> EMPTY_ARRAY = new List<MethodElement>(0);
5526 5357
5527 /** 5358 /**
5528 * Initialize a newly created method element to have the given name. 5359 * Initialize a newly created method element to have the given name.
5529 * 5360 *
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
5593 builder.append(enclosingElement.displayName); 5424 builder.append(enclosingElement.displayName);
5594 builder.append("."); 5425 builder.append(".");
5595 builder.append(displayName); 5426 builder.append(displayName);
5596 super.appendTo(builder); 5427 super.appendTo(builder);
5597 } 5428 }
5598 } 5429 }
5599 5430
5600 /** 5431 /**
5601 * The enumeration `Modifier` defines constants for all of the modifiers defined by the Dart 5432 * The enumeration `Modifier` defines constants for all of the modifiers defined by the Dart
5602 * language and for a few additional flags that are useful. 5433 * language and for a few additional flags that are useful.
5603 *
5604 * @coverage dart.engine.element
5605 */ 5434 */
5606 class Modifier extends Enum<Modifier> { 5435 class Modifier extends Enum<Modifier> {
5607 /** 5436 /**
5608 * Indicates that the modifier 'abstract' was applied to the element. 5437 * Indicates that the modifier 'abstract' was applied to the element.
5609 */ 5438 */
5610 static final Modifier ABSTRACT = new Modifier('ABSTRACT', 0); 5439 static final Modifier ABSTRACT = new Modifier('ABSTRACT', 0);
5611 5440
5612 /** 5441 /**
5613 * Indicates that the modifier 'const' was applied to the element. 5442 * Indicates that the modifier 'const' was applied to the element.
5614 */ 5443 */
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
5671 STATIC, 5500 STATIC,
5672 SYNTHETIC, 5501 SYNTHETIC,
5673 TYPEDEF]; 5502 TYPEDEF];
5674 5503
5675 Modifier(String name, int ordinal) : super(name, ordinal); 5504 Modifier(String name, int ordinal) : super(name, ordinal);
5676 } 5505 }
5677 5506
5678 /** 5507 /**
5679 * Instances of the class `MultiplyDefinedElementImpl` represent a collection of elements that 5508 * Instances of the class `MultiplyDefinedElementImpl` represent a collection of elements that
5680 * have the same name within the same scope. 5509 * have the same name within the same scope.
5681 *
5682 * @coverage dart.engine.element
5683 */ 5510 */
5684 class MultiplyDefinedElementImpl implements MultiplyDefinedElement { 5511 class MultiplyDefinedElementImpl implements MultiplyDefinedElement {
5685 /** 5512 /**
5686 * Return an element that represents the given conflicting elements. 5513 * Return an element that represents the given conflicting elements.
5687 * 5514 *
5688 * @param context the analysis context in which the multiply defined elements are defined 5515 * @param context the analysis context in which the multiply defined elements are defined
5689 * @param firstElement the first element that conflicts 5516 * @param firstElement the first element that conflicts
5690 * @param secondElement the second element that conflicts 5517 * @param secondElement the second element that conflicts
5691 */ 5518 */
5692 static Element fromElements(AnalysisContext context, Element firstElement, Ele ment secondElement) { 5519 static Element fromElements(AnalysisContext context, Element firstElement, Ele ment secondElement) {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
5773 LibraryElement get library => null; 5600 LibraryElement get library => null;
5774 5601
5775 ElementLocation get location => null; 5602 ElementLocation get location => null;
5776 5603
5777 List<ElementAnnotation> get metadata => ElementAnnotationImpl.EMPTY_ARRAY; 5604 List<ElementAnnotation> get metadata => ElementAnnotationImpl.EMPTY_ARRAY;
5778 5605
5779 String get name => _name; 5606 String get name => _name;
5780 5607
5781 int get nameOffset => -1; 5608 int get nameOffset => -1;
5782 5609
5783 ASTNode get node => null; 5610 AstNode get node => null;
5784 5611
5785 Source get source => null; 5612 Source get source => null;
5786 5613
5787 Type2 get type => DynamicTypeImpl.instance; 5614 Type2 get type => DynamicTypeImpl.instance;
5788 5615
5789 CompilationUnit get unit => null; 5616 CompilationUnit get unit => null;
5790 5617
5791 bool isAccessibleIn(LibraryElement library) { 5618 bool isAccessibleIn(LibraryElement library) {
5792 for (Element element in conflictingElements) { 5619 for (Element element in conflictingElements) {
5793 if (element.isAccessibleIn(library)) { 5620 if (element.isAccessibleIn(library)) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
5828 } 5655 }
5829 5656
5830 void visitChildren(ElementVisitor visitor) { 5657 void visitChildren(ElementVisitor visitor) {
5831 } 5658 }
5832 } 5659 }
5833 5660
5834 /** 5661 /**
5835 * The interface [MultiplyInheritedMethodElementImpl] defines all of the behavio r of an 5662 * The interface [MultiplyInheritedMethodElementImpl] defines all of the behavio r of an
5836 * [MethodElementImpl], with the additional information of an array of 5663 * [MethodElementImpl], with the additional information of an array of
5837 * [ExecutableElement]s from which this element was composed. 5664 * [ExecutableElement]s from which this element was composed.
5838 *
5839 * @coverage dart.engine.element
5840 */ 5665 */
5841 class MultiplyInheritedMethodElementImpl extends MethodElementImpl implements Mu ltiplyInheritedExecutableElement { 5666 class MultiplyInheritedMethodElementImpl extends MethodElementImpl implements Mu ltiplyInheritedExecutableElement {
5842 /** 5667 /**
5843 * An array the array of executable elements that were used to compose this el ement. 5668 * An array the array of executable elements that were used to compose this el ement.
5844 */ 5669 */
5845 List<ExecutableElement> _elements = MethodElementImpl.EMPTY_ARRAY; 5670 List<ExecutableElement> _elements = MethodElementImpl.EMPTY_ARRAY;
5846 5671
5847 MultiplyInheritedMethodElementImpl(Identifier name) : super.con1(name) { 5672 MultiplyInheritedMethodElementImpl(Identifier name) : super.con1(name) {
5848 synthetic = true; 5673 synthetic = true;
5849 } 5674 }
5850 5675
5851 List<ExecutableElement> get inheritedElements => _elements; 5676 List<ExecutableElement> get inheritedElements => _elements;
5852 5677
5853 void set inheritedElements(List<ExecutableElement> elements) { 5678 void set inheritedElements(List<ExecutableElement> elements) {
5854 this._elements = elements; 5679 this._elements = elements;
5855 } 5680 }
5856 } 5681 }
5857 5682
5858 /** 5683 /**
5859 * The interface [MultiplyInheritedPropertyAccessorElementImpl] defines all of t he behavior of 5684 * The interface [MultiplyInheritedPropertyAccessorElementImpl] defines all of t he behavior of
5860 * an [PropertyAccessorElementImpl], with the additional information of an array of 5685 * an [PropertyAccessorElementImpl], with the additional information of an array of
5861 * [ExecutableElement]s from which this element was composed. 5686 * [ExecutableElement]s from which this element was composed.
5862 *
5863 * @coverage dart.engine.element
5864 */ 5687 */
5865 class MultiplyInheritedPropertyAccessorElementImpl extends PropertyAccessorEleme ntImpl implements MultiplyInheritedExecutableElement { 5688 class MultiplyInheritedPropertyAccessorElementImpl extends PropertyAccessorEleme ntImpl implements MultiplyInheritedExecutableElement {
5866 /** 5689 /**
5867 * An array the array of executable elements that were used to compose this el ement. 5690 * An array the array of executable elements that were used to compose this el ement.
5868 */ 5691 */
5869 List<ExecutableElement> _elements = PropertyAccessorElementImpl.EMPTY_ARRAY; 5692 List<ExecutableElement> _elements = PropertyAccessorElementImpl.EMPTY_ARRAY;
5870 5693
5871 MultiplyInheritedPropertyAccessorElementImpl(Identifier name) : super.con1(nam e) { 5694 MultiplyInheritedPropertyAccessorElementImpl(Identifier name) : super.con1(nam e) {
5872 synthetic = true; 5695 synthetic = true;
5873 } 5696 }
5874 5697
5875 List<ExecutableElement> get inheritedElements => _elements; 5698 List<ExecutableElement> get inheritedElements => _elements;
5876 5699
5877 void set inheritedElements(List<ExecutableElement> elements) { 5700 void set inheritedElements(List<ExecutableElement> elements) {
5878 this._elements = elements; 5701 this._elements = elements;
5879 } 5702 }
5880 } 5703 }
5881 5704
5882 /** 5705 /**
5883 * Instances of the class `ParameterElementImpl` implement a `ParameterElement`. 5706 * Instances of the class `ParameterElementImpl` implement a `ParameterElement`.
5884 *
5885 * @coverage dart.engine.element
5886 */ 5707 */
5887 class ParameterElementImpl extends VariableElementImpl implements ParameterEleme nt { 5708 class ParameterElementImpl extends VariableElementImpl implements ParameterEleme nt {
5888 /** 5709 /**
5889 * Is `true` if this variable is potentially mutated somewhere in its scope. 5710 * Is `true` if this variable is potentially mutated somewhere in its scope.
5890 */ 5711 */
5891 bool _isPotentiallyMutatedInScope3 = false; 5712 bool _isPotentiallyMutatedInScope3 = false;
5892 5713
5893 /** 5714 /**
5894 * Is `true` if this variable is potentially mutated somewhere in closure. 5715 * Is `true` if this variable is potentially mutated somewhere in closure.
5895 */ 5716 */
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
6058 */ 5879 */
6059 void appendToWithoutDelimiters(JavaStringBuilder builder) { 5880 void appendToWithoutDelimiters(JavaStringBuilder builder) {
6060 builder.append(type); 5881 builder.append(type);
6061 builder.append(" "); 5882 builder.append(" ");
6062 builder.append(displayName); 5883 builder.append(displayName);
6063 } 5884 }
6064 } 5885 }
6065 5886
6066 /** 5887 /**
6067 * Instances of the class `PrefixElementImpl` implement a `PrefixElement`. 5888 * Instances of the class `PrefixElementImpl` implement a `PrefixElement`.
6068 *
6069 * @coverage dart.engine.element
6070 */ 5889 */
6071 class PrefixElementImpl extends ElementImpl implements PrefixElement { 5890 class PrefixElementImpl extends ElementImpl implements PrefixElement {
6072 /** 5891 /**
6073 * An array containing all of the libraries that are imported using this prefi x. 5892 * An array containing all of the libraries that are imported using this prefi x.
6074 */ 5893 */
6075 List<LibraryElement> _importedLibraries = LibraryElementImpl.EMPTY_ARRAY; 5894 List<LibraryElement> _importedLibraries = LibraryElementImpl.EMPTY_ARRAY;
6076 5895
6077 /** 5896 /**
6078 * An empty array of prefix elements. 5897 * An empty array of prefix elements.
6079 */ 5898 */
(...skipping 30 matching lines...) Expand all
6110 builder.append("as "); 5929 builder.append("as ");
6111 super.appendTo(builder); 5930 super.appendTo(builder);
6112 } 5931 }
6113 5932
6114 String get identifier => "_${super.identifier}"; 5933 String get identifier => "_${super.identifier}";
6115 } 5934 }
6116 5935
6117 /** 5936 /**
6118 * Instances of the class `PropertyAccessorElementImpl` implement a 5937 * Instances of the class `PropertyAccessorElementImpl` implement a
6119 * `PropertyAccessorElement`. 5938 * `PropertyAccessorElement`.
6120 *
6121 * @coverage dart.engine.element
6122 */ 5939 */
6123 class PropertyAccessorElementImpl extends ExecutableElementImpl implements Prope rtyAccessorElement { 5940 class PropertyAccessorElementImpl extends ExecutableElementImpl implements Prope rtyAccessorElement {
6124 /** 5941 /**
6125 * The variable associated with this accessor. 5942 * The variable associated with this accessor.
6126 */ 5943 */
6127 PropertyInducingElement variable; 5944 PropertyInducingElement variable;
6128 5945
6129 /** 5946 /**
6130 * An empty array of property accessor elements. 5947 * An empty array of property accessor elements.
6131 */ 5948 */
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
6174 return ElementKind.SETTER; 5991 return ElementKind.SETTER;
6175 } 5992 }
6176 5993
6177 String get name { 5994 String get name {
6178 if (isSetter) { 5995 if (isSetter) {
6179 return "${super.name}="; 5996 return "${super.name}=";
6180 } 5997 }
6181 return super.name; 5998 return super.name;
6182 } 5999 }
6183 6000
6184 ASTNode get node { 6001 AstNode get node {
6185 if (isSynthetic) { 6002 if (isSynthetic) {
6186 return null; 6003 return null;
6187 } 6004 }
6188 if (enclosingElement is ClassElement) { 6005 if (enclosingElement is ClassElement) {
6189 return getNode2(MethodDeclaration); 6006 return getNode2(MethodDeclaration);
6190 } 6007 }
6191 if (enclosingElement is CompilationUnitElement) { 6008 if (enclosingElement is CompilationUnitElement) {
6192 return getNode2(FunctionDeclaration); 6009 return getNode2(FunctionDeclaration);
6193 } 6010 }
6194 return null; 6011 return null;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
6243 void appendTo(JavaStringBuilder builder) { 6060 void appendTo(JavaStringBuilder builder) {
6244 builder.append(isGetter ? "get " : "set "); 6061 builder.append(isGetter ? "get " : "set ");
6245 builder.append(variable.displayName); 6062 builder.append(variable.displayName);
6246 super.appendTo(builder); 6063 super.appendTo(builder);
6247 } 6064 }
6248 } 6065 }
6249 6066
6250 /** 6067 /**
6251 * Instances of the class `PropertyInducingElementImpl` implement a 6068 * Instances of the class `PropertyInducingElementImpl` implement a
6252 * `PropertyInducingElement`. 6069 * `PropertyInducingElement`.
6253 *
6254 * @coverage dart.engine.element
6255 */ 6070 */
6256 abstract class PropertyInducingElementImpl extends VariableElementImpl implement s PropertyInducingElement { 6071 abstract class PropertyInducingElementImpl extends VariableElementImpl implement s PropertyInducingElement {
6257 /** 6072 /**
6258 * The getter associated with this element. 6073 * The getter associated with this element.
6259 */ 6074 */
6260 PropertyAccessorElement getter; 6075 PropertyAccessorElement getter;
6261 6076
6262 /** 6077 /**
6263 * The setter associated with this element, or `null` if the element is effect ively 6078 * The setter associated with this element, or `null` if the element is effect ively
6264 * `final` and therefore does not have a setter associated with it. 6079 * `final` and therefore does not have a setter associated with it.
(...skipping 18 matching lines...) Expand all
6283 * @param name the name of this element 6098 * @param name the name of this element
6284 */ 6099 */
6285 PropertyInducingElementImpl.con2(String name) : super.con2(name, -1) { 6100 PropertyInducingElementImpl.con2(String name) : super.con2(name, -1) {
6286 synthetic = true; 6101 synthetic = true;
6287 } 6102 }
6288 } 6103 }
6289 6104
6290 /** 6105 /**
6291 * Instances of the class `ShowElementCombinatorImpl` implement a 6106 * Instances of the class `ShowElementCombinatorImpl` implement a
6292 * [ShowElementCombinator]. 6107 * [ShowElementCombinator].
6293 *
6294 * @coverage dart.engine.element
6295 */ 6108 */
6296 class ShowElementCombinatorImpl implements ShowElementCombinator { 6109 class ShowElementCombinatorImpl implements ShowElementCombinator {
6297 /** 6110 /**
6298 * The names that are to be made visible in the importing library if they are defined in the 6111 * The names that are to be made visible in the importing library if they are defined in the
6299 * imported library. 6112 * imported library.
6300 */ 6113 */
6301 List<String> shownNames = StringUtilities.EMPTY_ARRAY; 6114 List<String> shownNames = StringUtilities.EMPTY_ARRAY;
6302 6115
6303 /** 6116 /**
6304 * The offset of the character immediately following the last character of thi s node. 6117 * The offset of the character immediately following the last character of thi s node.
(...skipping 14 matching lines...) Expand all
6319 builder.append(", "); 6132 builder.append(", ");
6320 } 6133 }
6321 builder.append(shownNames[i]); 6134 builder.append(shownNames[i]);
6322 } 6135 }
6323 return builder.toString(); 6136 return builder.toString();
6324 } 6137 }
6325 } 6138 }
6326 6139
6327 /** 6140 /**
6328 * Instances of the class `ToolkitObjectElementImpl` implement a `ToolkitObjectE lement`. 6141 * Instances of the class `ToolkitObjectElementImpl` implement a `ToolkitObjectE lement`.
6329 *
6330 * @coverage dart.engine.element
6331 */ 6142 */
6332 abstract class ToolkitObjectElementImpl extends ElementImpl implements ToolkitOb jectElement { 6143 abstract class ToolkitObjectElementImpl extends ElementImpl implements ToolkitOb jectElement {
6333 /** 6144 /**
6334 * Initialize a newly created toolkit object element to have the given name. 6145 * Initialize a newly created toolkit object element to have the given name.
6335 * 6146 *
6336 * @param name the name of this element 6147 * @param name the name of this element
6337 * @param nameOffset the offset of the name of this element in the file that c ontains the 6148 * @param nameOffset the offset of the name of this element in the file that c ontains the
6338 * declaration of this element 6149 * declaration of this element
6339 */ 6150 */
6340 ToolkitObjectElementImpl(String name, int nameOffset) : super.con2(name, nameO ffset); 6151 ToolkitObjectElementImpl(String name, int nameOffset) : super.con2(name, nameO ffset);
6341 } 6152 }
6342 6153
6343 /** 6154 /**
6344 * Instances of the class `TopLevelVariableElementImpl` implement a 6155 * Instances of the class `TopLevelVariableElementImpl` implement a
6345 * `TopLevelVariableElement`. 6156 * `TopLevelVariableElement`.
6346 *
6347 * @coverage dart.engine.element
6348 */ 6157 */
6349 class TopLevelVariableElementImpl extends PropertyInducingElementImpl implements TopLevelVariableElement { 6158 class TopLevelVariableElementImpl extends PropertyInducingElementImpl implements TopLevelVariableElement {
6350 /** 6159 /**
6351 * An empty array of top-level variable elements. 6160 * An empty array of top-level variable elements.
6352 */ 6161 */
6353 static List<TopLevelVariableElement> EMPTY_ARRAY = new List<TopLevelVariableEl ement>(0); 6162 static List<TopLevelVariableElement> EMPTY_ARRAY = new List<TopLevelVariableEl ement>(0);
6354 6163
6355 /** 6164 /**
6356 * Initialize a newly created top-level variable element to have the given nam e. 6165 * Initialize a newly created top-level variable element to have the given nam e.
6357 * 6166 *
(...skipping 10 matching lines...) Expand all
6368 6177
6369 accept(ElementVisitor visitor) => visitor.visitTopLevelVariableElement(this); 6178 accept(ElementVisitor visitor) => visitor.visitTopLevelVariableElement(this);
6370 6179
6371 ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE; 6180 ElementKind get kind => ElementKind.TOP_LEVEL_VARIABLE;
6372 6181
6373 bool get isStatic => true; 6182 bool get isStatic => true;
6374 } 6183 }
6375 6184
6376 /** 6185 /**
6377 * Instances of the class `TypeParameterElementImpl` implement a [TypeParameterE lement]. 6186 * Instances of the class `TypeParameterElementImpl` implement a [TypeParameterE lement].
6378 *
6379 * @coverage dart.engine.element
6380 */ 6187 */
6381 class TypeParameterElementImpl extends ElementImpl implements TypeParameterEleme nt { 6188 class TypeParameterElementImpl extends ElementImpl implements TypeParameterEleme nt {
6382 /** 6189 /**
6383 * The type defined by this type parameter. 6190 * The type defined by this type parameter.
6384 */ 6191 */
6385 TypeParameterType type; 6192 TypeParameterType type;
6386 6193
6387 /** 6194 /**
6388 * The type representing the bound associated with this parameter, or `null` i f this 6195 * The type representing the bound associated with this parameter, or `null` i f this
6389 * parameter does not have an explicit bound. 6196 * parameter does not have an explicit bound.
(...skipping 20 matching lines...) Expand all
6410 builder.append(displayName); 6217 builder.append(displayName);
6411 if (bound != null) { 6218 if (bound != null) {
6412 builder.append(" extends "); 6219 builder.append(" extends ");
6413 builder.append(bound); 6220 builder.append(bound);
6414 } 6221 }
6415 } 6222 }
6416 } 6223 }
6417 6224
6418 /** 6225 /**
6419 * Instances of the class `VariableElementImpl` implement a `VariableElement`. 6226 * Instances of the class `VariableElementImpl` implement a `VariableElement`.
6420 *
6421 * @coverage dart.engine.element
6422 */ 6227 */
6423 abstract class VariableElementImpl extends ElementImpl implements VariableElemen t { 6228 abstract class VariableElementImpl extends ElementImpl implements VariableElemen t {
6424 /** 6229 /**
6425 * The declared type of this variable. 6230 * The declared type of this variable.
6426 */ 6231 */
6427 Type2 type; 6232 Type2 type;
6428 6233
6429 /** 6234 /**
6430 * A synthetic function representing this variable's initializer, or `null` if this variable 6235 * A synthetic function representing this variable's initializer, or `null` if this variable
6431 * does not have an initializer. 6236 * does not have an initializer.
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
6557 } 6362 }
6558 6363
6559 /** 6364 /**
6560 * Checks if this application depends on the library with the given [Source]. 6365 * Checks if this application depends on the library with the given [Source].
6561 */ 6366 */
6562 bool dependsOn(Source librarySource) => _librarySources.contains(librarySource ); 6367 bool dependsOn(Source librarySource) => _librarySources.contains(librarySource );
6563 } 6368 }
6564 6369
6565 /** 6370 /**
6566 * Implementation of `AngularComponentElement`. 6371 * Implementation of `AngularComponentElement`.
6567 *
6568 * @coverage dart.engine.element
6569 */ 6372 */
6570 class AngularComponentElementImpl extends AngularHasSelectorElementImpl implemen ts AngularComponentElement { 6373 class AngularComponentElementImpl extends AngularHasSelectorElementImpl implemen ts AngularComponentElement {
6571 /** 6374 /**
6572 * The offset of the defining <code>NgComponent</code> annotation. 6375 * The offset of the defining <code>NgComponent</code> annotation.
6573 */ 6376 */
6574 int _annotationOffset = 0; 6377 int _annotationOffset = 0;
6575 6378
6576 /** 6379 /**
6577 * The array containing all of the properties declared by this component. 6380 * The array containing all of the properties declared by this component.
6578 */ 6381 */
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
6655 safelyVisitChildren(_properties, visitor); 6458 safelyVisitChildren(_properties, visitor);
6656 safelyVisitChildren(_scopeProperties, visitor); 6459 safelyVisitChildren(_scopeProperties, visitor);
6657 super.visitChildren(visitor); 6460 super.visitChildren(visitor);
6658 } 6461 }
6659 6462
6660 String get identifier => "AngularComponent@${_annotationOffset}"; 6463 String get identifier => "AngularComponent@${_annotationOffset}";
6661 } 6464 }
6662 6465
6663 /** 6466 /**
6664 * Implementation of `AngularControllerElement`. 6467 * Implementation of `AngularControllerElement`.
6665 *
6666 * @coverage dart.engine.element
6667 */ 6468 */
6668 class AngularControllerElementImpl extends AngularHasSelectorElementImpl impleme nts AngularControllerElement { 6469 class AngularControllerElementImpl extends AngularHasSelectorElementImpl impleme nts AngularControllerElement {
6669 /** 6470 /**
6670 * Initialize a newly created Angular controller to have the given name. 6471 * Initialize a newly created Angular controller to have the given name.
6671 * 6472 *
6672 * @param name the name of this element 6473 * @param name the name of this element
6673 * @param nameOffset the offset of the name of this element in the file that c ontains the 6474 * @param nameOffset the offset of the name of this element in the file that c ontains the
6674 * declaration of this element 6475 * declaration of this element
6675 */ 6476 */
6676 AngularControllerElementImpl(String name, int nameOffset) : super(name, nameOf fset); 6477 AngularControllerElementImpl(String name, int nameOffset) : super(name, nameOf fset);
6677 6478
6678 accept(ElementVisitor visitor) => visitor.visitAngularControllerElement(this); 6479 accept(ElementVisitor visitor) => visitor.visitAngularControllerElement(this);
6679 6480
6680 ElementKind get kind => ElementKind.ANGULAR_CONTROLLER; 6481 ElementKind get kind => ElementKind.ANGULAR_CONTROLLER;
6681 } 6482 }
6682 6483
6683 /** 6484 /**
6684 * Implementation of `AngularDirectiveElement`. 6485 * Implementation of `AngularDirectiveElement`.
6685 *
6686 * @coverage dart.engine.element
6687 */ 6486 */
6688 class AngularDirectiveElementImpl extends AngularHasSelectorElementImpl implemen ts AngularDirectiveElement { 6487 class AngularDirectiveElementImpl extends AngularHasSelectorElementImpl implemen ts AngularDirectiveElement {
6689 /** 6488 /**
6690 * The offset of the annotation that defines this directive. 6489 * The offset of the annotation that defines this directive.
6691 */ 6490 */
6692 int _offset = 0; 6491 int _offset = 0;
6693 6492
6694 /** 6493 /**
6695 * The array containing all of the properties declared by this directive. 6494 * The array containing all of the properties declared by this directive.
6696 */ 6495 */
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
6733 void visitChildren(ElementVisitor visitor) { 6532 void visitChildren(ElementVisitor visitor) {
6734 safelyVisitChildren(_properties, visitor); 6533 safelyVisitChildren(_properties, visitor);
6735 super.visitChildren(visitor); 6534 super.visitChildren(visitor);
6736 } 6535 }
6737 6536
6738 String get identifier => "NgDirective@${_offset}"; 6537 String get identifier => "NgDirective@${_offset}";
6739 } 6538 }
6740 6539
6741 /** 6540 /**
6742 * Implementation of `AngularElement`. 6541 * Implementation of `AngularElement`.
6743 *
6744 * @coverage dart.engine.element
6745 */ 6542 */
6746 abstract class AngularElementImpl extends ToolkitObjectElementImpl implements An gularElement { 6543 abstract class AngularElementImpl extends ToolkitObjectElementImpl implements An gularElement {
6747 /** 6544 /**
6748 * The [AngularApplication] this element is used in. 6545 * The [AngularApplication] this element is used in.
6749 */ 6546 */
6750 AngularApplication _application; 6547 AngularApplication _application;
6751 6548
6752 /** 6549 /**
6753 * Initialize a newly created Angular element to have the given name. 6550 * Initialize a newly created Angular element to have the given name.
6754 * 6551 *
6755 * @param name the name of this element 6552 * @param name the name of this element
6756 * @param nameOffset the offset of the name of this element in the file that c ontains the 6553 * @param nameOffset the offset of the name of this element in the file that c ontains the
6757 * declaration of this element 6554 * declaration of this element
6758 */ 6555 */
6759 AngularElementImpl(String name, int nameOffset) : super(name, nameOffset); 6556 AngularElementImpl(String name, int nameOffset) : super(name, nameOffset);
6760 6557
6761 AngularApplication get application => _application; 6558 AngularApplication get application => _application;
6762 6559
6763 /** 6560 /**
6764 * Set the [AngularApplication] this element is used in. 6561 * Set the [AngularApplication] this element is used in.
6765 */ 6562 */
6766 void set application(AngularApplication application) { 6563 void set application(AngularApplication application) {
6767 this._application = application; 6564 this._application = application;
6768 } 6565 }
6769 } 6566 }
6770 6567
6771 /** 6568 /**
6772 * Implementation of `AngularFilterElement`. 6569 * Implementation of `AngularFilterElement`.
6773 *
6774 * @coverage dart.engine.element
6775 */ 6570 */
6776 class AngularFilterElementImpl extends AngularElementImpl implements AngularFilt erElement { 6571 class AngularFilterElementImpl extends AngularElementImpl implements AngularFilt erElement {
6777 /** 6572 /**
6778 * Initialize a newly created Angular filter to have the given name. 6573 * Initialize a newly created Angular filter to have the given name.
6779 * 6574 *
6780 * @param name the name of this element 6575 * @param name the name of this element
6781 * @param nameOffset the offset of the name of this element in the file that c ontains the 6576 * @param nameOffset the offset of the name of this element in the file that c ontains the
6782 * declaration of this element 6577 * declaration of this element
6783 */ 6578 */
6784 AngularFilterElementImpl(String name, int nameOffset) : super(name, nameOffset ); 6579 AngularFilterElementImpl(String name, int nameOffset) : super(name, nameOffset );
(...skipping 26 matching lines...) Expand all
6811 } 6606 }
6812 6607
6813 void appendTo(JavaStringBuilder builder) { 6608 void appendTo(JavaStringBuilder builder) {
6814 builder.append("."); 6609 builder.append(".");
6815 builder.append(name); 6610 builder.append(name);
6816 } 6611 }
6817 } 6612 }
6818 6613
6819 /** 6614 /**
6820 * Implementation of `AngularSelectorElement`. 6615 * Implementation of `AngularSelectorElement`.
6821 *
6822 * @coverage dart.engine.element
6823 */ 6616 */
6824 abstract class AngularHasSelectorElementImpl extends AngularElementImpl implemen ts AngularHasSelectorElement { 6617 abstract class AngularHasSelectorElementImpl extends AngularElementImpl implemen ts AngularHasSelectorElement {
6825 /** 6618 /**
6826 * The selector of this element. 6619 * The selector of this element.
6827 */ 6620 */
6828 AngularSelectorElement _selector; 6621 AngularSelectorElement _selector;
6829 6622
6830 /** 6623 /**
6831 * Initialize a newly created Angular element to have the given name. 6624 * Initialize a newly created Angular element to have the given name.
6832 * 6625 *
(...skipping 16 matching lines...) Expand all
6849 } 6642 }
6850 6643
6851 void visitChildren(ElementVisitor visitor) { 6644 void visitChildren(ElementVisitor visitor) {
6852 safelyVisitChild(_selector, visitor); 6645 safelyVisitChild(_selector, visitor);
6853 super.visitChildren(visitor); 6646 super.visitChildren(visitor);
6854 } 6647 }
6855 } 6648 }
6856 6649
6857 /** 6650 /**
6858 * Implementation of `AngularPropertyElement`. 6651 * Implementation of `AngularPropertyElement`.
6859 *
6860 * @coverage dart.engine.element
6861 */ 6652 */
6862 class AngularPropertyElementImpl extends AngularElementImpl implements AngularPr opertyElement { 6653 class AngularPropertyElementImpl extends AngularElementImpl implements AngularPr opertyElement {
6863 /** 6654 /**
6864 * The [FieldElement] to which this property is bound. 6655 * The [FieldElement] to which this property is bound.
6865 */ 6656 */
6866 FieldElement field; 6657 FieldElement field;
6867 6658
6868 /** 6659 /**
6869 * The offset of the field name in the property map. 6660 * The offset of the field name in the property map.
6870 */ 6661 */
(...skipping 10 matching lines...) Expand all
6881 */ 6672 */
6882 AngularPropertyElementImpl(String name, int nameOffset) : super(name, nameOffs et); 6673 AngularPropertyElementImpl(String name, int nameOffset) : super(name, nameOffs et);
6883 6674
6884 accept(ElementVisitor visitor) => visitor.visitAngularPropertyElement(this); 6675 accept(ElementVisitor visitor) => visitor.visitAngularPropertyElement(this);
6885 6676
6886 ElementKind get kind => ElementKind.ANGULAR_PROPERTY; 6677 ElementKind get kind => ElementKind.ANGULAR_PROPERTY;
6887 } 6678 }
6888 6679
6889 /** 6680 /**
6890 * Implementation of `AngularScopePropertyElement`. 6681 * Implementation of `AngularScopePropertyElement`.
6891 *
6892 * @coverage dart.engine.element
6893 */ 6682 */
6894 class AngularScopePropertyElementImpl extends AngularElementImpl implements Angu larScopePropertyElement { 6683 class AngularScopePropertyElementImpl extends AngularElementImpl implements Angu larScopePropertyElement {
6895 /** 6684 /**
6896 * The type of the property 6685 * The type of the property
6897 */ 6686 */
6898 final Type2 type; 6687 final Type2 type;
6899 6688
6900 /** 6689 /**
6901 * Initialize a newly created Angular scope property to have the given name. 6690 * Initialize a newly created Angular scope property to have the given name.
6902 * 6691 *
6903 * @param name the name of this element 6692 * @param name the name of this element
6904 * @param nameOffset the offset of the name of this element in the file that c ontains the 6693 * @param nameOffset the offset of the name of this element in the file that c ontains the
6905 * declaration of this element 6694 * declaration of this element
6906 */ 6695 */
6907 AngularScopePropertyElementImpl(String name, int nameOffset, this.type) : supe r(name, nameOffset); 6696 AngularScopePropertyElementImpl(String name, int nameOffset, this.type) : supe r(name, nameOffset);
6908 6697
6909 accept(ElementVisitor visitor) => visitor.visitAngularScopePropertyElement(thi s); 6698 accept(ElementVisitor visitor) => visitor.visitAngularScopePropertyElement(thi s);
6910 6699
6911 ElementKind get kind => ElementKind.ANGULAR_SCOPE_PROPERTY; 6700 ElementKind get kind => ElementKind.ANGULAR_SCOPE_PROPERTY;
6912 } 6701 }
6913 6702
6914 /** 6703 /**
6915 * Implementation of `AngularFilterElement`. 6704 * Implementation of `AngularFilterElement`.
6916 *
6917 * @coverage dart.engine.element
6918 */ 6705 */
6919 abstract class AngularSelectorElementImpl extends AngularElementImpl implements AngularSelectorElement { 6706 abstract class AngularSelectorElementImpl extends AngularElementImpl implements AngularSelectorElement {
6920 /** 6707 /**
6921 * Initialize a newly created Angular selector to have the given name. 6708 * Initialize a newly created Angular selector to have the given name.
6922 * 6709 *
6923 * @param name the name of this element 6710 * @param name the name of this element
6924 * @param nameOffset the offset of the name of this element in the file that c ontains the 6711 * @param nameOffset the offset of the name of this element in the file that c ontains the
6925 * declaration of this element 6712 * declaration of this element
6926 */ 6713 */
6927 AngularSelectorElementImpl(String name, int nameOffset) : super(name, nameOffs et); 6714 AngularSelectorElementImpl(String name, int nameOffset) : super(name, nameOffs et);
(...skipping 12 matching lines...) Expand all
6940 bool apply(XmlTagNode node) { 6727 bool apply(XmlTagNode node) {
6941 String tagName = name; 6728 String tagName = name;
6942 return node.tag == tagName; 6729 return node.tag == tagName;
6943 } 6730 }
6944 6731
6945 AngularApplication get application => (enclosingElement as AngularElementImpl) .application; 6732 AngularApplication get application => (enclosingElement as AngularElementImpl) .application;
6946 } 6733 }
6947 6734
6948 /** 6735 /**
6949 * Implementation of `AngularViewElement`. 6736 * Implementation of `AngularViewElement`.
6950 *
6951 * @coverage dart.engine.element
6952 */ 6737 */
6953 class AngularViewElementImpl extends AngularElementImpl implements AngularViewEl ement { 6738 class AngularViewElementImpl extends AngularElementImpl implements AngularViewEl ement {
6954 /** 6739 /**
6955 * The HTML template URI. 6740 * The HTML template URI.
6956 */ 6741 */
6957 final String templateUri; 6742 final String templateUri;
6958 6743
6959 /** 6744 /**
6960 * The offset of the [templateUri] in the [getSource]. 6745 * The offset of the [templateUri] in the [getSource].
6961 */ 6746 */
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
7286 LibraryElement get library => _baseElement.library; 7071 LibraryElement get library => _baseElement.library;
7287 7072
7288 ElementLocation get location => _baseElement.location; 7073 ElementLocation get location => _baseElement.location;
7289 7074
7290 List<ElementAnnotation> get metadata => _baseElement.metadata; 7075 List<ElementAnnotation> get metadata => _baseElement.metadata;
7291 7076
7292 String get name => _baseElement.name; 7077 String get name => _baseElement.name;
7293 7078
7294 int get nameOffset => _baseElement.nameOffset; 7079 int get nameOffset => _baseElement.nameOffset;
7295 7080
7296 ASTNode get node => _baseElement.node; 7081 AstNode get node => _baseElement.node;
7297 7082
7298 Source get source => _baseElement.source; 7083 Source get source => _baseElement.source;
7299 7084
7300 CompilationUnit get unit => _baseElement.unit; 7085 CompilationUnit get unit => _baseElement.unit;
7301 7086
7302 bool isAccessibleIn(LibraryElement library) => _baseElement.isAccessibleIn(lib rary); 7087 bool isAccessibleIn(LibraryElement library) => _baseElement.isAccessibleIn(lib rary);
7303 7088
7304 bool get isDeprecated => _baseElement.isDeprecated; 7089 bool get isDeprecated => _baseElement.isDeprecated;
7305 7090
7306 bool get isOverride => _baseElement.isOverride; 7091 bool get isOverride => _baseElement.isOverride;
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
7705 void visitChildren(ElementVisitor visitor) { 7490 void visitChildren(ElementVisitor visitor) {
7706 // TODO(brianwilkerson) We need to finish implementing the accessors used be low so that we can 7491 // TODO(brianwilkerson) We need to finish implementing the accessors used be low so that we can
7707 // safely invoke them. 7492 // safely invoke them.
7708 super.visitChildren(visitor); 7493 super.visitChildren(visitor);
7709 safelyVisitChild(baseElement.initializer, visitor); 7494 safelyVisitChild(baseElement.initializer, visitor);
7710 } 7495 }
7711 } 7496 }
7712 7497
7713 /** 7498 /**
7714 * The unique instance of the class `BottomTypeImpl` implements the type `bottom `. 7499 * The unique instance of the class `BottomTypeImpl` implements the type `bottom `.
7715 *
7716 * @coverage dart.engine.type
7717 */ 7500 */
7718 class BottomTypeImpl extends TypeImpl { 7501 class BottomTypeImpl extends TypeImpl {
7719 /** 7502 /**
7720 * The unique instance of this class. 7503 * The unique instance of this class.
7721 */ 7504 */
7722 static BottomTypeImpl _INSTANCE = new BottomTypeImpl(); 7505 static BottomTypeImpl _INSTANCE = new BottomTypeImpl();
7723 7506
7724 /** 7507 /**
7725 * Return the unique instance of this class. 7508 * Return the unique instance of this class.
7726 * 7509 *
(...skipping 18 matching lines...) Expand all
7745 7528
7746 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) => id entical(object, this); 7529 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) => id entical(object, this);
7747 7530
7748 bool internalIsMoreSpecificThan(Type2 type, bool withDynamic, Set<TypeImpl_Typ ePair> visitedTypePairs) => true; 7531 bool internalIsMoreSpecificThan(Type2 type, bool withDynamic, Set<TypeImpl_Typ ePair> visitedTypePairs) => true;
7749 7532
7750 bool internalIsSubtypeOf(Type2 type, Set<TypeImpl_TypePair> visitedTypePairs) => true; 7533 bool internalIsSubtypeOf(Type2 type, Set<TypeImpl_TypePair> visitedTypePairs) => true;
7751 } 7534 }
7752 7535
7753 /** 7536 /**
7754 * The unique instance of the class `DynamicTypeImpl` implements the type `dynam ic`. 7537 * The unique instance of the class `DynamicTypeImpl` implements the type `dynam ic`.
7755 *
7756 * @coverage dart.engine.type
7757 */ 7538 */
7758 class DynamicTypeImpl extends TypeImpl { 7539 class DynamicTypeImpl extends TypeImpl {
7759 /** 7540 /**
7760 * The unique instance of this class. 7541 * The unique instance of this class.
7761 */ 7542 */
7762 static DynamicTypeImpl _INSTANCE = new DynamicTypeImpl(); 7543 static DynamicTypeImpl _INSTANCE = new DynamicTypeImpl();
7763 7544
7764 /** 7545 /**
7765 * Return the unique instance of this class. 7546 * Return the unique instance of this class.
7766 * 7547 *
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
7803 // else 7584 // else
7804 return withDynamic; 7585 return withDynamic;
7805 } 7586 }
7806 7587
7807 bool internalIsSubtypeOf(Type2 type, Set<TypeImpl_TypePair> visitedTypePairs) => true; 7588 bool internalIsSubtypeOf(Type2 type, Set<TypeImpl_TypePair> visitedTypePairs) => true;
7808 } 7589 }
7809 7590
7810 /** 7591 /**
7811 * Instances of the class `FunctionTypeImpl` defines the behavior common to obje cts 7592 * Instances of the class `FunctionTypeImpl` defines the behavior common to obje cts
7812 * representing the type of a function, method, constructor, getter, or setter. 7593 * representing the type of a function, method, constructor, getter, or setter.
7813 *
7814 * @coverage dart.engine.type
7815 */ 7594 */
7816 class FunctionTypeImpl extends TypeImpl implements FunctionType { 7595 class FunctionTypeImpl extends TypeImpl implements FunctionType {
7817 /** 7596 /**
7818 * Return `true` if all of the name/type pairs in the first map are equal to t he 7597 * Return `true` if all of the name/type pairs in the first map are equal to t he
7819 * corresponding name/type pairs in the second map. The maps are expected to i terate over their 7598 * corresponding name/type pairs in the second map. The maps are expected to i terate over their
7820 * entries in the same order in which those entries were added to the map. 7599 * entries in the same order in which those entries were added to the map.
7821 * 7600 *
7822 * @param firstTypes the first map of name/type pairs being compared 7601 * @param firstTypes the first map of name/type pairs being compared
7823 * @param secondTypes the second map of name/type pairs being compared 7602 * @param secondTypes the second map of name/type pairs being compared
7824 * @param visitedElementPairs a set of visited element pairs 7603 * @param visitedElementPairs a set of visited element pairs
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
8360 } else { 8139 } else {
8361 return (element as FunctionTypeAliasElement).returnType; 8140 return (element as FunctionTypeAliasElement).returnType;
8362 } 8141 }
8363 } 8142 }
8364 } 8143 }
8365 8144
8366 /** 8145 /**
8367 * Instances of the class `InterfaceTypeImpl` defines the behavior common to obj ects 8146 * Instances of the class `InterfaceTypeImpl` defines the behavior common to obj ects
8368 * representing the type introduced by either a class or an interface, or a refe rence to such a 8147 * representing the type introduced by either a class or an interface, or a refe rence to such a
8369 * type. 8148 * type.
8370 *
8371 * @coverage dart.engine.type
8372 */ 8149 */
8373 class InterfaceTypeImpl extends TypeImpl implements InterfaceType { 8150 class InterfaceTypeImpl extends TypeImpl implements InterfaceType {
8374 /** 8151 /**
8375 * An empty array of types. 8152 * An empty array of types.
8376 */ 8153 */
8377 static List<InterfaceType> EMPTY_ARRAY = new List<InterfaceType>(0); 8154 static List<InterfaceType> EMPTY_ARRAY = new List<InterfaceType>(0);
8378 8155
8379 /** 8156 /**
8380 * This method computes the longest inheritance path from some passed [Type] t o Object. 8157 * This method computes the longest inheritance path from some passed [Type] t o Object.
8381 * 8158 *
(...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after
9088 return true; 8865 return true;
9089 } 8866 }
9090 } 8867 }
9091 return false; 8868 return false;
9092 } 8869 }
9093 } 8870 }
9094 8871
9095 /** 8872 /**
9096 * The abstract class `TypeImpl` implements the behavior common to objects repre senting the 8873 * The abstract class `TypeImpl` implements the behavior common to objects repre senting the
9097 * declared type of elements in the element model. 8874 * declared type of elements in the element model.
9098 *
9099 * @coverage dart.engine.type
9100 */ 8875 */
9101 abstract class TypeImpl implements Type2 { 8876 abstract class TypeImpl implements Type2 {
9102 static bool equalArrays(List<Type2> typeArgs1, List<Type2> typeArgs2, Set<Elem entPair> visitedElementPairs) { 8877 static bool equalArrays(List<Type2> typeArgs1, List<Type2> typeArgs2, Set<Elem entPair> visitedElementPairs) {
9103 if (typeArgs1.length != typeArgs2.length) { 8878 if (typeArgs1.length != typeArgs2.length) {
9104 return false; 8879 return false;
9105 } 8880 }
9106 for (int i = 0; i < typeArgs1.length; i++) { 8881 for (int i = 0; i < typeArgs1.length; i++) {
9107 if (!(typeArgs1[i] as TypeImpl).internalEquals(typeArgs2[i], visitedElemen tPairs)) { 8882 if (!(typeArgs1[i] as TypeImpl).internalEquals(typeArgs2[i], visitedElemen tPairs)) {
9108 return false; 8883 return false;
9109 } 8884 }
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
9298 if (_secondType != null) { 9073 if (_secondType != null) {
9299 secondHashCode = _secondType.element == null ? 0 : _secondType.element.has hCode; 9074 secondHashCode = _secondType.element == null ? 0 : _secondType.element.has hCode;
9300 } 9075 }
9301 return firstHashCode + secondHashCode; 9076 return firstHashCode + secondHashCode;
9302 } 9077 }
9303 } 9078 }
9304 9079
9305 /** 9080 /**
9306 * Instances of the class `TypeParameterTypeImpl` defines the behavior of object s representing 9081 * Instances of the class `TypeParameterTypeImpl` defines the behavior of object s representing
9307 * the type introduced by a type parameter. 9082 * the type introduced by a type parameter.
9308 *
9309 * @coverage dart.engine.type
9310 */ 9083 */
9311 class TypeParameterTypeImpl extends TypeImpl implements TypeParameterType { 9084 class TypeParameterTypeImpl extends TypeImpl implements TypeParameterType {
9312 /** 9085 /**
9313 * An empty array of type parameter types. 9086 * An empty array of type parameter types.
9314 */ 9087 */
9315 static List<TypeParameterType> EMPTY_ARRAY = new List<TypeParameterType>(0); 9088 static List<TypeParameterType> EMPTY_ARRAY = new List<TypeParameterType>(0);
9316 9089
9317 /** 9090 /**
9318 * Return an array containing the type parameter types defined by the given ar ray of type 9091 * Return an array containing the type parameter types defined by the given ar ray of type
9319 * parameter elements. 9092 * parameter elements.
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
9414 // Then check upper bound. 9187 // Then check upper bound.
9415 return boundTypeParameter.isMoreSpecificThan4(s, visitedTypes, withDynamic , visitedTypePairs); 9188 return boundTypeParameter.isMoreSpecificThan4(s, visitedTypes, withDynamic , visitedTypePairs);
9416 } 9189 }
9417 // Check interface type. 9190 // Check interface type.
9418 return (bound as TypeImpl).isMoreSpecificThan3(s, withDynamic, visitedTypePa irs); 9191 return (bound as TypeImpl).isMoreSpecificThan3(s, withDynamic, visitedTypePa irs);
9419 } 9192 }
9420 } 9193 }
9421 9194
9422 /** 9195 /**
9423 * The unique instance of the class `VoidTypeImpl` implements the type `void`. 9196 * The unique instance of the class `VoidTypeImpl` implements the type `void`.
9424 *
9425 * @coverage dart.engine.type
9426 */ 9197 */
9427 class VoidTypeImpl extends TypeImpl implements VoidType { 9198 class VoidTypeImpl extends TypeImpl implements VoidType {
9428 /** 9199 /**
9429 * The unique instance of this class. 9200 * The unique instance of this class.
9430 */ 9201 */
9431 static VoidTypeImpl _INSTANCE = new VoidTypeImpl(); 9202 static VoidTypeImpl _INSTANCE = new VoidTypeImpl();
9432 9203
9433 /** 9204 /**
9434 * Return the unique instance of this class. 9205 * Return the unique instance of this class.
9435 * 9206 *
(...skipping 26 matching lines...) Expand all
9462 * of a function, method, constructor, getter, or setter. Function types come in three variations: 9233 * of a function, method, constructor, getter, or setter. Function types come in three variations:
9463 * <ol> 9234 * <ol>
9464 * * The types of functions that only have required parameters. These have the g eneral form 9235 * * The types of functions that only have required parameters. These have the g eneral form
9465 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T</i>. 9236 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T</i>.
9466 * * The types of functions with optional positional parameters. These have the general form 9237 * * The types of functions with optional positional parameters. These have the general form
9467 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, [T<sub>n+1</sub>, &hellip;, T<sub >n+k</sub>]) &rarr; 9238 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, [T<sub>n+1</sub>, &hellip;, T<sub >n+k</sub>]) &rarr;
9468 * T</i>. 9239 * T</i>.
9469 * * The types of functions with named parameters. These have the general form < i>(T<sub>1</sub>, 9240 * * The types of functions with named parameters. These have the general form < i>(T<sub>1</sub>,
9470 * &hellip;, T<sub>n</sub>, {T<sub>x1</sub> x1, &hellip;, T<sub>xk</sub> xk}) &r arr; T</i>. 9241 * &hellip;, T<sub>n</sub>, {T<sub>x1</sub> x1, &hellip;, T<sub>xk</sub> xk}) &r arr; T</i>.
9471 * </ol> 9242 * </ol>
9472 *
9473 * @coverage dart.engine.type
9474 */ 9243 */
9475 abstract class FunctionType implements ParameterizedType { 9244 abstract class FunctionType implements ParameterizedType {
9476 /** 9245 /**
9477 * Return a map from the names of named parameters to the types of the named p arameters of this 9246 * Return a map from the names of named parameters to the types of the named p arameters of this
9478 * type of function. The entries in the map will be iterated in the same order as the order in 9247 * type of function. The entries in the map will be iterated in the same order as the order in
9479 * which the named parameters were defined. If there were no named parameters declared then the 9248 * which the named parameters were defined. If there were no named parameters declared then the
9480 * map will be empty. 9249 * map will be empty.
9481 * 9250 *
9482 * @return a map from the name to the types of the named parameters of this ty pe of function 9251 * @return a map from the name to the types of the named parameters of this ty pe of function
9483 */ 9252 */
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
9515 * @return the type of object returned by this type of function 9284 * @return the type of object returned by this type of function
9516 */ 9285 */
9517 Type2 get returnType; 9286 Type2 get returnType;
9518 9287
9519 /** 9288 /**
9520 * Return `true` if this type is a subtype of the given type. 9289 * Return `true` if this type is a subtype of the given type.
9521 * 9290 *
9522 * A function type <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T</i> is a subtype of the 9291 * A function type <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T</i> is a subtype of the
9523 * function type <i>(S<sub>1</sub>, &hellip;, S<sub>n</sub>) &rarr; S</i>, if all of the following 9292 * function type <i>(S<sub>1</sub>, &hellip;, S<sub>n</sub>) &rarr; S</i>, if all of the following
9524 * conditions are met: 9293 * conditions are met:
9525 *
9526 * * Either 9294 * * Either
9527 *
9528 * * <i>S</i> is void, or 9295 * * <i>S</i> is void, or
9529 * * <i>T &hArr; S</i>. 9296 * * <i>T &hArr; S</i>.
9530 * 9297 *
9531 *
9532 * * For all <i>i</i>, 1 <= <i>i</i> <= <i>n</i>, <i>T<sub>i</sub> &hArr; S<su b>i</sub></i>. 9298 * * For all <i>i</i>, 1 <= <i>i</i> <= <i>n</i>, <i>T<sub>i</sub> &hArr; S<su b>i</sub></i>.
9533 *
9534 * A function type <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, [T<sub>n+1</sub >, &hellip;, 9299 * A function type <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, [T<sub>n+1</sub >, &hellip;,
9535 * T<sub>n+k</sub>]) &rarr; T</i> is a subtype of the function type <i>(S<sub> 1</sub>, &hellip;, 9300 * T<sub>n+k</sub>]) &rarr; T</i> is a subtype of the function type <i>(S<sub> 1</sub>, &hellip;,
9536 * S<sub>n</sub>, [S<sub>n+1</sub>, &hellip;, S<sub>n+m</sub>]) &rarr; S</i>, if all of the 9301 * S<sub>n</sub>, [S<sub>n+1</sub>, &hellip;, S<sub>n+m</sub>]) &rarr; S</i>, if all of the
9537 * following conditions are met: 9302 * following conditions are met:
9538 *
9539 * * Either 9303 * * Either
9540 *
9541 * * <i>S</i> is void, or 9304 * * <i>S</i> is void, or
9542 * * <i>T &hArr; S</i>. 9305 * * <i>T &hArr; S</i>.
9543 * 9306 *
9544 *
9545 * * <i>k</i> >= <i>m</i> and for all <i>i</i>, 1 <= <i>i</i> <= <i>n+m</i>, < i>T<sub>i</sub> 9307 * * <i>k</i> >= <i>m</i> and for all <i>i</i>, 1 <= <i>i</i> <= <i>n+m</i>, < i>T<sub>i</sub>
9546 * &hArr; S<sub>i</sub></i>. 9308 * &hArr; S<sub>i</sub></i>.
9547 *
9548 * A function type <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, {T<sub>x1</sub> x1, &hellip;, 9309 * A function type <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, {T<sub>x1</sub> x1, &hellip;,
9549 * T<sub>xk</sub> xk}) &rarr; T</i> is a subtype of the function type <i>(S<su b>1</sub>, &hellip;, 9310 * T<sub>xk</sub> xk}) &rarr; T</i> is a subtype of the function type <i>(S<su b>1</sub>, &hellip;,
9550 * S<sub>n</sub>, {S<sub>y1</sub> y1, &hellip;, S<sub>ym</sub> ym}) &rarr; S</ i>, if all of the 9311 * S<sub>n</sub>, {S<sub>y1</sub> y1, &hellip;, S<sub>ym</sub> ym}) &rarr; S</ i>, if all of the
9551 * following conditions are met: 9312 * following conditions are met:
9552 *
9553 * * Either 9313 * * Either
9554 *
9555 * * <i>S</i> is void, 9314 * * <i>S</i> is void,
9556 * * or <i>T &hArr; S</i>. 9315 * * or <i>T &hArr; S</i>.
9557 * 9316 *
9558 *
9559 * * For all <i>i</i>, 1 <= <i>i</i> <= <i>n</i>, <i>T<sub>i</sub> &hArr; S<su b>i</sub></i>. 9317 * * For all <i>i</i>, 1 <= <i>i</i> <= <i>n</i>, <i>T<sub>i</sub> &hArr; S<su b>i</sub></i>.
9560 * * <i>k</i> >= <i>m</i> and <i>y<sub>i</sub></i> in <i>{x<sub>1</sub>, &hell ip;, 9318 * * <i>k</i> >= <i>m</i> and <i>y<sub>i</sub></i> in <i>{x<sub>1</sub>, &hell ip;,
9561 * x<sub>k</sub>}</i>, 1 <= <i>i</i> <= <i>m</i>. 9319 * x<sub>k</sub>}</i>, 1 <= <i>i</i> <= <i>m</i>.
9562 * * For all <i>y<sub>i</sub></i> in <i>{y<sub>1</sub>, &hellip;, y<sub>m</sub >}</i>, 9320 * * For all <i>y<sub>i</sub></i> in <i>{y<sub>1</sub>, &hellip;, y<sub>m</sub >}</i>,
9563 * <i>y<sub>i</sub> = x<sub>j</sub> => Tj &hArr; Si</i>. 9321 * <i>y<sub>i</sub> = x<sub>j</sub> => Tj &hArr; Si</i>.
9564 *
9565 * In addition, the following subtype rules apply: 9322 * In addition, the following subtype rules apply:
9566 * 9323 *
9567 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, []) &rarr; T <: (T<sub>1</sub>, &hellip;, 9324 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, []) &rarr; T <: (T<sub>1</sub>, &hellip;,
9568 * T<sub>n</sub>) &rarr; T.</i><br> 9325 * T<sub>n</sub>) &rarr; T.</i><br>
9569 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T <: (T<sub>1</sub>, &he llip;, 9326 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T <: (T<sub>1</sub>, &he llip;,
9570 * T<sub>n</sub>, {}) &rarr; T.</i><br> 9327 * T<sub>n</sub>, {}) &rarr; T.</i><br>
9571 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, {}) &rarr; T <: (T<sub>1</sub>, &hellip;, 9328 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>, {}) &rarr; T <: (T<sub>1</sub>, &hellip;,
9572 * T<sub>n</sub>) &rarr; T.</i><br> 9329 * T<sub>n</sub>) &rarr; T.</i><br>
9573 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T <: (T<sub>1</sub>, &he llip;, 9330 * <i>(T<sub>1</sub>, &hellip;, T<sub>n</sub>) &rarr; T <: (T<sub>1</sub>, &he llip;,
9574 * T<sub>n</sub>, []) &rarr; T.</i> 9331 * T<sub>n</sub>, []) &rarr; T.</i>
(...skipping 16 matching lines...) Expand all
9591 * @return the result of performing the substitution 9348 * @return the result of performing the substitution
9592 */ 9349 */
9593 FunctionType substitute3(List<Type2> argumentTypes); 9350 FunctionType substitute3(List<Type2> argumentTypes);
9594 9351
9595 FunctionType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes ); 9352 FunctionType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes );
9596 } 9353 }
9597 9354
9598 /** 9355 /**
9599 * The interface `InterfaceType` defines the behavior common to objects represen ting the type 9356 * The interface `InterfaceType` defines the behavior common to objects represen ting the type
9600 * introduced by either a class or an interface, or a reference to such a type. 9357 * introduced by either a class or an interface, or a reference to such a type.
9601 *
9602 * @coverage dart.engine.type
9603 */ 9358 */
9604 abstract class InterfaceType implements ParameterizedType { 9359 abstract class InterfaceType implements ParameterizedType {
9605 /** 9360 /**
9606 * Return an array containing all of the accessors (getters and setters) decla red in this type. 9361 * Return an array containing all of the accessors (getters and setters) decla red in this type.
9607 * 9362 *
9608 * @return the accessors declared in this type 9363 * @return the accessors declared in this type
9609 */ 9364 */
9610 List<PropertyAccessorElement> get accessors; 9365 List<PropertyAccessorElement> get accessors;
9611 9366
9612 ClassElement get element; 9367 ClassElement get element;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
9689 * parameters replaced. 9444 * parameters replaced.
9690 * 9445 *
9691 * @return the superclass of this type 9446 * @return the superclass of this type
9692 */ 9447 */
9693 InterfaceType get superclass; 9448 InterfaceType get superclass;
9694 9449
9695 /** 9450 /**
9696 * Return `true` if this type is a direct supertype of the given type. The imp licit 9451 * Return `true` if this type is a direct supertype of the given type. The imp licit
9697 * interface of class <i>I</i> is a direct supertype of the implicit interface of class <i>J</i> 9452 * interface of class <i>I</i> is a direct supertype of the implicit interface of class <i>J</i>
9698 * iff: 9453 * iff:
9699 *
9700 * * <i>I</i> is Object, and <i>J</i> has no extends clause. 9454 * * <i>I</i> is Object, and <i>J</i> has no extends clause.
9701 * * <i>I</i> is listed in the extends clause of <i>J</i>. 9455 * * <i>I</i> is listed in the extends clause of <i>J</i>.
9702 * * <i>I</i> is listed in the implements clause of <i>J</i>. 9456 * * <i>I</i> is listed in the implements clause of <i>J</i>.
9703 * * <i>I</i> is listed in the with clause of <i>J</i>. 9457 * * <i>I</i> is listed in the with clause of <i>J</i>.
9704 * * <i>J</i> is a mixin application of the mixin of <i>I</i>. 9458 * * <i>J</i> is a mixin application of the mixin of <i>I</i>.
9705 * 9459 *
9706 *
9707 * @param type the type being compared with this type 9460 * @param type the type being compared with this type
9708 * @return `true` if this type is a direct supertype of the given type 9461 * @return `true` if this type is a direct supertype of the given type
9709 */ 9462 */
9710 bool isDirectSupertypeOf(InterfaceType type); 9463 bool isDirectSupertypeOf(InterfaceType type);
9711 9464
9712 /** 9465 /**
9713 * Return `true` if this type is more specific than the given type. An interfa ce type 9466 * Return `true` if this type is more specific than the given type. An interfa ce type
9714 * <i>T</i> is more specific than an interface type <i>S</i>, written <i>T &la quo; S</i>, if one 9467 * <i>T</i> is more specific than an interface type <i>S</i>, written <i>T &la quo; S</i>, if one
9715 * of the following conditions is met: 9468 * of the following conditions is met:
9716 *
9717 * * Reflexivity: <i>T</i> is <i>S</i>. 9469 * * Reflexivity: <i>T</i> is <i>S</i>.
9718 * * <i>T</i> is bottom. 9470 * * <i>T</i> is bottom.
9719 * * <i>S</i> is dynamic. 9471 * * <i>S</i> is dynamic.
9720 * * Direct supertype: <i>S</i> is a direct supertype of <i>T</i>. 9472 * * Direct supertype: <i>S</i> is a direct supertype of <i>T</i>.
9721 * * <i>T</i> is a type parameter and <i>S</i> is the upper bound of <i>T</i>. 9473 * * <i>T</i> is a type parameter and <i>S</i> is the upper bound of <i>T</i>.
9722 * * Covariance: <i>T</i> is of the form <i>I&lt;T<sub>1</sub>, &hellip;, T<su b>n</sub>&gt;</i> 9474 * * Covariance: <i>T</i> is of the form <i>I&lt;T<sub>1</sub>, &hellip;, T<su b>n</sub>&gt;</i>
9723 * and S</i> is of the form <i>I&lt;S<sub>1</sub>, &hellip;, S<sub>n</sub>&gt; </i> and 9475 * and S</i> is of the form <i>I&lt;S<sub>1</sub>, &hellip;, S<sub>n</sub>&gt; </i> and
9724 * <i>T<sub>i</sub> &laquo; S<sub>i</sub></i>, <i>1 <= i <= n</i>. 9476 * <i>T<sub>i</sub> &laquo; S<sub>i</sub></i>, <i>1 <= i <= n</i>.
9725 * * Transitivity: <i>T &laquo; U</i> and <i>U &laquo; S</i>. 9477 * * Transitivity: <i>T &laquo; U</i> and <i>U &laquo; S</i>.
9726 * 9478 *
9727 *
9728 * @param type the type being compared with this type 9479 * @param type the type being compared with this type
9729 * @return `true` if this type is more specific than the given type 9480 * @return `true` if this type is more specific than the given type
9730 */ 9481 */
9731 bool isMoreSpecificThan(Type2 type); 9482 bool isMoreSpecificThan(Type2 type);
9732 9483
9733 /** 9484 /**
9734 * Return `true` if this type is a subtype of the given type. An interface typ e <i>T</i> is 9485 * Return `true` if this type is a subtype of the given type. An interface typ e <i>T</i> is
9735 * a subtype of an interface type <i>S</i>, written <i>T</i> <: <i>S</i>, iff 9486 * a subtype of an interface type <i>S</i>, written <i>T</i> <: <i>S</i>, iff
9736 * <i>[bottom/dynamic]T</i> &laquo; <i>S</i> (<i>T</i> is more specific than < i>S</i>). If an 9487 * <i>[bottom/dynamic]T</i> &laquo; <i>S</i> (<i>T</i> is more specific than < i>S</i>). If an
9737 * interface type <i>I</i> includes a method named <i>call()</i>, and the type of <i>call()</i> is 9488 * interface type <i>I</i> includes a method named <i>call()</i>, and the type of <i>call()</i> is
(...skipping 18 matching lines...) Expand all
9756 * library 9507 * library
9757 */ 9508 */
9758 ConstructorElement lookUpConstructor(String constructorName, LibraryElement li brary); 9509 ConstructorElement lookUpConstructor(String constructorName, LibraryElement li brary);
9759 9510
9760 /** 9511 /**
9761 * Return the element representing the getter that results from looking up the given getter in 9512 * Return the element representing the getter that results from looking up the given getter in
9762 * this class with respect to the given library, or `null` if the look up fail s. The 9513 * this class with respect to the given library, or `null` if the look up fail s. The
9763 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1: 9514 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1:
9764 * <blockquote>The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i> 9515 * <blockquote>The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i>
9765 * with respect to library <i>L</i> is: 9516 * with respect to library <i>L</i> is:
9766 *
9767 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is 9517 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is
9768 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. 9518 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup.
9769 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result 9519 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result
9770 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. 9520 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>.
9771 * Otherwise, we say that the lookup has failed. 9521 * Otherwise, we say that the lookup has failed.
9772 *
9773 * </blockquote> 9522 * </blockquote>
9774 * 9523 *
9775 * @param getterName the name of the getter being looked up 9524 * @param getterName the name of the getter being looked up
9776 * @param library the library with respect to which the lookup is being perfor med 9525 * @param library the library with respect to which the lookup is being perfor med
9777 * @return the result of looking up the given getter in this class with respec t to the given 9526 * @return the result of looking up the given getter in this class with respec t to the given
9778 * library 9527 * library
9779 */ 9528 */
9780 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library ); 9529 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library );
9781 9530
9782 /** 9531 /**
9783 * Return the element representing the getter that results from looking up the given getter in the 9532 * Return the element representing the getter that results from looking up the given getter in the
9784 * superclass of this class with respect to the given library, or `null` if th e look up 9533 * superclass of this class with respect to the given library, or `null` if th e look up
9785 * fails. The behavior of this method is defined by the Dart Language Specific ation in section 9534 * fails. The behavior of this method is defined by the Dart Language Specific ation in section
9786 * 12.15.1: <blockquote>The result of looking up getter (respectively setter) <i>m</i> in class 9535 * 12.15.1: <blockquote>The result of looking up getter (respectively setter) <i>m</i> in class
9787 * <i>C</i> with respect to library <i>L</i> is: 9536 * <i>C</i> with respect to library <i>L</i> is:
9788 *
9789 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is 9537 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is
9790 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. 9538 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup.
9791 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result 9539 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result
9792 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. 9540 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>.
9793 * Otherwise, we say that the lookup has failed. 9541 * Otherwise, we say that the lookup has failed.
9794 *
9795 * </blockquote> 9542 * </blockquote>
9796 * 9543 *
9797 * @param getterName the name of the getter being looked up 9544 * @param getterName the name of the getter being looked up
9798 * @param library the library with respect to which the lookup is being perfor med 9545 * @param library the library with respect to which the lookup is being perfor med
9799 * @return the result of looking up the given getter in this class with respec t to the given 9546 * @return the result of looking up the given getter in this class with respec t to the given
9800 * library 9547 * library
9801 */ 9548 */
9802 PropertyAccessorElement lookUpGetterInSuperclass(String getterName, LibraryEle ment library); 9549 PropertyAccessorElement lookUpGetterInSuperclass(String getterName, LibraryEle ment library);
9803 9550
9804 /** 9551 /**
9805 * Return the element representing the method that results from looking up the given method in 9552 * Return the element representing the method that results from looking up the given method in
9806 * this class with respect to the given library, or `null` if the look up fail s. The 9553 * this class with respect to the given library, or `null` if the look up fail s. The
9807 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1: 9554 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1:
9808 * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> wit h respect to library 9555 * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> wit h respect to library
9809 * <i>L</i> is: 9556 * <i>L</i> is:
9810 *
9811 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then 9557 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
9812 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then 9558 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then
9813 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect 9559 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect
9814 * to <i>L</i>. Otherwise, we say that the lookup has failed. 9560 * to <i>L</i>. Otherwise, we say that the lookup has failed.
9815 *
9816 * </blockquote> 9561 * </blockquote>
9817 * 9562 *
9818 * @param methodName the name of the method being looked up 9563 * @param methodName the name of the method being looked up
9819 * @param library the library with respect to which the lookup is being perfor med 9564 * @param library the library with respect to which the lookup is being perfor med
9820 * @return the result of looking up the given method in this class with respec t to the given 9565 * @return the result of looking up the given method in this class with respec t to the given
9821 * library 9566 * library
9822 */ 9567 */
9823 MethodElement lookUpMethod(String methodName, LibraryElement library); 9568 MethodElement lookUpMethod(String methodName, LibraryElement library);
9824 9569
9825 /** 9570 /**
9826 * Return the element representing the method that results from looking up the given method in the 9571 * Return the element representing the method that results from looking up the given method in the
9827 * superclass of this class with respect to the given library, or `null` if th e look up 9572 * superclass of this class with respect to the given library, or `null` if th e look up
9828 * fails. The behavior of this method is defined by the Dart Language Specific ation in section 9573 * fails. The behavior of this method is defined by the Dart Language Specific ation in section
9829 * 12.15.1: <blockquote> The result of looking up method <i>m</i> in class <i> C</i> with respect 9574 * 12.15.1: <blockquote> The result of looking up method <i>m</i> in class <i> C</i> with respect
9830 * to library <i>L</i> is: 9575 * to library <i>L</i> is:
9831 *
9832 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then 9576 * * If <i>C</i> declares an instance method named <i>m</i> that is accessible to <i>L</i>, then
9833 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then 9577 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then
9834 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect 9578 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect
9835 * to <i>L</i>. Otherwise, we say that the lookup has failed. 9579 * to <i>L</i>. Otherwise, we say that the lookup has failed.
9836 *
9837 * </blockquote> 9580 * </blockquote>
9838 * 9581 *
9839 * @param methodName the name of the method being looked up 9582 * @param methodName the name of the method being looked up
9840 * @param library the library with respect to which the lookup is being perfor med 9583 * @param library the library with respect to which the lookup is being perfor med
9841 * @return the result of looking up the given method in this class with respec t to the given 9584 * @return the result of looking up the given method in this class with respec t to the given
9842 * library 9585 * library
9843 */ 9586 */
9844 MethodElement lookUpMethodInSuperclass(String methodName, LibraryElement libra ry); 9587 MethodElement lookUpMethodInSuperclass(String methodName, LibraryElement libra ry);
9845 9588
9846 /** 9589 /**
9847 * Return the element representing the setter that results from looking up the given setter in 9590 * Return the element representing the setter that results from looking up the given setter in
9848 * this class with respect to the given library, or `null` if the look up fail s. The 9591 * this class with respect to the given library, or `null` if the look up fail s. The
9849 * behavior of this method is defined by the Dart Language Specification in se ction 12.16: 9592 * behavior of this method is defined by the Dart Language Specification in se ction 12.16:
9850 * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i> 9593 * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i>
9851 * with respect to library <i>L</i> is: 9594 * with respect to library <i>L</i> is:
9852 *
9853 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is 9595 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is
9854 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. 9596 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup.
9855 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result 9597 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result
9856 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. 9598 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>.
9857 * Otherwise, we say that the lookup has failed. 9599 * Otherwise, we say that the lookup has failed.
9858 *
9859 * </blockquote> 9600 * </blockquote>
9860 * 9601 *
9861 * @param setterName the name of the setter being looked up 9602 * @param setterName the name of the setter being looked up
9862 * @param library the library with respect to which the lookup is being perfor med 9603 * @param library the library with respect to which the lookup is being perfor med
9863 * @return the result of looking up the given setter in this class with respec t to the given 9604 * @return the result of looking up the given setter in this class with respec t to the given
9864 * library 9605 * library
9865 */ 9606 */
9866 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ); 9607 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library );
9867 9608
9868 /** 9609 /**
9869 * Return the element representing the setter that results from looking up the given setter in the 9610 * Return the element representing the setter that results from looking up the given setter in the
9870 * superclass of this class with respect to the given library, or `null` if th e look up 9611 * superclass of this class with respect to the given library, or `null` if th e look up
9871 * fails. The behavior of this method is defined by the Dart Language Specific ation in section 9612 * fails. The behavior of this method is defined by the Dart Language Specific ation in section
9872 * 12.16: <blockquote> The result of looking up getter (respectively setter) < i>m</i> in class 9613 * 12.16: <blockquote> The result of looking up getter (respectively setter) < i>m</i> in class
9873 * <i>C</i> with respect to library <i>L</i> is: 9614 * <i>C</i> with respect to library <i>L</i> is:
9874 *
9875 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is 9615 * * If <i>C</i> declares an instance getter (respectively setter) named <i>m< /i> that is
9876 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. 9616 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup.
9877 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result 9617 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result
9878 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. 9618 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>.
9879 * Otherwise, we say that the lookup has failed. 9619 * Otherwise, we say that the lookup has failed.
9880 *
9881 * </blockquote> 9620 * </blockquote>
9882 * 9621 *
9883 * @param setterName the name of the setter being looked up 9622 * @param setterName the name of the setter being looked up
9884 * @param library the library with respect to which the lookup is being perfor med 9623 * @param library the library with respect to which the lookup is being perfor med
9885 * @return the result of looking up the given setter in this class with respec t to the given 9624 * @return the result of looking up the given setter in this class with respec t to the given
9886 * library 9625 * library
9887 */ 9626 */
9888 PropertyAccessorElement lookUpSetterInSuperclass(String setterName, LibraryEle ment library); 9627 PropertyAccessorElement lookUpSetterInSuperclass(String setterName, LibraryEle ment library);
9889 9628
9890 /** 9629 /**
9891 * Return the type resulting from substituting the given arguments for this ty pe's parameters. 9630 * Return the type resulting from substituting the given arguments for this ty pe's parameters.
9892 * This is fully equivalent to `substitute(argumentTypes, getTypeArguments())` . 9631 * This is fully equivalent to `substitute(argumentTypes, getTypeArguments())` .
9893 * 9632 *
9894 * @param argumentTypes the actual type arguments being substituted for the ty pe parameters 9633 * @param argumentTypes the actual type arguments being substituted for the ty pe parameters
9895 * @return the result of performing the substitution 9634 * @return the result of performing the substitution
9896 */ 9635 */
9897 InterfaceType substitute4(List<Type2> argumentTypes); 9636 InterfaceType substitute4(List<Type2> argumentTypes);
9898 9637
9899 InterfaceType substitute2(List<Type2> argumentTypes, List<Type2> parameterType s); 9638 InterfaceType substitute2(List<Type2> argumentTypes, List<Type2> parameterType s);
9900 } 9639 }
9901 9640
9902 /** 9641 /**
9903 * The interface `ParameterizedType` defines the behavior common to objects repr esenting a 9642 * The interface `ParameterizedType` defines the behavior common to objects repr esenting a
9904 * type with type parameters, such as a class or function type alias. 9643 * type with type parameters, such as a class or function type alias.
9905 *
9906 * @coverage dart.engine.type
9907 */ 9644 */
9908 abstract class ParameterizedType implements Type2 { 9645 abstract class ParameterizedType implements Type2 {
9909 /** 9646 /**
9910 * Return an array containing the actual types of the type arguments. If this type's element does 9647 * Return an array containing the actual types of the type arguments. If this type's element does
9911 * not have type parameters, then the array should be empty (although it is po ssible for type 9648 * not have type parameters, then the array should be empty (although it is po ssible for type
9912 * arguments to be erroneously declared). If the element has type parameters a nd the actual type 9649 * arguments to be erroneously declared). If the element has type parameters a nd the actual type
9913 * does not explicitly include argument values, then the type "dynamic" will b e automatically 9650 * does not explicitly include argument values, then the type "dynamic" will b e automatically
9914 * provided. 9651 * provided.
9915 * 9652 *
9916 * @return the actual types of the type arguments 9653 * @return the actual types of the type arguments
9917 */ 9654 */
9918 List<Type2> get typeArguments; 9655 List<Type2> get typeArguments;
9919 9656
9920 /** 9657 /**
9921 * Return an array containing all of the type parameters declared for this typ e. 9658 * Return an array containing all of the type parameters declared for this typ e.
9922 * 9659 *
9923 * @return the type parameters declared for this type 9660 * @return the type parameters declared for this type
9924 */ 9661 */
9925 List<TypeParameterElement> get typeParameters; 9662 List<TypeParameterElement> get typeParameters;
9926 } 9663 }
9927 9664
9928 /** 9665 /**
9929 * The interface `Type` defines the behavior of objects representing the declare d type of 9666 * The interface `Type` defines the behavior of objects representing the declare d type of
9930 * elements in the element model. 9667 * elements in the element model.
9931 *
9932 * @coverage dart.engine.type
9933 */ 9668 */
9934 abstract class Type2 { 9669 abstract class Type2 {
9935 /** 9670 /**
9936 * Return the name of this type as it should appear when presented to users in contexts such as 9671 * Return the name of this type as it should appear when presented to users in contexts such as
9937 * error messages. 9672 * error messages.
9938 * 9673 *
9939 * @return the name of this type 9674 * @return the name of this type
9940 */ 9675 */
9941 String get displayName; 9676 String get displayName;
9942 9677
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
10050 * @param argumentTypes the actual type arguments being substituted for the pa rameters 9785 * @param argumentTypes the actual type arguments being substituted for the pa rameters
10051 * @param parameterTypes the parameters to be replaced 9786 * @param parameterTypes the parameters to be replaced
10052 * @return the result of performing the substitution 9787 * @return the result of performing the substitution
10053 */ 9788 */
10054 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); 9789 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes);
10055 } 9790 }
10056 9791
10057 /** 9792 /**
10058 * The interface `TypeParameterType` defines the behavior of objects representin g the type 9793 * The interface `TypeParameterType` defines the behavior of objects representin g the type
10059 * introduced by a type parameter. 9794 * introduced by a type parameter.
10060 *
10061 * @coverage dart.engine.type
10062 */ 9795 */
10063 abstract class TypeParameterType implements Type2 { 9796 abstract class TypeParameterType implements Type2 {
10064 TypeParameterElement get element; 9797 TypeParameterElement get element;
10065 } 9798 }
10066 9799
10067 /** 9800 /**
10068 * The interface `VoidType` defines the behavior of the unique object representi ng the type 9801 * The interface `VoidType` defines the behavior of the unique object representi ng the type
10069 * `void`. 9802 * `void`.
10070 *
10071 * @coverage dart.engine.type
10072 */ 9803 */
10073 abstract class VoidType implements Type2 { 9804 abstract class VoidType implements Type2 {
10074 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); 9805 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes);
10075 } 9806 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698