OLD | NEW |
---|---|
1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
3 | 3 |
4 library engine.element; | 4 library engine.element; |
5 | 5 |
6 import 'dart:collection'; | 6 import 'dart:collection'; |
7 import 'java_core.dart'; | 7 import 'java_core.dart'; |
8 import 'java_engine.dart'; | 8 import 'java_engine.dart'; |
9 import 'source.dart'; | 9 import 'source.dart'; |
10 import 'scanner.dart' show Keyword; | 10 import 'scanner.dart' show Keyword; |
11 import 'ast.dart'; | 11 import 'ast.dart'; |
12 import 'package:analyzer-experimental/src/generated/utilities_dart.dart'; | 12 import 'engine.dart' show AnalysisContext; |
13 import 'utilities_dart.dart'; | |
13 | 14 |
14 /** | 15 /** |
15 * The interface {@code Annotation} defines the behavior of objects representing a single annotation | 16 * The interface {@code Annotation} defines the behavior of objects representing a single annotation |
16 * associated with an element. | 17 * associated with an element. |
17 */ | 18 */ |
18 abstract class Annotation { | 19 abstract class Annotation { |
19 /** | 20 /** |
20 * Return the element representing the field, variable, or const constructor b eing used as an | 21 * Return the element representing the field, variable, or const constructor b eing used as an |
21 * annotation. | 22 * annotation. |
22 * @return the field, variable, or constructor being used as an annotation | 23 * @return the field, variable, or constructor being used as an annotation |
23 */ | 24 */ |
24 Element get element; | 25 Element get element; |
25 } | 26 } |
26 /** | 27 /** |
27 * The interface {@code ClassElement} defines the behavior of elements that repr esent a class. | 28 * The interface {@code ClassElement} defines the behavior of elements that repr esent a class. |
28 */ | 29 */ |
29 abstract class ClassElement implements Element { | 30 abstract class ClassElement implements Element { |
30 /** | 31 /** |
31 * Return an array containing all of the accessors (getters and setters) conta ined in this class. | 32 * Return an array containing all of the accessors (getters and setters) decla red in this class. |
32 * @return the accessors contained in this class | 33 * @return the accessors declared in this class |
33 */ | 34 */ |
34 List<PropertyAccessorElement> get accessors; | 35 List<PropertyAccessorElement> get accessors; |
35 /** | 36 /** |
36 * Return an array containing all of the constructors contained in this class. | 37 * Return an array containing all the supertypes defined for this class and it s supertypes. |
37 * @return the constructors contained in this class | 38 * @return all the supertypes of this class, including mixins |
39 */ | |
40 List<InterfaceType> get allSupertypes; | |
41 /** | |
42 * Return an array containing all of the constructors declared in this class. | |
43 * @return the constructors declared in this class | |
38 */ | 44 */ |
39 List<ConstructorElement> get constructors; | 45 List<ConstructorElement> get constructors; |
40 /** | 46 /** |
41 * Return an array containing all of the fields contained in this class. | 47 * Return an array containing all of the fields declared in this class. |
42 * @return the fields contained in this class | 48 * @return the fields declared in this class |
43 */ | 49 */ |
44 List<FieldElement> get fields; | 50 List<FieldElement> get fields; |
45 /** | 51 /** |
46 * Return an array containing all of the interfaces that are implemented by th is class. | 52 * Return an array containing all of the interfaces that are implemented by th is class. |
47 * @return the interfaces that are implemented by this class | 53 * @return the interfaces that are implemented by this class |
48 */ | 54 */ |
49 List<InterfaceType> get interfaces; | 55 List<InterfaceType> get interfaces; |
50 /** | 56 /** |
51 * Return an array containing all of the methods contained in this class. | 57 * Return an array containing all of the methods declared in this class. |
52 * @return the methods contained in this class | 58 * @return the methods declared in this class |
53 */ | 59 */ |
54 List<MethodElement> get methods; | 60 List<MethodElement> get methods; |
55 /** | 61 /** |
56 * Return an array containing all of the mixins that are applied to the class being extended in | 62 * Return an array containing all of the mixins that are applied to the class being extended in |
57 * order to derive the superclass of this class. | 63 * order to derive the superclass of this class. |
58 * @return the mixins that are applied to derive the superclass of this class | 64 * @return the mixins that are applied to derive the superclass of this class |
59 */ | 65 */ |
60 List<InterfaceType> get mixins; | 66 List<InterfaceType> get mixins; |
61 /** | 67 /** |
68 * Return the named constructor declared in this class with the given name, or {@code null} if | |
69 * this class does not declare a named constructor with the given name. | |
70 * @param name the name of the constructor to be returned | |
71 * @return the element representing the specified constructor | |
72 */ | |
73 ConstructorElement getNamedConstructor(String name); | |
74 /** | |
62 * Return the superclass of this class, or {@code null} if the class represent s the class | 75 * Return the superclass of this class, or {@code null} if the class represent s the class |
63 * 'Object'. All other classes will have a non-{@code null} superclass. If the superclass was not | 76 * 'Object'. All other classes will have a non-{@code null} superclass. If the superclass was not |
64 * explicitly declared then the implicit superclass 'Object' will be returned. | 77 * explicitly declared then the implicit superclass 'Object' will be returned. |
65 * @return the superclass of this class | 78 * @return the superclass of this class |
66 */ | 79 */ |
67 InterfaceType get supertype; | 80 InterfaceType get supertype; |
68 /** | 81 /** |
69 * Return the type defined by the class. | 82 * Return the type defined by the class. |
70 * @return the type defined by the class | 83 * @return the type defined by the class |
71 */ | 84 */ |
72 InterfaceType get type; | 85 InterfaceType get type; |
73 /** | 86 /** |
74 * Return an array containing all of the type variables defined for this class . | 87 * Return an array containing all of the type variables declared for this clas s. |
75 * @return the type variables defined for this class | 88 * @return the type variables declared for this class |
76 */ | 89 */ |
77 List<TypeVariableElement> get typeVariables; | 90 List<TypeVariableElement> get typeVariables; |
78 /** | 91 /** |
92 * Return the unnamed constructor declared in this class, or {@code null} if t his class does not | |
93 * declare an unnamed constructor but does declare named constructors. The ret urned constructor | |
94 * will be synthetic if this class does not declare any constructors, in which case it will | |
95 * represent the default constructor for the class. | |
96 * @return the unnamed constructor defined in this class | |
97 */ | |
98 ConstructorElement get unnamedConstructor; | |
99 /** | |
79 * Return {@code true} if this class is abstract. A class is abstract if it ha s an explicit{@code abstract} modifier. Note, that this definition of <i>abstrac t</i> is different from | 100 * Return {@code true} if this class is abstract. A class is abstract if it ha s an explicit{@code abstract} modifier. Note, that this definition of <i>abstrac t</i> is different from |
80 * <i>has unimplemented members</i>. | 101 * <i>has unimplemented members</i>. |
81 * @return {@code true} if this class is abstract | 102 * @return {@code true} if this class is abstract |
82 */ | 103 */ |
83 bool isAbstract(); | 104 bool isAbstract(); |
105 /** | |
106 * Return the element representing the getter that results from looking up the given getter in | |
107 * this class with respect to the given library, or {@code null} if the look u p fails. The | |
108 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1: | |
109 * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i> | |
110 * with respect to library <i>L</i> is: | |
111 * <ul> | |
112 * <li>If <i>C</i> declares an instance getter (respectively setter) named <i> m</i> that is | |
113 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. | |
114 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result | |
115 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. | |
116 * Otherwise, we say that the lookup has failed.</li> | |
117 * </ul> | |
118 * </blockquote> | |
119 * @param getterName the name of the getter being looked up | |
120 * @param library the library with respect to which the lookup is being perfor med | |
121 * @return the result of looking up the given getter in this class with respec t to the given | |
122 * library | |
123 */ | |
124 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library ); | |
125 /** | |
126 * Return the element representing the method that results from looking up the given method in | |
127 * this class with respect to the given library, or {@code null} if the look u p fails. The | |
128 * behavior of this method is defined by the Dart Language Specification in se ction 12.15.1: | |
129 * <blockquote> The result of looking up method <i>m</i> in class <i>C</i> wit h respect to library | |
130 * <i>L</i> is: | |
131 * <ul> | |
132 * <li>If <i>C</i> declares an instance method named <i>m</i> that is accessib le to <i>L</i>, then | |
133 * that method is the result of the lookup. Otherwise, if <i>C</i> has a super class <i>S</i>, then | |
134 * the result of the lookup is the result of looking up method <i>m</i> in <i> S</i> with respect | |
135 * to <i>L</i>. Otherwise, we say that the lookup has failed.</li> | |
136 * </ul> | |
137 * </blockquote> | |
138 * @param methodName the name of the method being looked up | |
139 * @param library the library with respect to which the lookup is being perfor med | |
140 * @return the result of looking up the given method in this class with respec t to the given | |
141 * library | |
142 */ | |
143 MethodElement lookUpMethod(String methodName, LibraryElement library); | |
144 /** | |
145 * Return the element representing the setter that results from looking up the given setter in | |
146 * this class with respect to the given library, or {@code null} if the look u p fails. The | |
147 * behavior of this method is defined by the Dart Language Specification in se ction 12.16: | |
148 * <blockquote> The result of looking up getter (respectively setter) <i>m</i> in class <i>C</i> | |
149 * with respect to library <i>L</i> is: | |
150 * <ul> | |
151 * <li>If <i>C</i> declares an instance getter (respectively setter) named <i> m</i> that is | |
152 * accessible to <i>L</i>, then that getter (respectively setter) is the resul t of the lookup. | |
153 * Otherwise, if <i>C</i> has a superclass <i>S</i>, then the result of the lo okup is the result | |
154 * of looking up getter (respectively setter) <i>m</i> in <i>S</i> with respec t to <i>L</i>. | |
155 * Otherwise, we say that the lookup has failed.</li> | |
156 * </ul> | |
157 * </blockquote> | |
158 * @param setterName the name of the setter being looked up | |
159 * @param library the library with respect to which the lookup is being perfor med | |
160 * @return the result of looking up the given setter in this class with respec t to the given | |
161 * library | |
162 */ | |
163 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ); | |
84 } | 164 } |
85 /** | 165 /** |
86 * The interface {@code CompilationUnitElement} defines the behavior of elements representing a | 166 * The interface {@code CompilationUnitElement} defines the behavior of elements representing a |
87 * compilation unit. | 167 * compilation unit. |
88 */ | 168 */ |
89 abstract class CompilationUnitElement implements Element { | 169 abstract class CompilationUnitElement implements Element { |
90 /** | 170 /** |
91 * Return an array containing all of the top-level accessors (getters and sett ers) contained in | 171 * Return an array containing all of the top-level accessors (getters and sett ers) contained in |
92 * this compilation unit. | 172 * this compilation unit. |
93 * @return the top-level accessors contained in this compilation unit | 173 * @return the top-level accessors contained in this compilation unit |
94 */ | 174 */ |
95 List<PropertyAccessorElement> get accessors; | 175 List<PropertyAccessorElement> get accessors; |
96 /** | 176 /** |
97 * Return the library in which this compilation unit is defined. | 177 * Return the library in which this compilation unit is defined. |
98 * @return the library in which this compilation unit is defined | 178 * @return the library in which this compilation unit is defined |
99 */ | 179 */ |
100 LibraryElement get enclosingElement; | 180 LibraryElement get enclosingElement; |
101 /** | 181 /** |
102 * Return an array containing all of the fields contained in this compilation unit. | |
103 * @return the fields contained in this compilation unit | |
104 */ | |
105 List<FieldElement> get fields; | |
106 /** | |
107 * Return an array containing all of the top-level functions contained in this compilation unit. | 182 * Return an array containing all of the top-level functions contained in this compilation unit. |
108 * @return the top-level functions contained in this compilation unit | 183 * @return the top-level functions contained in this compilation unit |
109 */ | 184 */ |
110 List<FunctionElement> get functions; | 185 List<FunctionElement> get functions; |
111 /** | 186 /** |
112 * Return the source that corresponds to this compilation unit. | |
113 * @return the source that corresponds to this compilation unit | |
114 */ | |
115 Source get source; | |
116 /** | |
117 * Return an array containing all of the type aliases contained in this compil ation unit. | 187 * Return an array containing all of the type aliases contained in this compil ation unit. |
118 * @return the type aliases contained in this compilation unit | 188 * @return the type aliases contained in this compilation unit |
119 */ | 189 */ |
120 List<TypeAliasElement> get typeAliases; | 190 List<TypeAliasElement> get typeAliases; |
121 /** | 191 /** |
122 * Return an array containing all of the classes contained in this compilation unit. | 192 * Return an array containing all of the classes contained in this compilation unit. |
123 * @return the classes contained in this compilation unit | 193 * @return the classes contained in this compilation unit |
124 */ | 194 */ |
125 List<ClassElement> get types; | 195 List<ClassElement> get types; |
196 /** | |
197 * Return an array containing all of the variables contained in this compilati on unit. | |
198 * @return the variables contained in this compilation unit | |
199 */ | |
200 List<VariableElement> get variables; | |
126 } | 201 } |
127 /** | 202 /** |
128 * The interface {@code ConstructorElement} defines the behavior of elements rep resenting a | 203 * The interface {@code ConstructorElement} defines the behavior of elements rep resenting a |
129 * constructor or a factory method defined within a type. | 204 * constructor or a factory method defined within a type. |
130 */ | 205 */ |
131 abstract class ConstructorElement implements ExecutableElement { | 206 abstract class ConstructorElement implements ExecutableElement { |
132 /** | 207 /** |
133 * Return the type in which this constructor is defined. | 208 * Return the type in which this constructor is defined. |
134 * @return the type in which this constructor is defined | 209 * @return the type in which this constructor is defined |
135 */ | 210 */ |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
211 */ | 286 */ |
212 String get name; | 287 String get name; |
213 /** | 288 /** |
214 * Return the offset of the name of this element in the file that contains the declaration of this | 289 * Return the offset of the name of this element in the file that contains the declaration of this |
215 * element, or {@code -1} if this element is synthetic, does not have a name, or otherwise does | 290 * element, or {@code -1} if this element is synthetic, does not have a name, or otherwise does |
216 * not have an offset. | 291 * not have an offset. |
217 * @return the offset of the name of this element | 292 * @return the offset of the name of this element |
218 */ | 293 */ |
219 int get nameOffset; | 294 int get nameOffset; |
220 /** | 295 /** |
296 * Return the source that contains this element, or {@code null} if this eleme nt is not contained | |
297 * in a source. | |
298 * @return the source that contains this element | |
299 */ | |
300 Source get source; | |
301 /** | |
302 * Return {@code true} if this element, assuming that it is within scope, is a ccessible to code in | |
303 * the given library. This is defined by the Dart Language Specification in se ction 3.2: | |
304 * <blockquote> A declaration <i>m</i> is accessible to library <i>L</i> if <i >m</i> is declared | |
305 * in <i>L</i> or if <i>m</i> is public. </blockquote> | |
306 * @param library the library in which a possible reference to this element wo uld occur | |
307 * @return {@code true} if this element is accessible to code in the given lib rary | |
308 */ | |
309 bool isAccessibleIn(LibraryElement library); | |
310 /** | |
221 * Return {@code true} if this element is synthetic. A synthetic element is an element that is not | 311 * Return {@code true} if this element is synthetic. A synthetic element is an element that is not |
222 * represented in the source code explicitly, but is implied by the source cod e, such as the | 312 * represented in the source code explicitly, but is implied by the source cod e, such as the |
223 * default constructor for a class that does not explicitly define any constru ctors. | 313 * default constructor for a class that does not explicitly define any constru ctors. |
224 * @return {@code true} if this element is synthetic | 314 * @return {@code true} if this element is synthetic |
225 */ | 315 */ |
226 bool isSynthetic(); | 316 bool isSynthetic(); |
227 } | 317 } |
228 /** | 318 /** |
229 * The enumeration {@code ElementKind} defines the various kinds of elements in the element model. | 319 * The enumeration {@code ElementKind} defines the various kinds of elements in the element model. |
230 */ | 320 */ |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
355 /** | 445 /** |
356 * Return {@code true} if this field is a static field. | 446 * Return {@code true} if this field is a static field. |
357 * @return {@code true} if this field is a static field | 447 * @return {@code true} if this field is a static field |
358 */ | 448 */ |
359 bool isStatic(); | 449 bool isStatic(); |
360 } | 450 } |
361 /** | 451 /** |
362 * The interface {@code FunctionElement} defines the behavior of elements repres enting a function. | 452 * The interface {@code FunctionElement} defines the behavior of elements repres enting a function. |
363 */ | 453 */ |
364 abstract class FunctionElement implements ExecutableElement { | 454 abstract class FunctionElement implements ExecutableElement { |
455 /** | |
456 * Return a source range that covers the approximate portion of the source in which the name of | |
457 * this function is visible, or {@code null} if there is no single range of ch aracters within | |
458 * which the variable's name is visible. | |
459 * <ul> | |
460 * <li>For a local function, this includes everything from the beginning of th e function's body to | |
461 * the end of the block that encloses the function declaration.</li> | |
462 * <li>For top-level functions, {@code null} will be returned because they are potentially visible | |
463 * in multiple sources.</li> | |
464 * </ul> | |
465 * @return the range of characters in which the name of this function is visib le | |
466 */ | |
467 SourceRange get visibleRange; | |
365 } | 468 } |
366 /** | 469 /** |
367 * The interface {@code HideCombinator} defines the behavior of combinators that cause some of the | 470 * The interface {@code HideCombinator} defines the behavior of combinators that cause some of the |
368 * names in a namespace to be hidden when being imported. | 471 * names in a namespace to be hidden when being imported. |
369 */ | 472 */ |
370 abstract class HideCombinator implements NamespaceCombinator { | 473 abstract class HideCombinator implements NamespaceCombinator { |
371 /** | 474 /** |
372 * Return an array containing the names that are not to be made visible in the importing library | 475 * Return an array containing the names that are not to be made visible in the importing library |
373 * even if they are defined in the imported library. | 476 * even if they are defined in the imported library. |
374 * @return the names from the imported library that are hidden from the import ing library | 477 * @return the names from the imported library that are hidden from the import ing library |
375 */ | 478 */ |
376 List<String> get hiddenNames; | 479 List<String> get hiddenNames; |
377 } | 480 } |
378 /** | 481 /** |
379 * The interface {@code HtmlElement} defines the behavior of elements representi ng an HTML file. | 482 * The interface {@code HtmlElement} defines the behavior of elements representi ng an HTML file. |
380 */ | 483 */ |
381 abstract class HtmlElement implements Element { | 484 abstract class HtmlElement implements Element { |
382 /** | 485 /** |
383 * Return an array containing all of the libraries contained in or referenced from script tags in | 486 * Return an array containing all of the libraries contained in or referenced from script tags in |
384 * the HTML file. This includes libraries that are defined by the content of a script file as well | 487 * the HTML file. This includes libraries that are defined by the content of a script file as well |
385 * as libraries that are referenced in the {@core src} attribute of a script t ag. | 488 * as libraries that are referenced in the {@core src} attribute of a script t ag. |
386 * @return the libraries referenced from script tags in the HTML file | 489 * @return the libraries referenced from script tags in the HTML file |
387 */ | 490 */ |
388 List<LibraryElement> get libraries; | 491 List<LibraryElement> get libraries; |
389 /** | |
390 * Return the source that corresponds to this HTML file. | |
391 * @return the source that corresponds to this HTML file | |
392 */ | |
393 Source get source; | |
394 } | 492 } |
395 /** | 493 /** |
396 * The interface {@code ImportElement} defines the behavior of objects represent ing information | 494 * The interface {@code ImportElement} defines the behavior of objects represent ing information |
397 * about a single import directive within a library. | 495 * about a single import directive within a library. |
398 */ | 496 */ |
399 abstract class ImportElement implements Element { | 497 abstract class ImportElement implements Element { |
400 /** | 498 /** |
401 * An empty array of import elements. | 499 * An empty array of import elements. |
402 */ | 500 */ |
403 static List<ImportElement> EMPTY_ARRAY = new List<ImportElement>.fixedLength(0 ); | 501 static List<ImportElement> EMPTY_ARRAY = new List<ImportElement>.fixedLength(0 ); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
439 * @return the compilation unit that defines this library | 537 * @return the compilation unit that defines this library |
440 */ | 538 */ |
441 CompilationUnitElement get definingCompilationUnit; | 539 CompilationUnitElement get definingCompilationUnit; |
442 /** | 540 /** |
443 * Return the entry point for this library, or {@code null} if this library do es not have an entry | 541 * Return the entry point for this library, or {@code null} if this library do es not have an entry |
444 * point. The entry point is defined to be a zero argument top-level function whose name is{@code main}. | 542 * point. The entry point is defined to be a zero argument top-level function whose name is{@code main}. |
445 * @return the entry point for this library | 543 * @return the entry point for this library |
446 */ | 544 */ |
447 FunctionElement get entryPoint; | 545 FunctionElement get entryPoint; |
448 /** | 546 /** |
547 * Return an array containing all of the libraries that are exported from this library. | |
548 * @return an array containing all of the libraries that are exported from thi s library | |
549 */ | |
550 List<LibraryElement> get exportedLibraries; | |
551 /** | |
449 * Return an array containing all of the exports defined in this library. | 552 * Return an array containing all of the exports defined in this library. |
450 * @return the exports defined in this library | 553 * @return the exports defined in this library |
451 */ | 554 */ |
452 List<ExportElement> get exports; | 555 List<ExportElement> get exports; |
453 /** | 556 /** |
454 * Return an array containing all of the libraries that are imported into this library. This | 557 * Return an array containing all of the libraries that are imported into this library. This |
455 * includes all of the libraries that are imported using a prefix (also availa ble through the | 558 * includes all of the libraries that are imported using a prefix (also availa ble through the |
456 * prefixes returned by {@link #getPrefixes()}) and those that are imported wi thout a prefix. | 559 * prefixes returned by {@link #getPrefixes()}) and those that are imported wi thout a prefix. |
457 * @return an array containing all of the libraries that are imported into thi s library | 560 * @return an array containing all of the libraries that are imported into thi s library |
458 */ | 561 */ |
459 List<LibraryElement> get importedLibraries; | 562 List<LibraryElement> get importedLibraries; |
460 /** | 563 /** |
461 * Return an array containing all of the imports defined in this library. | 564 * Return an array containing all of the imports defined in this library. |
462 * @return the imports defined in this library | 565 * @return the imports defined in this library |
463 */ | 566 */ |
464 List<ImportElement> get imports; | 567 List<ImportElement> get imports; |
465 /** | 568 /** |
466 * Return an array containing all of the compilation units that are included i n this library using | 569 * Return an array containing all of the compilation units that are included i n this library using |
467 * a {@code part} directive. This does not include the defining compilation un it that contains the{@code part} directives. | 570 * a {@code part} directive. This does not include the defining compilation un it that contains the{@code part} directives. |
468 * @return the compilation units that are included in this library | 571 * @return the compilation units that are included in this library |
469 */ | 572 */ |
470 List<CompilationUnitElement> get parts; | 573 List<CompilationUnitElement> get parts; |
471 /** | 574 /** |
472 * Return an array containing elements for each of the prefixes used to {@code import} libraries | 575 * Return an array containing elements for each of the prefixes used to {@code import} libraries |
473 * into this library. Each prefix can be used in more than one {@code import} directive. | 576 * into this library. Each prefix can be used in more than one {@code import} directive. |
474 * @return the prefixes used to {@code import} libraries into this library | 577 * @return the prefixes used to {@code import} libraries into this library |
475 */ | 578 */ |
476 List<PrefixElement> get prefixes; | 579 List<PrefixElement> get prefixes; |
580 /** | |
581 * Answer {@code true} if this library is an application that can be run in th e browser. | |
582 * @return {@code true} if this library is an application that can be run in t he browser | |
583 */ | |
584 bool isBrowserApplication(); | |
477 } | 585 } |
478 /** | 586 /** |
479 * The interface {@code MethodElement} defines the behavior of elements that rep resent a method | 587 * The interface {@code MethodElement} defines the behavior of elements that rep resent a method |
480 * defined within a type. | 588 * defined within a type. |
481 */ | 589 */ |
482 abstract class MethodElement implements ExecutableElement { | 590 abstract class MethodElement implements ExecutableElement { |
483 /** | 591 /** |
484 * Return the type in which this method is defined. | 592 * Return the type in which this method is defined. |
485 * @return the type in which this method is defined | 593 * @return the type in which this method is defined |
486 */ | 594 */ |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
526 /** | 634 /** |
527 * The interface {@code ParameterElement} defines the behavior of elements repre senting a parameter | 635 * The interface {@code ParameterElement} defines the behavior of elements repre senting a parameter |
528 * defined within an executable element. | 636 * defined within an executable element. |
529 */ | 637 */ |
530 abstract class ParameterElement implements VariableElement { | 638 abstract class ParameterElement implements VariableElement { |
531 /** | 639 /** |
532 * Return the kind of this parameter. | 640 * Return the kind of this parameter. |
533 * @return the kind of this parameter | 641 * @return the kind of this parameter |
534 */ | 642 */ |
535 ParameterKind get parameterKind; | 643 ParameterKind get parameterKind; |
644 /** | |
645 * Return {@code true} if this parameter is an initializing formal parameter. | |
646 * @return {@code true} if this parameter is an initializing formal parameter | |
647 */ | |
648 bool isInitializingFormal(); | |
536 } | 649 } |
537 /** | 650 /** |
538 * The interface {@code PrefixElement} defines the behavior common to elements t hat represent a | 651 * The interface {@code PrefixElement} defines the behavior common to elements t hat represent a |
539 * prefix used to import one or more libraries into another library. | 652 * prefix used to import one or more libraries into another library. |
540 */ | 653 */ |
541 abstract class PrefixElement implements Element { | 654 abstract class PrefixElement implements Element { |
542 /** | 655 /** |
543 * Return the library into which other libraries are imported using this prefi x. | 656 * Return the library into which other libraries are imported using this prefi x. |
544 * @return the library into which other libraries are imported using this pref ix | 657 * @return the library into which other libraries are imported using this pref ix |
545 */ | 658 */ |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
657 * @return a synthetic function representing this variable's initializer | 770 * @return a synthetic function representing this variable's initializer |
658 */ | 771 */ |
659 FunctionElement get initializer; | 772 FunctionElement get initializer; |
660 /** | 773 /** |
661 * Return the declared type of this variable, or {@code null} if the variable did not have a | 774 * Return the declared type of this variable, or {@code null} if the variable did not have a |
662 * declared type (such as if it was declared using the keyword 'var'). | 775 * declared type (such as if it was declared using the keyword 'var'). |
663 * @return the declared type of this variable | 776 * @return the declared type of this variable |
664 */ | 777 */ |
665 Type2 get type; | 778 Type2 get type; |
666 /** | 779 /** |
780 * Return a source range that covers the approximate portion of the source in which the name of | |
781 * this variable is visible, or {@code null} if there is no single range of ch aracters within | |
782 * which the variable's name is visible. | |
783 * <ul> | |
784 * <li>For a local variable, this includes everything from the end of the vari able's initializer | |
785 * to the end of the block that encloses the variable declaration.</li> | |
786 * <li>For a parameter, this includes the body of the method or function that declares the | |
787 * parameter.</li> | |
788 * <li>For fields and top-level variables, {@code null} will be returned becau se they are | |
789 * potentially visible in multiple sources.</li> | |
790 * </ul> | |
791 * @return the range of characters in which the name of this variable is visib le | |
792 */ | |
793 SourceRange get visibleRange; | |
794 /** | |
667 * Return {@code true} if this variable is a const variable. Variables are con st if they have been | 795 * Return {@code true} if this variable is a const variable. Variables are con st if they have been |
668 * marked as being const using the {@code const} modifier. | 796 * marked as being const using the {@code const} modifier. |
669 * @return {@code true} if this variable is a const variable | 797 * @return {@code true} if this variable is a const variable |
670 */ | 798 */ |
671 bool isConst(); | 799 bool isConst(); |
672 /** | 800 /** |
673 * Return {@code true} if this variable is a final variable. Variables are fin al if they have been | 801 * Return {@code true} if this variable is a final variable. Variables are fin al if they have been |
674 * marked as being final using either the {@code final} or {@code const} modif iers. | 802 * marked as being final using either the {@code final} or {@code const} modif iers. |
675 * @return {@code true} if this variable is a final variable | 803 * @return {@code true} if this variable is a final variable |
676 */ | 804 */ |
(...skipping 13 matching lines...) Expand all Loading... | |
690 static List<AnnotationImpl> EMPTY_ARRAY = new List<AnnotationImpl>.fixedLength (0); | 818 static List<AnnotationImpl> EMPTY_ARRAY = new List<AnnotationImpl>.fixedLength (0); |
691 /** | 819 /** |
692 * Initialize a newly created annotation. | 820 * Initialize a newly created annotation. |
693 * @param element the element representing the field, variable, or constructor being used as an | 821 * @param element the element representing the field, variable, or constructor being used as an |
694 * annotation | 822 * annotation |
695 */ | 823 */ |
696 AnnotationImpl(Element element) { | 824 AnnotationImpl(Element element) { |
697 this._element = element; | 825 this._element = element; |
698 } | 826 } |
699 Element get element => _element; | 827 Element get element => _element; |
828 String toString() => "@${_element.toString()}"; | |
700 } | 829 } |
701 /** | 830 /** |
702 * Instances of the class {@code ClassElementImpl} implement a {@code ClassEleme nt}. | 831 * Instances of the class {@code ClassElementImpl} implement a {@code ClassEleme nt}. |
703 */ | 832 */ |
704 class ClassElementImpl extends ElementImpl implements ClassElement { | 833 class ClassElementImpl extends ElementImpl implements ClassElement { |
705 /** | 834 /** |
706 * An array containing all of the accessors (getters and setters) contained in this class. | 835 * An array containing all of the accessors (getters and setters) contained in this class. |
707 */ | 836 */ |
708 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A RRAY; | 837 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A RRAY; |
709 /** | 838 /** |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
743 * An empty array of type elements. | 872 * An empty array of type elements. |
744 */ | 873 */ |
745 static List<ClassElement> EMPTY_ARRAY = new List<ClassElement>.fixedLength(0); | 874 static List<ClassElement> EMPTY_ARRAY = new List<ClassElement>.fixedLength(0); |
746 /** | 875 /** |
747 * Initialize a newly created class element to have the given name. | 876 * Initialize a newly created class element to have the given name. |
748 * @param name the name of this element | 877 * @param name the name of this element |
749 */ | 878 */ |
750 ClassElementImpl(Identifier name) : super.con1(name) { | 879 ClassElementImpl(Identifier name) : super.con1(name) { |
751 } | 880 } |
752 List<PropertyAccessorElement> get accessors => _accessors; | 881 List<PropertyAccessorElement> get accessors => _accessors; |
753 ElementImpl getChild(String identifier) { | 882 List<InterfaceType> get allSupertypes { |
883 Collection<InterfaceType> list = new Set<InterfaceType>(); | |
884 collectAllSupertypes(list); | |
885 return new List.from(list); | |
886 } | |
887 ElementImpl getChild(String identifier19) { | |
754 for (PropertyAccessorElement accessor in _accessors) { | 888 for (PropertyAccessorElement accessor in _accessors) { |
755 if ((accessor as PropertyAccessorElementImpl).identifier == identifier) { | 889 if (((accessor as PropertyAccessorElementImpl)).identifier == identifier19 ) { |
756 return accessor as PropertyAccessorElementImpl; | 890 return (accessor as PropertyAccessorElementImpl); |
757 } | 891 } |
758 } | 892 } |
759 for (ConstructorElement constructor in _constructors) { | 893 for (ConstructorElement constructor in _constructors) { |
760 if ((constructor as ConstructorElementImpl).identifier == identifier) { | 894 if (((constructor as ConstructorElementImpl)).identifier == identifier19) { |
761 return constructor as ConstructorElementImpl; | 895 return (constructor as ConstructorElementImpl); |
762 } | 896 } |
763 } | 897 } |
764 for (FieldElement field in _fields) { | 898 for (FieldElement field in _fields) { |
765 if ((field as FieldElementImpl).identifier == identifier) { | 899 if (((field as FieldElementImpl)).identifier == identifier19) { |
766 return field as FieldElementImpl; | 900 return (field as FieldElementImpl); |
767 } | 901 } |
768 } | 902 } |
769 for (MethodElement method in _methods) { | 903 for (MethodElement method in _methods) { |
770 if ((method as MethodElementImpl).identifier == identifier) { | 904 if (((method as MethodElementImpl)).identifier == identifier19) { |
771 return method as MethodElementImpl; | 905 return (method as MethodElementImpl); |
772 } | 906 } |
773 } | 907 } |
774 for (TypeVariableElement typeVariable in _typeVariables) { | 908 for (TypeVariableElement typeVariable in _typeVariables) { |
775 if ((typeVariable as TypeVariableElementImpl).identifier == identifier) { | 909 if (((typeVariable as TypeVariableElementImpl)).identifier == identifier19 ) { |
danrubel
2013/02/13 20:28:51
extraneous parenthesis
| |
776 return typeVariable as TypeVariableElementImpl; | 910 return (typeVariable as TypeVariableElementImpl); |
777 } | 911 } |
778 } | 912 } |
779 return null; | 913 return null; |
780 } | 914 } |
781 List<ConstructorElement> get constructors => _constructors; | 915 List<ConstructorElement> get constructors => _constructors; |
782 List<FieldElement> get fields => _fields; | 916 List<FieldElement> get fields => _fields; |
783 List<InterfaceType> get interfaces => _interfaces; | 917 List<InterfaceType> get interfaces => _interfaces; |
784 ElementKind get kind => ElementKind.CLASS; | 918 ElementKind get kind => ElementKind.CLASS; |
785 List<MethodElement> get methods => _methods; | 919 List<MethodElement> get methods => _methods; |
786 List<InterfaceType> get mixins => _mixins; | 920 List<InterfaceType> get mixins => _mixins; |
921 ConstructorElement getNamedConstructor(String name21) { | |
922 for (ConstructorElement element in constructors) { | |
923 String elementName = element.name; | |
924 if (elementName != null && elementName == name21) { | |
925 return element; | |
926 } | |
927 } | |
928 return null; | |
929 } | |
787 InterfaceType get supertype => _supertype; | 930 InterfaceType get supertype => _supertype; |
788 InterfaceType get type => _type; | 931 InterfaceType get type => _type; |
789 List<TypeVariableElement> get typeVariables => _typeVariables; | 932 List<TypeVariableElement> get typeVariables => _typeVariables; |
933 ConstructorElement get unnamedConstructor { | |
934 for (ConstructorElement element in constructors) { | |
935 String name10 = element.name; | |
936 if (name10 == null || name10.isEmpty) { | |
937 return element; | |
938 } | |
939 } | |
940 return null; | |
941 } | |
790 bool isAbstract() => hasModifier(Modifier.ABSTRACT); | 942 bool isAbstract() => hasModifier(Modifier.ABSTRACT); |
943 PropertyAccessorElement lookUpGetter(String getterName, LibraryElement library ) { | |
944 PropertyAccessorElement element = getGetter(getterName); | |
945 if (element != null && element.isAccessibleIn(library)) { | |
946 return element; | |
947 } | |
948 for (InterfaceType mixin in _mixins) { | |
949 ClassElement mixinElement = mixin.element; | |
950 if (mixinElement != null) { | |
951 element = ((mixinElement as ClassElementImpl)).getGetter(getterName); | |
952 if (element != null && element.isAccessibleIn(library)) { | |
953 return element; | |
954 } | |
955 } | |
956 } | |
957 if (_supertype != null) { | |
958 ClassElement supertypeElement = _supertype.element; | |
959 if (supertypeElement != null) { | |
960 element = supertypeElement.lookUpGetter(getterName, library); | |
961 if (element != null && element.isAccessibleIn(library)) { | |
962 return element; | |
963 } | |
964 } | |
965 } | |
966 return null; | |
967 } | |
968 MethodElement lookUpMethod(String methodName, LibraryElement library) { | |
969 MethodElement element = getMethod(methodName); | |
970 if (element != null && element.isAccessibleIn(library)) { | |
971 return element; | |
972 } | |
973 for (InterfaceType mixin in _mixins) { | |
974 ClassElement mixinElement = mixin.element; | |
975 if (mixinElement != null) { | |
976 element = ((mixinElement as ClassElementImpl)).getMethod(methodName); | |
977 if (element != null && element.isAccessibleIn(library)) { | |
978 return element; | |
979 } | |
980 } | |
981 } | |
982 if (_supertype != null) { | |
983 ClassElement supertypeElement = _supertype.element; | |
984 if (supertypeElement != null) { | |
985 element = supertypeElement.lookUpMethod(methodName, library); | |
986 if (element != null && element.isAccessibleIn(library)) { | |
987 return element; | |
988 } | |
989 } | |
990 } | |
991 return null; | |
992 } | |
993 PropertyAccessorElement lookUpSetter(String setterName, LibraryElement library ) { | |
994 PropertyAccessorElement element = getSetter(setterName); | |
995 if (element != null && element.isAccessibleIn(library)) { | |
996 return element; | |
997 } | |
998 for (InterfaceType mixin in _mixins) { | |
999 ClassElement mixinElement = mixin.element; | |
1000 if (mixinElement != null) { | |
1001 element = ((mixinElement as ClassElementImpl)).getSetter(setterName); | |
1002 if (element != null && element.isAccessibleIn(library)) { | |
1003 return element; | |
1004 } | |
1005 } | |
1006 } | |
1007 if (_supertype != null) { | |
1008 ClassElement supertypeElement = _supertype.element; | |
1009 if (supertypeElement != null) { | |
1010 element = supertypeElement.lookUpSetter(setterName, library); | |
1011 if (element != null && element.isAccessibleIn(library)) { | |
1012 return element; | |
1013 } | |
1014 } | |
1015 } | |
1016 return null; | |
1017 } | |
791 /** | 1018 /** |
792 * Set whether this class is abstract to correspond to the given value. | 1019 * Set whether this class is abstract to correspond to the given value. |
793 * @param isAbstract {@code true} if the class is abstract | 1020 * @param isAbstract {@code true} if the class is abstract |
794 */ | 1021 */ |
795 void set abstract(bool isAbstract) { | 1022 void set abstract(bool isAbstract) { |
796 setModifier(Modifier.ABSTRACT, isAbstract); | 1023 setModifier(Modifier.ABSTRACT, isAbstract); |
797 } | 1024 } |
798 /** | 1025 /** |
799 * Set the accessors contained in this class to the given accessors. | 1026 * Set the accessors contained in this class to the given accessors. |
800 * @param accessors the accessors contained in this class | 1027 * @param accessors the accessors contained in this class |
801 */ | 1028 */ |
802 void set accessors2(List<PropertyAccessorElement> accessors) { | 1029 void set accessors(List<PropertyAccessorElement> accessors2) { |
803 for (PropertyAccessorElement accessor in accessors) { | 1030 for (PropertyAccessorElement accessor in accessors2) { |
804 (accessor as PropertyAccessorElementImpl).enclosingElement2 = this; | 1031 ((accessor as PropertyAccessorElementImpl)).enclosingElement = this; |
805 } | 1032 } |
806 this._accessors = accessors; | 1033 this._accessors = accessors2; |
807 } | 1034 } |
808 /** | 1035 /** |
809 * Set the constructors contained in this class to the given constructors. | 1036 * Set the constructors contained in this class to the given constructors. |
810 * @param constructors the constructors contained in this class | 1037 * @param constructors the constructors contained in this class |
811 */ | 1038 */ |
812 void set constructors2(List<ConstructorElement> constructors) { | 1039 void set constructors(List<ConstructorElement> constructors2) { |
813 for (ConstructorElement constructor in constructors) { | 1040 for (ConstructorElement constructor in constructors2) { |
814 (constructor as ConstructorElementImpl).enclosingElement2 = this; | 1041 ((constructor as ConstructorElementImpl)).enclosingElement = this; |
815 } | 1042 } |
816 this._constructors = constructors; | 1043 this._constructors = constructors2; |
817 } | 1044 } |
818 /** | 1045 /** |
819 * Set the fields contained in this class to the given fields. | 1046 * Set the fields contained in this class to the given fields. |
820 * @param fields the fields contained in this class | 1047 * @param fields the fields contained in this class |
821 */ | 1048 */ |
822 void set fields3(List<FieldElement> fields) { | 1049 void set fields(List<FieldElement> fields2) { |
823 for (FieldElement field in fields) { | 1050 for (FieldElement field in fields2) { |
824 (field as FieldElementImpl).enclosingElement2 = this; | 1051 ((field as FieldElementImpl)).enclosingElement = this; |
825 } | 1052 } |
826 this._fields = fields; | 1053 this._fields = fields2; |
827 } | 1054 } |
828 /** | 1055 /** |
829 * Set the interfaces that are implemented by this class to the given types. | 1056 * Set the interfaces that are implemented by this class to the given types. |
830 * @param the interfaces that are implemented by this class | 1057 * @param the interfaces that are implemented by this class |
831 */ | 1058 */ |
832 void set interfaces2(List<InterfaceType> interfaces) { | 1059 void set interfaces(List<InterfaceType> interfaces2) { |
833 this._interfaces = interfaces; | 1060 this._interfaces = interfaces2; |
834 } | 1061 } |
835 /** | 1062 /** |
836 * Set the methods contained in this class to the given methods. | 1063 * Set the methods contained in this class to the given methods. |
837 * @param methods the methods contained in this class | 1064 * @param methods the methods contained in this class |
838 */ | 1065 */ |
839 void set methods2(List<MethodElement> methods) { | 1066 void set methods(List<MethodElement> methods2) { |
840 for (MethodElement method in methods) { | 1067 for (MethodElement method in methods2) { |
841 (method as MethodElementImpl).enclosingElement2 = this; | 1068 ((method as MethodElementImpl)).enclosingElement = this; |
842 } | 1069 } |
843 this._methods = methods; | 1070 this._methods = methods2; |
844 } | 1071 } |
845 /** | 1072 /** |
846 * Set the mixins that are applied to the class being extended in order to der ive the superclass | 1073 * Set the mixins that are applied to the class being extended in order to der ive the superclass |
847 * of this class to the given types. | 1074 * of this class to the given types. |
848 * @param mixins the mixins that are applied to derive the superclass of this class | 1075 * @param mixins the mixins that are applied to derive the superclass of this class |
849 */ | 1076 */ |
850 void set mixins2(List<InterfaceType> mixins) { | 1077 void set mixins(List<InterfaceType> mixins2) { |
851 this._mixins = mixins; | 1078 this._mixins = mixins2; |
852 } | 1079 } |
853 /** | 1080 /** |
854 * Set the superclass of the class to the given type. | 1081 * Set the superclass of the class to the given type. |
855 * @param supertype the superclass of the class | 1082 * @param supertype the superclass of the class |
856 */ | 1083 */ |
857 void set supertype2(InterfaceType supertype) { | 1084 void set supertype(InterfaceType supertype2) { |
858 this._supertype = supertype; | 1085 this._supertype = supertype2; |
859 } | 1086 } |
860 /** | 1087 /** |
861 * Set the type defined by the class to the given type. | 1088 * Set the type defined by the class to the given type. |
862 * @param type the type defined by the class | 1089 * @param type the type defined by the class |
863 */ | 1090 */ |
864 void set type9(InterfaceType type) { | 1091 void set type(InterfaceType type4) { |
865 this._type = type; | 1092 this._type = type4; |
866 } | 1093 } |
867 /** | 1094 /** |
868 * Set the type variables defined for this class to the given type variables. | 1095 * Set the type variables defined for this class to the given type variables. |
869 * @param typeVariables the type variables defined for this class | 1096 * @param typeVariables the type variables defined for this class |
870 */ | 1097 */ |
871 void set typeVariables2(List<TypeVariableElement> typeVariables) { | 1098 void set typeVariables(List<TypeVariableElement> typeVariables2) { |
872 for (TypeVariableElement typeVariable in typeVariables) { | 1099 for (TypeVariableElement typeVariable in typeVariables2) { |
873 (typeVariable as TypeVariableElementImpl).enclosingElement2 = this; | 1100 ((typeVariable as TypeVariableElementImpl)).enclosingElement = this; |
874 } | 1101 } |
875 this._typeVariables = typeVariables; | 1102 this._typeVariables = typeVariables2; |
876 } | 1103 } |
877 String toString() { | 1104 void appendTo(StringBuffer builder) { |
878 String name15 = name; | 1105 String name11 = name; |
879 return name15 == null ? "<unnamed class>" : "class ${name15}"; | 1106 if (name11 == null) { |
1107 builder.add("{unnamed class}"); | |
1108 } else { | |
1109 builder.add(name11); | |
1110 } | |
1111 int variableCount = _typeVariables.length; | |
1112 if (variableCount > 0) { | |
1113 builder.add("<"); | |
1114 for (int i = 0; i < variableCount; i++) { | |
1115 if (i > 0) { | |
1116 builder.add(", "); | |
1117 } | |
1118 ((_typeVariables[i] as TypeVariableElementImpl)).appendTo(builder); | |
1119 } | |
1120 builder.add(">"); | |
1121 } | |
1122 } | |
1123 void collectAllSupertypes(Collection<InterfaceType> list) { | |
1124 if (_supertype == null || list.contains(_supertype)) { | |
1125 return; | |
1126 } | |
1127 list.add(_supertype); | |
1128 ((_supertype.element as ClassElementImpl)).collectAllSupertypes(list); | |
1129 for (InterfaceType type in interfaces) { | |
1130 if (!list.contains(type)) { | |
1131 list.add(type); | |
1132 ((type.element as ClassElementImpl)).collectAllSupertypes(list); | |
1133 } | |
1134 } | |
1135 for (InterfaceType type in mixins) { | |
1136 if (!list.contains(type)) { | |
1137 list.add(type); | |
1138 } | |
1139 } | |
1140 } | |
1141 /** | |
1142 * Return the element representing the getter with the given name that is decl ared in this class, | |
1143 * or {@code null} if this class does not declare a getter with the given name . | |
1144 * @param getterName the name of the getter to be returned | |
1145 * @return the getter declared in this class with the given name | |
1146 */ | |
1147 PropertyAccessorElement getGetter(String getterName) { | |
1148 for (PropertyAccessorElement accessor in _accessors) { | |
1149 if (accessor.isGetter() && accessor.name == getterName) { | |
1150 return accessor; | |
1151 } | |
1152 } | |
1153 return null; | |
1154 } | |
1155 /** | |
1156 * Return the element representing the method with the given name that is decl ared in this class, | |
1157 * or {@code null} if this class does not declare a method with the given name . | |
1158 * @param methodName the name of the method to be returned | |
1159 * @return the method declared in this class with the given name | |
1160 */ | |
1161 MethodElement getMethod(String methodName) { | |
1162 for (MethodElement method in _methods) { | |
1163 if (method.name == methodName) { | |
1164 return method; | |
1165 } | |
1166 } | |
1167 return null; | |
1168 } | |
1169 /** | |
1170 * Return the element representing the setter with the given name that is decl ared in this class, | |
1171 * or {@code null} if this class does not declare a setter with the given name . | |
1172 * @param setterName the name of the getter to be returned | |
1173 * @return the getter declared in this class with the given name | |
1174 */ | |
1175 PropertyAccessorElement getSetter(String setterName) { | |
1176 for (PropertyAccessorElement accessor in _accessors) { | |
1177 if (accessor.isSetter() && accessor.name == setterName) { | |
1178 return accessor; | |
1179 } | |
1180 } | |
1181 return null; | |
880 } | 1182 } |
881 } | 1183 } |
882 /** | 1184 /** |
883 * Instances of the class {@code CompilationUnitElementImpl} implement a{@link C ompilationUnitElement}. | 1185 * Instances of the class {@code CompilationUnitElementImpl} implement a{@link C ompilationUnitElement}. |
884 */ | 1186 */ |
885 class CompilationUnitElementImpl extends ElementImpl implements CompilationUnitE lement { | 1187 class CompilationUnitElementImpl extends ElementImpl implements CompilationUnitE lement { |
886 /** | 1188 /** |
887 * An array containing all of the top-level accessors (getters and setters) co ntained in this | 1189 * An array containing all of the top-level accessors (getters and setters) co ntained in this |
888 * compilation unit. | 1190 * compilation unit. |
889 */ | 1191 */ |
890 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A RRAY; | 1192 List<PropertyAccessorElement> _accessors = PropertyAccessorElementImpl.EMPTY_A RRAY; |
891 /** | 1193 /** |
892 * An array containing all of the fields contained in this compilation unit. | |
893 */ | |
894 List<FieldElement> _fields = FieldElementImpl.EMPTY_ARRAY; | |
895 /** | |
896 * An array containing all of the top-level functions contained in this compil ation unit. | 1194 * An array containing all of the top-level functions contained in this compil ation unit. |
897 */ | 1195 */ |
898 List<FunctionElement> _functions = FunctionElementImpl.EMPTY_ARRAY; | 1196 List<FunctionElement> _functions = FunctionElementImpl.EMPTY_ARRAY; |
899 /** | 1197 /** |
1198 * An array containing all of the variables contained in this compilation unit . | |
1199 */ | |
1200 List<VariableElement> _variables = VariableElementImpl.EMPTY_ARRAY; | |
1201 /** | |
900 * The source that corresponds to this compilation unit. | 1202 * The source that corresponds to this compilation unit. |
901 */ | 1203 */ |
902 Source _source; | 1204 Source _source; |
903 /** | 1205 /** |
904 * An array containing all of the type aliases contained in this compilation u nit. | 1206 * An array containing all of the type aliases contained in this compilation u nit. |
905 */ | 1207 */ |
906 List<TypeAliasElement> _typeAliases = TypeAliasElementImpl.EMPTY_ARRAY; | 1208 List<TypeAliasElement> _typeAliases = TypeAliasElementImpl.EMPTY_ARRAY; |
907 /** | 1209 /** |
908 * An array containing all of the types contained in this compilation unit. | 1210 * An array containing all of the types contained in this compilation unit. |
909 */ | 1211 */ |
910 List<ClassElement> _types = ClassElementImpl.EMPTY_ARRAY; | 1212 List<ClassElement> _types = ClassElementImpl.EMPTY_ARRAY; |
911 /** | 1213 /** |
912 * An empty array of compilation unit elements. | 1214 * An empty array of compilation unit elements. |
913 */ | 1215 */ |
914 static List<CompilationUnitElement> EMPTY_ARRAY = new List<CompilationUnitElem ent>.fixedLength(0); | 1216 static List<CompilationUnitElement> EMPTY_ARRAY = new List<CompilationUnitElem ent>.fixedLength(0); |
915 /** | 1217 /** |
916 * Initialize a newly created compilation unit element to have the given name. | 1218 * Initialize a newly created compilation unit element to have the given name. |
917 * @param name the name of this element | 1219 * @param name the name of this element |
918 */ | 1220 */ |
919 CompilationUnitElementImpl(String name) : super.con2(name, -1) { | 1221 CompilationUnitElementImpl(String name) : super.con2(name, -1) { |
920 } | 1222 } |
921 bool operator ==(Object object) => this.runtimeType == object.runtimeType && _ source == (object as CompilationUnitElementImpl).source; | 1223 bool operator ==(Object object) => identical(this.runtimeType, object.runtimeT ype) && _source == ((object as CompilationUnitElementImpl)).source; |
922 List<PropertyAccessorElement> get accessors => _accessors; | 1224 List<PropertyAccessorElement> get accessors => _accessors; |
923 ElementImpl getChild(String identifier) { | 1225 ElementImpl getChild(String identifier20) { |
924 for (PropertyAccessorElement accessor in _accessors) { | 1226 for (PropertyAccessorElement accessor in _accessors) { |
925 if ((accessor as PropertyAccessorElementImpl).identifier == identifier) { | 1227 if (((accessor as PropertyAccessorElementImpl)).identifier == identifier20 ) { |
926 return accessor as PropertyAccessorElementImpl; | 1228 return (accessor as PropertyAccessorElementImpl); |
927 } | 1229 } |
928 } | 1230 } |
929 for (FieldElement field in _fields) { | 1231 for (VariableElement variable in _variables) { |
930 if ((field as FieldElementImpl).identifier == identifier) { | 1232 if (((variable as VariableElementImpl)).identifier == identifier20) { |
931 return field as FieldElementImpl; | 1233 return (variable as VariableElementImpl); |
932 } | 1234 } |
933 } | 1235 } |
934 for (ExecutableElement function in _functions) { | 1236 for (ExecutableElement function in _functions) { |
935 if ((function as ExecutableElementImpl).identifier == identifier) { | 1237 if (((function as ExecutableElementImpl)).identifier == identifier20) { |
936 return function as ExecutableElementImpl; | 1238 return (function as ExecutableElementImpl); |
937 } | 1239 } |
938 } | 1240 } |
939 for (TypeAliasElement typeAlias in _typeAliases) { | 1241 for (TypeAliasElement typeAlias in _typeAliases) { |
940 if ((typeAlias as TypeAliasElementImpl).identifier == identifier) { | 1242 if (((typeAlias as TypeAliasElementImpl)).identifier == identifier20) { |
941 return typeAlias as TypeAliasElementImpl; | 1243 return (typeAlias as TypeAliasElementImpl); |
942 } | 1244 } |
943 } | 1245 } |
944 for (ClassElement type in _types) { | 1246 for (ClassElement type in _types) { |
945 if ((type as ClassElementImpl).identifier == identifier) { | 1247 if (((type as ClassElementImpl)).identifier == identifier20) { |
946 return type as ClassElementImpl; | 1248 return (type as ClassElementImpl); |
947 } | 1249 } |
948 } | 1250 } |
949 return null; | 1251 return null; |
950 } | 1252 } |
951 LibraryElement get enclosingElement => super.enclosingElement as LibraryElemen t; | 1253 LibraryElement get enclosingElement => (super.enclosingElement as LibraryEleme nt); |
952 List<FieldElement> get fields => _fields; | |
953 List<FunctionElement> get functions => _functions; | 1254 List<FunctionElement> get functions => _functions; |
954 String get identifier => source.fullName; | 1255 String get identifier => source.fullName; |
955 ElementKind get kind => ElementKind.COMPILATION_UNIT; | 1256 ElementKind get kind => ElementKind.COMPILATION_UNIT; |
956 Source get source => _source; | 1257 Source get source => _source; |
957 List<TypeAliasElement> get typeAliases => _typeAliases; | 1258 List<TypeAliasElement> get typeAliases => _typeAliases; |
958 List<ClassElement> get types => _types; | 1259 List<ClassElement> get types => _types; |
1260 List<VariableElement> get variables => _variables; | |
959 int get hashCode => _source.hashCode; | 1261 int get hashCode => _source.hashCode; |
960 /** | 1262 /** |
961 * Set the top-level accessors (getters and setters) contained in this compila tion unit to the | 1263 * Set the top-level accessors (getters and setters) contained in this compila tion unit to the |
962 * given accessors. | 1264 * given accessors. |
963 * @param the top-level accessors (getters and setters) contained in this comp ilation unit | 1265 * @param the top-level accessors (getters and setters) contained in this comp ilation unit |
964 */ | 1266 */ |
965 void set accessors3(List<PropertyAccessorElement> accessors) { | 1267 void set accessors(List<PropertyAccessorElement> accessors3) { |
966 for (PropertyAccessorElement accessor in accessors) { | 1268 for (PropertyAccessorElement accessor in accessors3) { |
967 (accessor as PropertyAccessorElementImpl).enclosingElement2 = this; | 1269 ((accessor as PropertyAccessorElementImpl)).enclosingElement = this; |
968 } | 1270 } |
969 this._accessors = accessors; | 1271 this._accessors = accessors3; |
970 } | |
971 /** | |
972 * Set the fields contained in this compilation unit to the given fields. | |
973 * @param fields the fields contained in this compilation unit | |
974 */ | |
975 void set fields4(List<FieldElement> fields) { | |
976 for (FieldElement field in fields) { | |
977 (field as FieldElementImpl).enclosingElement2 = this; | |
978 } | |
979 this._fields = fields; | |
980 } | 1272 } |
981 /** | 1273 /** |
982 * Set the top-level functions contained in this compilation unit to the given functions. | 1274 * Set the top-level functions contained in this compilation unit to the given functions. |
983 * @param functions the top-level functions contained in this compilation unit | 1275 * @param functions the top-level functions contained in this compilation unit |
984 */ | 1276 */ |
985 void set functions2(List<FunctionElement> functions) { | 1277 void set functions(List<FunctionElement> functions2) { |
986 for (FunctionElement function in functions) { | 1278 for (FunctionElement function in functions2) { |
987 (function as FunctionElementImpl).enclosingElement2 = this; | 1279 ((function as FunctionElementImpl)).enclosingElement = this; |
988 } | 1280 } |
989 this._functions = functions; | 1281 this._functions = functions2; |
990 } | 1282 } |
991 /** | 1283 /** |
992 * Set the source that corresponds to this compilation unit to the given sourc e. | 1284 * Set the source that corresponds to this compilation unit to the given sourc e. |
993 * @param source the source that corresponds to this compilation unit | 1285 * @param source the source that corresponds to this compilation unit |
994 */ | 1286 */ |
995 void set source3(Source source) { | 1287 void set source(Source source5) { |
996 this._source = source; | 1288 this._source = source5; |
997 } | 1289 } |
998 /** | 1290 /** |
999 * Set the type aliases contained in this compilation unit to the given type a liases. | 1291 * Set the type aliases contained in this compilation unit to the given type a liases. |
1000 * @param typeAliases the type aliases contained in this compilation unit | 1292 * @param typeAliases the type aliases contained in this compilation unit |
1001 */ | 1293 */ |
1002 void set typeAliases2(List<TypeAliasElement> typeAliases) { | 1294 void set typeAliases(List<TypeAliasElement> typeAliases2) { |
1003 for (TypeAliasElement typeAlias in typeAliases) { | 1295 for (TypeAliasElement typeAlias in typeAliases2) { |
1004 (typeAlias as TypeAliasElementImpl).enclosingElement2 = this; | 1296 ((typeAlias as TypeAliasElementImpl)).enclosingElement = this; |
1005 } | 1297 } |
1006 this._typeAliases = typeAliases; | 1298 this._typeAliases = typeAliases2; |
1007 } | 1299 } |
1008 /** | 1300 /** |
1009 * Set the types contained in this compilation unit to the given types. | 1301 * Set the types contained in this compilation unit to the given types. |
1010 * @param types types contained in this compilation unit | 1302 * @param types types contained in this compilation unit |
1011 */ | 1303 */ |
1012 void set types2(List<ClassElement> types) { | 1304 void set types(List<ClassElement> types2) { |
1013 for (ClassElement type in types) { | 1305 for (ClassElement type in types2) { |
1014 (type as ClassElementImpl).enclosingElement2 = this; | 1306 ((type as ClassElementImpl)).enclosingElement = this; |
1015 } | 1307 } |
1016 this._types = types; | 1308 this._types = types2; |
1309 } | |
1310 /** | |
1311 * Set the variables contained in this compilation unit to the given variables . | |
1312 * @param variables the variables contained in this compilation unit | |
1313 */ | |
1314 void set variables(List<VariableElement> variables2) { | |
1315 for (VariableElement field in variables2) { | |
1316 ((field as VariableElementImpl)).enclosingElement = this; | |
1317 } | |
1318 this._variables = variables2; | |
1319 } | |
1320 void appendTo(StringBuffer builder) { | |
1321 if (_source == null) { | |
1322 builder.add("{compilation unit}"); | |
1323 } else { | |
1324 builder.add(_source.fullName); | |
1325 } | |
1017 } | 1326 } |
1018 } | 1327 } |
1019 /** | 1328 /** |
1020 * Instances of the class {@code ConstructorElementImpl} implement a {@code Cons tructorElement}. | 1329 * Instances of the class {@code ConstructorElementImpl} implement a {@code Cons tructorElement}. |
1021 */ | 1330 */ |
1022 class ConstructorElementImpl extends ExecutableElementImpl implements Constructo rElement { | 1331 class ConstructorElementImpl extends ExecutableElementImpl implements Constructo rElement { |
1023 /** | 1332 /** |
1024 * An empty array of constructor elements. | 1333 * An empty array of constructor elements. |
1025 */ | 1334 */ |
1026 static List<ConstructorElement> EMPTY_ARRAY = new List<ConstructorElement>.fix edLength(0); | 1335 static List<ConstructorElement> EMPTY_ARRAY = new List<ConstructorElement>.fix edLength(0); |
1027 /** | 1336 /** |
1028 * Initialize a newly created constructor element to have the given name. | 1337 * Initialize a newly created constructor element to have the given name. |
1029 * @param name the name of this element | 1338 * @param name the name of this element |
1030 */ | 1339 */ |
1031 ConstructorElementImpl(Identifier name) : super.con1(name) { | 1340 ConstructorElementImpl(Identifier name) : super.con1(name) { |
1032 } | 1341 } |
1033 ClassElement get enclosingElement => super.enclosingElement as ClassElement; | 1342 ClassElement get enclosingElement => (super.enclosingElement as ClassElement); |
1034 ElementKind get kind => ElementKind.CONSTRUCTOR; | 1343 ElementKind get kind => ElementKind.CONSTRUCTOR; |
1035 bool isConst() => hasModifier(Modifier.CONST); | 1344 bool isConst() => hasModifier(Modifier.CONST); |
1036 bool isFactory() => hasModifier(Modifier.FACTORY); | 1345 bool isFactory() => hasModifier(Modifier.FACTORY); |
1037 /** | 1346 /** |
1038 * Set whether this constructor represents a factory method to the given value . | 1347 * Set whether this constructor represents a factory method to the given value . |
1039 * @param isFactory {@code true} if this constructor represents a factory meth od | 1348 * @param isFactory {@code true} if this constructor represents a factory meth od |
1040 */ | 1349 */ |
1041 void set factory(bool isFactory) { | 1350 void set factory(bool isFactory) { |
1042 setModifier(Modifier.FACTORY, isFactory); | 1351 setModifier(Modifier.FACTORY, isFactory); |
1043 } | 1352 } |
1353 void appendTo(StringBuffer builder) { | |
1354 builder.add(enclosingElement.name); | |
1355 String name12 = name; | |
1356 if (name12 != null && !name12.isEmpty) { | |
1357 builder.add("."); | |
1358 builder.add(name12); | |
1359 } | |
1360 super.appendTo(builder); | |
1361 } | |
1044 } | 1362 } |
1045 /** | 1363 /** |
1046 * Instances of the class {@code DynamicElementImpl} represent the synthetic ele ment representing | 1364 * Instances of the class {@code DynamicElementImpl} represent the synthetic ele ment representing |
1047 * the declaration of the type {@code dynamic}. | 1365 * the declaration of the type {@code dynamic}. |
1048 */ | 1366 */ |
1049 class DynamicElementImpl extends ElementImpl { | 1367 class DynamicElementImpl extends ElementImpl { |
1050 /** | 1368 /** |
1369 * Return the unique instance of this class. | |
1370 * @return the unique instance of this class | |
1371 */ | |
1372 static DynamicElementImpl get instance => (DynamicTypeImpl.instance.element as DynamicElementImpl); | |
1373 /** | |
1051 * The type defined by this element. | 1374 * The type defined by this element. |
1052 */ | 1375 */ |
1053 DynamicTypeImpl _type; | 1376 DynamicTypeImpl _type; |
1054 /** | 1377 /** |
1055 * Initialize a newly created instance of this class. Instances of this class should <b>not</b> be | 1378 * Initialize a newly created instance of this class. Instances of this class should <b>not</b> be |
1056 * created except as part of creating the type associated with this element. T he single instance | 1379 * created except as part of creating the type associated with this element. T he single instance |
1057 * of this class should be accessed through the single instance of the class{@ link DynamicTypeImpl}. | 1380 * of this class should be accessed through the method {@link #getInstance()}. |
1058 */ | 1381 */ |
1059 DynamicElementImpl() : super.con2(Keyword.DYNAMIC.syntax, -1) { | 1382 DynamicElementImpl() : super.con2(Keyword.DYNAMIC.syntax, -1) { |
1060 setModifier(Modifier.SYNTHETIC, true); | 1383 setModifier(Modifier.SYNTHETIC, true); |
1061 } | 1384 } |
1062 ElementKind get kind => ElementKind.DYNAMIC; | 1385 ElementKind get kind => ElementKind.DYNAMIC; |
1063 /** | 1386 /** |
1064 * Return the type defined by this element. | 1387 * Return the type defined by this element. |
1065 * @return the type defined by this element | 1388 * @return the type defined by this element |
1066 */ | 1389 */ |
1067 DynamicTypeImpl get type => _type; | 1390 DynamicTypeImpl get type => _type; |
1068 /** | 1391 /** |
1069 * Set the type defined by this element to the given type. | 1392 * Set the type defined by this element to the given type. |
1070 * @param type the type defined by this element | 1393 * @param type the type defined by this element |
1071 */ | 1394 */ |
1072 void set type10(DynamicTypeImpl type) { | 1395 void set type(DynamicTypeImpl type5) { |
1073 this._type = type; | 1396 this._type = type5; |
1074 } | 1397 } |
1075 } | 1398 } |
1076 /** | 1399 /** |
1077 * The abstract class {@code ElementImpl} implements the behavior common to obje cts that implement | 1400 * The abstract class {@code ElementImpl} implements the behavior common to obje cts that implement |
1078 * an {@link Element}. | 1401 * an {@link Element}. |
1079 */ | 1402 */ |
1080 abstract class ElementImpl implements Element { | 1403 abstract class ElementImpl implements Element { |
1081 /** | 1404 /** |
1082 * The enclosing element of this element, or {@code null} if this element is a t the root of the | 1405 * The enclosing element of this element, or {@code null} if this element is a t the root of the |
1083 * element structure. | 1406 * element structure. |
(...skipping 13 matching lines...) Expand all Loading... | |
1097 */ | 1420 */ |
1098 Set<Modifier> _modifiers; | 1421 Set<Modifier> _modifiers; |
1099 /** | 1422 /** |
1100 * An array containing all of the metadata associated with this element. | 1423 * An array containing all of the metadata associated with this element. |
1101 */ | 1424 */ |
1102 List<Annotation> _metadata = AnnotationImpl.EMPTY_ARRAY; | 1425 List<Annotation> _metadata = AnnotationImpl.EMPTY_ARRAY; |
1103 /** | 1426 /** |
1104 * Initialize a newly created element to have the given name. | 1427 * Initialize a newly created element to have the given name. |
1105 * @param name the name of this element | 1428 * @param name the name of this element |
1106 */ | 1429 */ |
1107 ElementImpl.con1(Identifier name) { | 1430 ElementImpl.con1(Identifier name22) { |
1108 _jtd_constructor_129_impl(name); | 1431 _jtd_constructor_135_impl(name22); |
1109 } | 1432 } |
1110 _jtd_constructor_129_impl(Identifier name) { | 1433 _jtd_constructor_135_impl(Identifier name22) { |
1111 _jtd_constructor_130_impl(name == null ? "" : name.name, name == null ? -1 : name.offset); | 1434 _jtd_constructor_136_impl(name22 == null ? "" : name22.name, name22 == null ? -1 : name22.offset); |
1112 } | 1435 } |
1113 /** | 1436 /** |
1114 * Initialize a newly created element to have the given name. | 1437 * Initialize a newly created element to have the given name. |
1115 * @param name the name of this element | 1438 * @param name the name of this element |
1116 * @param nameOffset the offset of the name of this element in the file that c ontains the | 1439 * @param nameOffset the offset of the name of this element in the file that c ontains the |
1117 * declaration of this element | 1440 * declaration of this element |
1118 */ | 1441 */ |
1119 ElementImpl.con2(String name, int nameOffset) { | 1442 ElementImpl.con2(String name8, int nameOffset2) { |
1120 _jtd_constructor_130_impl(name, nameOffset); | 1443 _jtd_constructor_136_impl(name8, nameOffset2); |
1121 } | 1444 } |
1122 _jtd_constructor_130_impl(String name, int nameOffset) { | 1445 _jtd_constructor_136_impl(String name8, int nameOffset2) { |
1123 this._name = name; | 1446 this._name = name8; |
1124 this._nameOffset = nameOffset; | 1447 this._nameOffset = nameOffset2; |
1125 this._modifiers = new Set(); | 1448 this._modifiers = new Set(); |
1126 } | 1449 } |
1127 bool operator ==(Object object) => object is Element && (object as Element).lo cation == location; | 1450 bool operator ==(Object object) => object is Element && ((object as Element)). location == location; |
1128 Element getAncestor(Type elementClass) { | 1451 Element getAncestor(Type elementClass) { |
1129 Element ancestor = _enclosingElement; | 1452 Element ancestor = _enclosingElement; |
1130 while (ancestor != null && !isInstanceOf(ancestor, elementClass)) { | 1453 while (ancestor != null && !isInstanceOf(ancestor, elementClass)) { |
1131 ancestor = ancestor.enclosingElement; | 1454 ancestor = ancestor.enclosingElement; |
1132 } | 1455 } |
1133 return ancestor as Element; | 1456 return (ancestor as Element); |
1134 } | 1457 } |
1135 /** | 1458 /** |
1136 * Return the child of this element that is uniquely identified by the given i dentifier, or{@code null} if there is no such child. | 1459 * Return the child of this element that is uniquely identified by the given i dentifier, or{@code null} if there is no such child. |
1137 * @param identifier the identifier used to select a child | 1460 * @param identifier the identifier used to select a child |
1138 * @return the child of this element with the given identifier | 1461 * @return the child of this element with the given identifier |
1139 */ | 1462 */ |
1140 ElementImpl getChild(String identifier) => null; | 1463 ElementImpl getChild(String identifier) => null; |
1141 AnalysisContext get context { | 1464 AnalysisContext get context { |
1142 if (_enclosingElement == null) { | 1465 if (_enclosingElement == null) { |
1143 return null; | 1466 return null; |
1144 } | 1467 } |
1145 return _enclosingElement.context; | 1468 return _enclosingElement.context; |
1146 } | 1469 } |
1147 Element get enclosingElement => _enclosingElement; | 1470 Element get enclosingElement => _enclosingElement; |
1148 LibraryElement get library => getAncestor(LibraryElement); | 1471 LibraryElement get library => getAncestor(LibraryElement); |
1149 ElementLocation get location => new ElementLocationImpl.con1(this); | 1472 ElementLocation get location => new ElementLocationImpl.con1(this); |
1150 List<Annotation> get metadata => _metadata; | 1473 List<Annotation> get metadata => _metadata; |
1151 String get name => _name; | 1474 String get name => _name; |
1152 int get nameOffset => _nameOffset; | 1475 int get nameOffset => _nameOffset; |
1476 Source get source { | |
1477 if (_enclosingElement == null) { | |
1478 return null; | |
1479 } | |
1480 return _enclosingElement.source; | |
1481 } | |
1153 int get hashCode => location.hashCode; | 1482 int get hashCode => location.hashCode; |
1483 bool isAccessibleIn(LibraryElement library18) { | |
1484 if (Identifier.isPrivateName(_name)) { | |
1485 return library18 == library; | |
1486 } | |
1487 return true; | |
1488 } | |
1154 bool isSynthetic() => hasModifier(Modifier.SYNTHETIC); | 1489 bool isSynthetic() => hasModifier(Modifier.SYNTHETIC); |
1155 /** | 1490 /** |
1156 * Set the metadata associate with this element to the given array of annotati ons. | 1491 * Set the metadata associate with this element to the given array of annotati ons. |
1157 * @param metadata the metadata to be associated with this element | 1492 * @param metadata the metadata to be associated with this element |
1158 */ | 1493 */ |
1159 void set metadata2(List<Annotation> metadata) { | 1494 void set metadata(List<Annotation> metadata2) { |
1160 this._metadata = metadata; | 1495 this._metadata = metadata2; |
1161 } | 1496 } |
1162 /** | 1497 /** |
1163 * Set whether this element is synthetic to correspond to the given value. | 1498 * Set whether this element is synthetic to correspond to the given value. |
1164 * @param isSynthetic {@code true} if the element is synthetic | 1499 * @param isSynthetic {@code true} if the element is synthetic |
1165 */ | 1500 */ |
1166 void set synthetic(bool isSynthetic) { | 1501 void set synthetic(bool isSynthetic) { |
1167 setModifier(Modifier.SYNTHETIC, isSynthetic); | 1502 setModifier(Modifier.SYNTHETIC, isSynthetic); |
1168 } | 1503 } |
1504 String toString() { | |
1505 StringBuffer builder = new StringBuffer(); | |
1506 appendTo(builder); | |
1507 return builder.toString(); | |
1508 } | |
1509 /** | |
1510 * Append a textual representation of this type to the given builder. | |
1511 * @param builder the builder to which the text is to be appended | |
1512 */ | |
1513 void appendTo(StringBuffer builder) { | |
1514 if (_name == null) { | |
1515 builder.add("<unnamed "); | |
1516 builder.add(runtimeType.toString()); | |
1517 builder.add(">"); | |
1518 } else { | |
1519 builder.add(_name); | |
1520 } | |
1521 } | |
1169 /** | 1522 /** |
1170 * Return an identifier that uniquely identifies this element among the childr en of this element's | 1523 * Return an identifier that uniquely identifies this element among the childr en of this element's |
1171 * parent. | 1524 * parent. |
1172 * @return an identifier that uniquely identifies this element relative to its parent | 1525 * @return an identifier that uniquely identifies this element relative to its parent |
1173 */ | 1526 */ |
1174 String get identifier => name; | 1527 String get identifier => name; |
1175 /** | 1528 /** |
1176 * Return {@code true} if this element has the given modifier associated with it. | 1529 * Return {@code true} if this element has the given modifier associated with it. |
1177 * @param modifier the modifier being tested for | 1530 * @param modifier the modifier being tested for |
1178 * @return {@code true} if this element has the given modifier associated with it | 1531 * @return {@code true} if this element has the given modifier associated with it |
1179 */ | 1532 */ |
1180 bool hasModifier(Modifier modifier) => _modifiers.contains(modifier); | 1533 bool hasModifier(Modifier modifier) => _modifiers.contains(modifier); |
1181 /** | 1534 /** |
1182 * Set the enclosing element of this element to the given element. | 1535 * Set the enclosing element of this element to the given element. |
1183 * @param element the enclosing element of this element | 1536 * @param element the enclosing element of this element |
1184 */ | 1537 */ |
1185 void set enclosingElement2(ElementImpl element) { | 1538 void set enclosingElement(ElementImpl element) { |
1186 _enclosingElement = element; | 1539 _enclosingElement = element; |
1187 } | 1540 } |
1188 /** | 1541 /** |
1189 * Set whether the given modifier is associated with this element to correspon d to the given | 1542 * Set whether the given modifier is associated with this element to correspon d to the given |
1190 * value. | 1543 * value. |
1191 * @param modifier the modifier to be set | 1544 * @param modifier the modifier to be set |
1192 * @param value {@code true} if the modifier is to be associated with this ele ment | 1545 * @param value {@code true} if the modifier is to be associated with this ele ment |
1193 */ | 1546 */ |
1194 void setModifier(Modifier modifier, bool value) { | 1547 void setModifier(Modifier modifier, bool value) { |
1195 if (value) { | 1548 if (value) { |
1196 _modifiers.add(modifier); | 1549 _modifiers.add(modifier); |
1197 } else { | 1550 } else { |
1198 _modifiers.remove(modifier); | 1551 _modifiers.remove(modifier); |
1199 } | 1552 } |
1200 } | 1553 } |
1201 } | 1554 } |
1202 /** | 1555 /** |
1203 * Instances of the class {@code ElementLocationImpl} implement an {@link Elemen tLocation}. | 1556 * Instances of the class {@code ElementLocationImpl} implement an {@link Elemen tLocation}. |
1204 */ | 1557 */ |
1205 class ElementLocationImpl implements ElementLocation { | 1558 class ElementLocationImpl implements ElementLocation { |
1206 /** | 1559 /** |
1207 * The path to the element whose location is represented by this object. | 1560 * The path to the element whose location is represented by this object. |
1208 */ | 1561 */ |
1209 List<String> _components; | 1562 List<String> _components; |
1210 /** | 1563 /** |
1211 * The character used to separate components in the encoded form. | 1564 * The character used to separate components in the encoded form. |
1212 */ | 1565 */ |
1213 static int _SEPARATOR_CHAR = 0x3b; | 1566 static int _SEPARATOR_CHAR = 0x3B; |
1214 /** | 1567 /** |
1215 * Initialize a newly created location to represent the given element. | 1568 * Initialize a newly created location to represent the given element. |
1216 * @param element the element whose location is being represented | 1569 * @param element the element whose location is being represented |
1217 */ | 1570 */ |
1218 ElementLocationImpl.con1(Element element) { | 1571 ElementLocationImpl.con1(Element element) { |
1219 _jtd_constructor_131_impl(element); | 1572 _jtd_constructor_137_impl(element); |
1220 } | 1573 } |
1221 _jtd_constructor_131_impl(Element element) { | 1574 _jtd_constructor_137_impl(Element element) { |
1222 List<String> components = new List<String>(); | 1575 List<String> components = new List<String>(); |
1223 Element ancestor = element; | 1576 Element ancestor = element; |
1224 while (ancestor != null) { | 1577 while (ancestor != null) { |
1225 components.insertRange(0, 1, (ancestor as ElementImpl).identifier); | 1578 components.insertRange(0, 1, ((ancestor as ElementImpl)).identifier); |
1226 ancestor = ancestor.enclosingElement; | 1579 ancestor = ancestor.enclosingElement; |
1227 } | 1580 } |
1228 this._components = new List.from(components); | 1581 this._components = new List.from(components); |
1229 } | 1582 } |
1230 /** | 1583 /** |
1231 * Initialize a newly created location from the given encoded form. | 1584 * Initialize a newly created location from the given encoded form. |
1232 * @param encoding the encoded form of a location | 1585 * @param encoding the encoded form of a location |
1233 */ | 1586 */ |
1234 ElementLocationImpl.con2(String encoding) { | 1587 ElementLocationImpl.con2(String encoding) { |
1235 _jtd_constructor_132_impl(encoding); | 1588 _jtd_constructor_138_impl(encoding); |
1236 } | 1589 } |
1237 _jtd_constructor_132_impl(String encoding) { | 1590 _jtd_constructor_138_impl(String encoding) { |
1238 this._components = decode(encoding); | 1591 this._components = decode(encoding); |
1239 } | 1592 } |
1240 bool operator ==(Object object) { | 1593 bool operator ==(Object object) { |
1241 if (object is! ElementLocationImpl) { | 1594 if (object is! ElementLocationImpl) { |
1242 return false; | 1595 return false; |
1243 } | 1596 } |
1244 ElementLocationImpl location = object as ElementLocationImpl; | 1597 ElementLocationImpl location = (object as ElementLocationImpl); |
1245 return JavaArrays.equals(_components, location._components); | 1598 return JavaArrays.equals(_components, location._components); |
1246 } | 1599 } |
1247 /** | 1600 /** |
1248 * Return the path to the element whose location is represented by this object . | 1601 * Return the path to the element whose location is represented by this object . |
1249 * @return the path to the element whose location is represented by this objec t | 1602 * @return the path to the element whose location is represented by this objec t |
1250 */ | 1603 */ |
1251 List<String> get components => _components; | 1604 List<String> get components => _components; |
1252 String get encoding { | 1605 String get encoding { |
1253 StringBuffer builder = new StringBuffer(); | 1606 StringBuffer builder = new StringBuffer(); |
1254 int length2 = _components.length; | 1607 int length2 = _components.length; |
1255 for (int i = 0; i < length2; i++) { | 1608 for (int i = 0; i < length2; i++) { |
1256 if (i > 0) { | 1609 if (i > 0) { |
1257 builder.addCharCode(ElementLocationImpl._SEPARATOR_CHAR); | 1610 builder.addCharCode(_SEPARATOR_CHAR); |
1258 } | 1611 } |
1259 encode(builder, _components[i]); | 1612 encode(builder, _components[i]); |
1260 } | 1613 } |
1261 return builder.toString(); | 1614 return builder.toString(); |
1262 } | 1615 } |
1263 int get hashCode => JavaArrays.makeHashCode(_components); | 1616 int get hashCode => JavaArrays.makeHashCode(_components); |
1617 String toString() => encoding; | |
1264 /** | 1618 /** |
1265 * Decode the encoded form of a location into an array of components. | 1619 * Decode the encoded form of a location into an array of components. |
1266 * @param encoding the encoded form of a location | 1620 * @param encoding the encoded form of a location |
1267 * @return the components that were encoded | 1621 * @return the components that were encoded |
1268 */ | 1622 */ |
1269 List<String> decode(String encoding) { | 1623 List<String> decode(String encoding) { |
1270 List<String> components = new List<String>(); | 1624 List<String> components = new List<String>(); |
1271 StringBuffer builder = new StringBuffer(); | 1625 StringBuffer builder = new StringBuffer(); |
1272 int index = 0; | 1626 int index = 0; |
1273 int length3 = encoding.length; | 1627 int length3 = encoding.length; |
1274 while (index < length3) { | 1628 while (index < length3) { |
1275 int currentChar = encoding.charCodeAt(index); | 1629 int currentChar = encoding.codeUnitAt(index); |
1276 if (currentChar == ElementLocationImpl._SEPARATOR_CHAR) { | 1630 if (currentChar == _SEPARATOR_CHAR) { |
1277 if (index + 1 < length3 && encoding.charCodeAt(index + 1) == ElementLoca tionImpl._SEPARATOR_CHAR) { | 1631 if (index + 1 < length3 && encoding.codeUnitAt(index + 1) == _SEPARATOR_ CHAR) { |
1278 builder.addCharCode(ElementLocationImpl._SEPARATOR_CHAR); | 1632 builder.addCharCode(_SEPARATOR_CHAR); |
1279 index += 2; | 1633 index += 2; |
1280 } else { | 1634 } else { |
1281 components.add(builder.toString()); | 1635 components.add(builder.toString()); |
1282 builder.clear(); | 1636 builder.clear(); |
1283 index++; | 1637 index++; |
1284 } | 1638 } |
1285 } else { | 1639 } else { |
1286 builder.addCharCode(currentChar); | 1640 builder.addCharCode(currentChar); |
1287 index++; | 1641 index++; |
1288 } | 1642 } |
1289 } | 1643 } |
1290 if (builder.length > 0) { | 1644 if (builder.length > 0) { |
1291 components.add(builder.toString()); | 1645 components.add(builder.toString()); |
1292 } | 1646 } |
1293 return new List.from(components); | 1647 return new List.from(components); |
1294 } | 1648 } |
1295 /** | 1649 /** |
1296 * Append an encoded form of the given component to the given builder. | 1650 * Append an encoded form of the given component to the given builder. |
1297 * @param builder the builder to which the encoded component is to be appended | 1651 * @param builder the builder to which the encoded component is to be appended |
1298 * @param component the component to be appended to the builder | 1652 * @param component the component to be appended to the builder |
1299 */ | 1653 */ |
1300 void encode(StringBuffer builder, String component) { | 1654 void encode(StringBuffer builder, String component) { |
1301 int length4 = component.length; | 1655 int length4 = component.length; |
1302 for (int i = 0; i < length4; i++) { | 1656 for (int i = 0; i < length4; i++) { |
1303 int currentChar = component.charCodeAt(i); | 1657 int currentChar = component.codeUnitAt(i); |
1304 if (currentChar == ElementLocationImpl._SEPARATOR_CHAR) { | 1658 if (currentChar == _SEPARATOR_CHAR) { |
1305 builder.addCharCode(ElementLocationImpl._SEPARATOR_CHAR); | 1659 builder.addCharCode(_SEPARATOR_CHAR); |
1306 } | 1660 } |
1307 builder.addCharCode(currentChar); | 1661 builder.addCharCode(currentChar); |
1308 } | 1662 } |
1309 } | 1663 } |
1310 } | 1664 } |
1311 /** | 1665 /** |
1312 * The abstract class {@code ExecutableElementImpl} implements the behavior comm on to{@code ExecutableElement}s. | 1666 * The abstract class {@code ExecutableElementImpl} implements the behavior comm on to{@code ExecutableElement}s. |
1313 */ | 1667 */ |
1314 abstract class ExecutableElementImpl extends ElementImpl implements ExecutableEl ement { | 1668 abstract class ExecutableElementImpl extends ElementImpl implements ExecutableEl ement { |
1315 /** | 1669 /** |
(...skipping 18 matching lines...) Expand all Loading... | |
1334 FunctionType _type; | 1688 FunctionType _type; |
1335 /** | 1689 /** |
1336 * An empty array of executable elements. | 1690 * An empty array of executable elements. |
1337 */ | 1691 */ |
1338 static List<ExecutableElement> EMPTY_ARRAY = new List<ExecutableElement>.fixed Length(0); | 1692 static List<ExecutableElement> EMPTY_ARRAY = new List<ExecutableElement>.fixed Length(0); |
1339 /** | 1693 /** |
1340 * Initialize a newly created executable element to have the given name. | 1694 * Initialize a newly created executable element to have the given name. |
1341 * @param name the name of this element | 1695 * @param name the name of this element |
1342 */ | 1696 */ |
1343 ExecutableElementImpl.con1(Identifier name) : super.con1(name) { | 1697 ExecutableElementImpl.con1(Identifier name) : super.con1(name) { |
1344 _jtd_constructor_133_impl(name); | 1698 _jtd_constructor_139_impl(name); |
1345 } | 1699 } |
1346 _jtd_constructor_133_impl(Identifier name) { | 1700 _jtd_constructor_139_impl(Identifier name) { |
1347 } | 1701 } |
1348 /** | 1702 /** |
1349 * Initialize a newly created executable element to have the given name. | 1703 * Initialize a newly created executable element to have the given name. |
1350 * @param name the name of this element | 1704 * @param name the name of this element |
1351 * @param nameOffset the offset of the name of this element in the file that c ontains the | 1705 * @param nameOffset the offset of the name of this element in the file that c ontains the |
1352 * declaration of this element | 1706 * declaration of this element |
1353 */ | 1707 */ |
1354 ExecutableElementImpl.con2(String name, int nameOffset) : super.con2(name, nam eOffset) { | 1708 ExecutableElementImpl.con2(String name, int nameOffset) : super.con2(name, nam eOffset) { |
1355 _jtd_constructor_134_impl(name, nameOffset); | 1709 _jtd_constructor_140_impl(name, nameOffset); |
1356 } | 1710 } |
1357 _jtd_constructor_134_impl(String name, int nameOffset) { | 1711 _jtd_constructor_140_impl(String name, int nameOffset) { |
1358 } | 1712 } |
1359 ElementImpl getChild(String identifier) { | 1713 ElementImpl getChild(String identifier21) { |
1360 for (ExecutableElement function in _functions) { | 1714 for (ExecutableElement function in _functions) { |
1361 if ((function as ExecutableElementImpl).identifier == identifier) { | 1715 if (((function as ExecutableElementImpl)).identifier == identifier21) { |
1362 return function as ExecutableElementImpl; | 1716 return (function as ExecutableElementImpl); |
1363 } | 1717 } |
1364 } | 1718 } |
1365 for (LabelElement label in _labels) { | 1719 for (LabelElement label in _labels) { |
1366 if ((label as LabelElementImpl).identifier == identifier) { | 1720 if (((label as LabelElementImpl)).identifier == identifier21) { |
1367 return label as LabelElementImpl; | 1721 return (label as LabelElementImpl); |
1368 } | 1722 } |
1369 } | 1723 } |
1370 for (VariableElement variable in _localVariables) { | 1724 for (VariableElement variable in _localVariables) { |
1371 if ((variable as VariableElementImpl).identifier == identifier) { | 1725 if (((variable as VariableElementImpl)).identifier == identifier21) { |
1372 return variable as VariableElementImpl; | 1726 return (variable as VariableElementImpl); |
1373 } | 1727 } |
1374 } | 1728 } |
1375 for (ParameterElement parameter in _parameters) { | 1729 for (ParameterElement parameter in _parameters) { |
1376 if ((parameter as ParameterElementImpl).identifier == identifier) { | 1730 if (((parameter as ParameterElementImpl)).identifier == identifier21) { |
1377 return parameter as ParameterElementImpl; | 1731 return (parameter as ParameterElementImpl); |
1378 } | 1732 } |
1379 } | 1733 } |
1380 return null; | 1734 return null; |
1381 } | 1735 } |
1382 List<ExecutableElement> get functions => _functions; | 1736 List<ExecutableElement> get functions => _functions; |
1383 List<LabelElement> get labels => _labels; | 1737 List<LabelElement> get labels => _labels; |
1384 List<VariableElement> get localVariables => _localVariables; | 1738 List<VariableElement> get localVariables => _localVariables; |
1385 List<ParameterElement> get parameters => _parameters; | 1739 List<ParameterElement> get parameters => _parameters; |
1386 FunctionType get type => _type; | 1740 FunctionType get type => _type; |
1387 /** | 1741 /** |
1388 * Set the functions defined within this executable element to the given funct ions. | 1742 * Set the functions defined within this executable element to the given funct ions. |
1389 * @param functions the functions defined within this executable element | 1743 * @param functions the functions defined within this executable element |
1390 */ | 1744 */ |
1391 void set functions3(List<ExecutableElement> functions) { | 1745 void set functions(List<ExecutableElement> functions3) { |
1392 for (ExecutableElement function in functions) { | 1746 for (ExecutableElement function in functions3) { |
1393 (function as ExecutableElementImpl).enclosingElement2 = this; | 1747 ((function as ExecutableElementImpl)).enclosingElement = this; |
1394 } | 1748 } |
1395 this._functions = functions; | 1749 this._functions = functions3; |
1396 } | 1750 } |
1397 /** | 1751 /** |
1398 * Set the labels defined within this executable element to the given labels. | 1752 * Set the labels defined within this executable element to the given labels. |
1399 * @param labels the labels defined within this executable element | 1753 * @param labels the labels defined within this executable element |
1400 */ | 1754 */ |
1401 void set labels2(List<LabelElement> labels) { | 1755 void set labels(List<LabelElement> labels2) { |
1402 for (LabelElement label in labels) { | 1756 for (LabelElement label in labels2) { |
1403 (label as LabelElementImpl).enclosingElement2 = this; | 1757 ((label as LabelElementImpl)).enclosingElement = this; |
1404 } | 1758 } |
1405 this._labels = labels; | 1759 this._labels = labels2; |
1406 } | 1760 } |
1407 /** | 1761 /** |
1408 * Set the local variables defined within this executable element to the given variables. | 1762 * Set the local variables defined within this executable element to the given variables. |
1409 * @param localVariables the local variables defined within this executable el ement | 1763 * @param localVariables the local variables defined within this executable el ement |
1410 */ | 1764 */ |
1411 void set localVariables2(List<VariableElement> localVariables) { | 1765 void set localVariables(List<VariableElement> localVariables2) { |
1412 for (VariableElement variable in localVariables) { | 1766 for (VariableElement variable in localVariables2) { |
1413 (variable as VariableElementImpl).enclosingElement2 = this; | 1767 ((variable as VariableElementImpl)).enclosingElement = this; |
1414 } | 1768 } |
1415 this._localVariables = localVariables; | 1769 this._localVariables = localVariables2; |
1416 } | 1770 } |
1417 /** | 1771 /** |
1418 * Set the parameters defined by this executable element to the given paramete rs. | 1772 * Set the parameters defined by this executable element to the given paramete rs. |
1419 * @param parameters the parameters defined by this executable element | 1773 * @param parameters the parameters defined by this executable element |
1420 */ | 1774 */ |
1421 void set parameters7(List<ParameterElement> parameters) { | 1775 void set parameters(List<ParameterElement> parameters7) { |
1422 for (ParameterElement parameter in parameters) { | 1776 for (ParameterElement parameter in parameters7) { |
1423 (parameter as ParameterElementImpl).enclosingElement2 = this; | 1777 ((parameter as ParameterElementImpl)).enclosingElement = this; |
1424 } | 1778 } |
1425 this._parameters = parameters; | 1779 this._parameters = parameters7; |
1426 } | 1780 } |
1427 /** | 1781 /** |
1428 * Set the type of function defined by this executable element to the given ty pe. | 1782 * Set the type of function defined by this executable element to the given ty pe. |
1429 * @param type the type of function defined by this executable element | 1783 * @param type the type of function defined by this executable element |
1430 */ | 1784 */ |
1431 void set type11(FunctionType type) { | 1785 void set type(FunctionType type6) { |
1432 this._type = type; | 1786 this._type = type6; |
1787 } | |
1788 void appendTo(StringBuffer builder) { | |
1789 builder.add("("); | |
1790 int parameterCount = _parameters.length; | |
1791 for (int i = 0; i < parameterCount; i++) { | |
1792 if (i > 0) { | |
1793 builder.add(", "); | |
1794 } | |
1795 ((_parameters[i] as ParameterElementImpl)).appendTo(builder); | |
1796 } | |
1797 builder.add(")"); | |
1798 if (_type != null) { | |
1799 builder.add(" -> "); | |
1800 builder.add(_type.returnType); | |
1801 } | |
1433 } | 1802 } |
1434 } | 1803 } |
1435 /** | 1804 /** |
1436 * Instances of the class {@code ExportElementImpl} implement an {@link ExportEl ement}. | 1805 * Instances of the class {@code ExportElementImpl} implement an {@link ExportEl ement}. |
1437 */ | 1806 */ |
1438 class ExportElementImpl extends ElementImpl implements ExportElement { | 1807 class ExportElementImpl extends ElementImpl implements ExportElement { |
1439 /** | 1808 /** |
1440 * The library that is exported from this library by this export directive. | 1809 * The library that is exported from this library by this export directive. |
1441 */ | 1810 */ |
1442 LibraryElement _exportedLibrary; | 1811 LibraryElement _exportedLibrary; |
1443 /** | 1812 /** |
1444 * The combinators that were specified as part of the export directive in the order in which they | 1813 * The combinators that were specified as part of the export directive in the order in which they |
1445 * were specified. | 1814 * were specified. |
1446 */ | 1815 */ |
1447 List<NamespaceCombinator> _combinators = NamespaceCombinator.EMPTY_ARRAY; | 1816 List<NamespaceCombinator> _combinators = NamespaceCombinator.EMPTY_ARRAY; |
1448 /** | 1817 /** |
1449 * Initialize a newly created export element. | 1818 * Initialize a newly created export element. |
1450 */ | 1819 */ |
1451 ExportElementImpl() : super.con1(null) { | 1820 ExportElementImpl() : super.con1(null) { |
1452 } | 1821 } |
1453 List<NamespaceCombinator> get combinators => _combinators; | 1822 List<NamespaceCombinator> get combinators => _combinators; |
1454 LibraryElement get exportedLibrary => _exportedLibrary; | 1823 LibraryElement get exportedLibrary => _exportedLibrary; |
1455 ElementKind get kind => ElementKind.EXPORT; | 1824 ElementKind get kind => ElementKind.EXPORT; |
1456 /** | 1825 /** |
1457 * Set the combinators that were specified as part of the export directive to the given array of | 1826 * Set the combinators that were specified as part of the export directive to the given array of |
1458 * combinators. | 1827 * combinators. |
1459 * @param combinators the combinators that were specified as part of the expor t directive | 1828 * @param combinators the combinators that were specified as part of the expor t directive |
1460 */ | 1829 */ |
1461 void set combinators2(List<NamespaceCombinator> combinators) { | 1830 void set combinators(List<NamespaceCombinator> combinators2) { |
1462 this._combinators = combinators; | 1831 this._combinators = combinators2; |
1463 } | 1832 } |
1464 /** | 1833 /** |
1465 * Set the library that is exported from this library by this import directive to the given | 1834 * Set the library that is exported from this library by this import directive to the given |
1466 * library. | 1835 * library. |
1467 * @param exportedLibrary the library that is exported from this library | 1836 * @param exportedLibrary the library that is exported from this library |
1468 */ | 1837 */ |
1469 void set exportedLibrary2(LibraryElement exportedLibrary) { | 1838 void set exportedLibrary(LibraryElement exportedLibrary2) { |
1470 this._exportedLibrary = exportedLibrary; | 1839 this._exportedLibrary = exportedLibrary2; |
1840 } | |
1841 void appendTo(StringBuffer builder) { | |
1842 builder.add("export "); | |
1843 ((_exportedLibrary as LibraryElementImpl)).appendTo(builder); | |
1471 } | 1844 } |
1472 } | 1845 } |
1473 /** | 1846 /** |
1474 * Instances of the class {@code FieldElementImpl} implement a {@code FieldEleme nt}. | 1847 * Instances of the class {@code FieldElementImpl} implement a {@code FieldEleme nt}. |
1475 */ | 1848 */ |
1476 class FieldElementImpl extends VariableElementImpl implements FieldElement { | 1849 class FieldElementImpl extends VariableElementImpl implements FieldElement { |
1477 /** | 1850 /** |
1478 * The getter associated with this field. | 1851 * The getter associated with this field. |
1479 */ | 1852 */ |
1480 PropertyAccessorElement _getter; | 1853 PropertyAccessorElement _getter; |
1481 /** | 1854 /** |
1482 * The setter associated with this field, or {@code null} if the field is effe ctively{@code final} and therefore does not have a setter associated with it. | 1855 * The setter associated with this field, or {@code null} if the field is effe ctively{@code final} and therefore does not have a setter associated with it. |
1483 */ | 1856 */ |
1484 PropertyAccessorElement _setter; | 1857 PropertyAccessorElement _setter; |
1485 /** | 1858 /** |
1486 * An empty array of field elements. | 1859 * An empty array of field elements. |
1487 */ | 1860 */ |
1488 static List<FieldElement> EMPTY_ARRAY = new List<FieldElement>.fixedLength(0); | 1861 static List<FieldElement> EMPTY_ARRAY = new List<FieldElement>.fixedLength(0); |
1489 /** | 1862 /** |
1490 * Initialize a newly created field element to have the given name. | 1863 * Initialize a newly created field element to have the given name. |
1491 * @param name the name of this element | 1864 * @param name the name of this element |
1492 */ | 1865 */ |
1493 FieldElementImpl.con1(Identifier name) : super.con1(name) { | 1866 FieldElementImpl.con1(Identifier name) : super.con1(name) { |
1494 _jtd_constructor_136_impl(name); | 1867 _jtd_constructor_142_impl(name); |
1495 } | 1868 } |
1496 _jtd_constructor_136_impl(Identifier name) { | 1869 _jtd_constructor_142_impl(Identifier name) { |
1497 } | 1870 } |
1498 /** | 1871 /** |
1499 * Initialize a newly created synthetic field element to have the given name. | 1872 * Initialize a newly created synthetic field element to have the given name. |
1500 * @param name the name of this element | 1873 * @param name the name of this element |
1501 */ | 1874 */ |
1502 FieldElementImpl.con2(String name) : super.con2(name, -1) { | 1875 FieldElementImpl.con2(String name) : super.con2(name, -1) { |
1503 _jtd_constructor_137_impl(name); | 1876 _jtd_constructor_143_impl(name); |
1504 } | 1877 } |
1505 _jtd_constructor_137_impl(String name) { | 1878 _jtd_constructor_143_impl(String name) { |
1506 synthetic = true; | 1879 synthetic = true; |
1507 } | 1880 } |
1508 PropertyAccessorElement get getter => _getter; | 1881 PropertyAccessorElement get getter => _getter; |
1509 ElementKind get kind => ElementKind.FIELD; | 1882 ElementKind get kind => ElementKind.FIELD; |
1510 PropertyAccessorElement get setter => _setter; | 1883 PropertyAccessorElement get setter => _setter; |
1511 bool isStatic() => hasModifier(Modifier.STATIC); | 1884 bool isStatic() => hasModifier(Modifier.STATIC); |
1512 /** | 1885 /** |
1513 * Set the getter associated with this field to the given accessor. | 1886 * Set the getter associated with this field to the given accessor. |
1514 * @param getter the getter associated with this field | 1887 * @param getter the getter associated with this field |
1515 */ | 1888 */ |
1516 void set getter2(PropertyAccessorElement getter) { | 1889 void set getter(PropertyAccessorElement getter2) { |
1517 this._getter = getter; | 1890 this._getter = getter2; |
1518 } | 1891 } |
1519 /** | 1892 /** |
1520 * Set the setter associated with this field to the given accessor. | 1893 * Set the setter associated with this field to the given accessor. |
1521 * @param setter the setter associated with this field | 1894 * @param setter the setter associated with this field |
1522 */ | 1895 */ |
1523 void set setter2(PropertyAccessorElement setter) { | 1896 void set setter(PropertyAccessorElement setter2) { |
1524 this._setter = setter; | 1897 this._setter = setter2; |
1525 } | 1898 } |
1526 /** | 1899 /** |
1527 * Set whether this field is static to correspond to the given value. | 1900 * Set whether this field is static to correspond to the given value. |
1528 * @param isStatic {@code true} if the field is static | 1901 * @param isStatic {@code true} if the field is static |
1529 */ | 1902 */ |
1530 void set static(bool isStatic) { | 1903 void set static(bool isStatic) { |
1531 setModifier(Modifier.STATIC, isStatic); | 1904 setModifier(Modifier.STATIC, isStatic); |
1532 } | 1905 } |
1533 String toString() => "field ${type} ${name}"; | |
1534 } | 1906 } |
1535 /** | 1907 /** |
1536 * Instances of the class {@code FunctionElementImpl} implement a {@code Functio nElement}. | 1908 * Instances of the class {@code FunctionElementImpl} implement a {@code Functio nElement}. |
1537 */ | 1909 */ |
1538 class FunctionElementImpl extends ExecutableElementImpl implements FunctionEleme nt { | 1910 class FunctionElementImpl extends ExecutableElementImpl implements FunctionEleme nt { |
1539 /** | 1911 /** |
1912 * The offset to the beginning of the visible range for this element. | |
1913 */ | |
1914 int _visibleRangeOffset = 0; | |
1915 /** | |
1916 * The length of the visible range for this element, or {@code -1} if this ele ment does not have a | |
1917 * visible range. | |
1918 */ | |
1919 int _visibleRangeLength = -1; | |
1920 /** | |
1540 * An empty array of function elements. | 1921 * An empty array of function elements. |
1541 */ | 1922 */ |
1542 static List<FunctionElement> EMPTY_ARRAY = new List<FunctionElement>.fixedLeng th(0); | 1923 static List<FunctionElement> EMPTY_ARRAY = new List<FunctionElement>.fixedLeng th(0); |
1543 /** | 1924 /** |
1544 * Initialize a newly created synthetic function element. | 1925 * Initialize a newly created synthetic function element. |
1545 */ | 1926 */ |
1546 FunctionElementImpl() : super.con2("", -1) { | 1927 FunctionElementImpl() : super.con2("", -1) { |
1547 _jtd_constructor_138_impl(); | 1928 _jtd_constructor_144_impl(); |
1548 } | 1929 } |
1549 _jtd_constructor_138_impl() { | 1930 _jtd_constructor_144_impl() { |
1550 synthetic = true; | 1931 synthetic = true; |
1551 } | 1932 } |
1552 /** | 1933 /** |
1553 * Initialize a newly created function element to have the given name. | 1934 * Initialize a newly created function element to have the given name. |
1554 * @param name the name of this element | 1935 * @param name the name of this element |
1555 */ | 1936 */ |
1556 FunctionElementImpl.con1(Identifier name) : super.con1(name) { | 1937 FunctionElementImpl.con1(Identifier name) : super.con1(name) { |
1557 _jtd_constructor_139_impl(name); | 1938 _jtd_constructor_145_impl(name); |
1558 } | 1939 } |
1559 _jtd_constructor_139_impl(Identifier name) { | 1940 _jtd_constructor_145_impl(Identifier name) { |
1560 } | 1941 } |
1561 String get identifier => name; | 1942 String get identifier => name; |
1562 ElementKind get kind => ElementKind.FUNCTION; | 1943 ElementKind get kind => ElementKind.FUNCTION; |
1944 SourceRange get visibleRange { | |
1945 if (_visibleRangeLength < 0) { | |
1946 return null; | |
1947 } | |
1948 return new SourceRange(_visibleRangeOffset, _visibleRangeLength); | |
1949 } | |
1950 /** | |
1951 * Set the visible range for this element to the range starting at the given o ffset with the given | |
1952 * length. | |
1953 * @param offset the offset to the beginning of the visible range for this ele ment | |
1954 * @param length the length of the visible range for this element, or {@code - 1} if this element | |
1955 * does not have a visible range | |
1956 */ | |
1957 void setVisibleRange(int offset, int length) { | |
1958 _visibleRangeOffset = offset; | |
1959 _visibleRangeLength = length; | |
1960 } | |
1961 void appendTo(StringBuffer builder) { | |
1962 String name13 = name; | |
1963 if (name13 != null) { | |
1964 builder.add(name13); | |
1965 } | |
1966 super.appendTo(builder); | |
1967 } | |
1563 } | 1968 } |
1564 /** | 1969 /** |
1565 * Instances of the class {@code ShowCombinatorImpl} implement a {@link ShowComb inator}. | 1970 * Instances of the class {@code ShowCombinatorImpl} implement a {@link ShowComb inator}. |
1566 */ | 1971 */ |
1567 class HideCombinatorImpl implements HideCombinator { | 1972 class HideCombinatorImpl implements HideCombinator { |
1568 /** | 1973 /** |
1569 * The names that are not to be made visible in the importing library even if they are defined in | 1974 * The names that are not to be made visible in the importing library even if they are defined in |
1570 * the imported library. | 1975 * the imported library. |
1571 */ | 1976 */ |
1572 List<String> _hiddenNames = StringUtilities.EMPTY_ARRAY; | 1977 List<String> _hiddenNames = StringUtilities.EMPTY_ARRAY; |
1573 /** | 1978 /** |
1574 * Initialize a newly created combinator. | 1979 * Initialize a newly created combinator. |
1575 */ | 1980 */ |
1576 HideCombinatorImpl() : super() { | 1981 HideCombinatorImpl() : super() { |
1577 } | 1982 } |
1578 List<String> get hiddenNames => _hiddenNames; | 1983 List<String> get hiddenNames => _hiddenNames; |
1579 /** | 1984 /** |
1580 * Set the names that are not to be made visible in the importing library even if they are defined | 1985 * Set the names that are not to be made visible in the importing library even if they are defined |
1581 * in the imported library to the given names. | 1986 * in the imported library to the given names. |
1582 * @param hiddenNames the names that are not to be made visible in the importi ng library | 1987 * @param hiddenNames the names that are not to be made visible in the importi ng library |
1583 */ | 1988 */ |
1584 void set hiddenNames2(List<String> hiddenNames) { | 1989 void set hiddenNames(List<String> hiddenNames2) { |
1585 this._hiddenNames = hiddenNames; | 1990 this._hiddenNames = hiddenNames2; |
1991 } | |
1992 String toString() { | |
1993 StringBuffer builder = new StringBuffer(); | |
1994 builder.add("show "); | |
1995 int count = _hiddenNames.length; | |
1996 for (int i = 0; i < count; i++) { | |
1997 if (i > 0) { | |
1998 builder.add(", "); | |
1999 } | |
2000 builder.add(_hiddenNames[i]); | |
2001 } | |
2002 return builder.toString(); | |
1586 } | 2003 } |
1587 } | 2004 } |
1588 /** | 2005 /** |
1589 * Instances of the class {@code HtmlElementImpl} implement an {@link HtmlElemen t}. | 2006 * Instances of the class {@code HtmlElementImpl} implement an {@link HtmlElemen t}. |
1590 */ | 2007 */ |
1591 class HtmlElementImpl extends ElementImpl implements HtmlElement { | 2008 class HtmlElementImpl extends ElementImpl implements HtmlElement { |
1592 /** | 2009 /** |
1593 * An empty array of HTML file elements. | 2010 * An empty array of HTML file elements. |
1594 */ | 2011 */ |
1595 static List<HtmlElement> EMPTY_ARRAY = new List<HtmlElement>.fixedLength(0); | 2012 static List<HtmlElement> EMPTY_ARRAY = new List<HtmlElement>.fixedLength(0); |
(...skipping 10 matching lines...) Expand all Loading... | |
1606 */ | 2023 */ |
1607 Source _source; | 2024 Source _source; |
1608 /** | 2025 /** |
1609 * Initialize a newly created HTML element to have the given name. | 2026 * Initialize a newly created HTML element to have the given name. |
1610 * @param context the analysis context in which the HTML file is defined | 2027 * @param context the analysis context in which the HTML file is defined |
1611 * @param name the name of this element | 2028 * @param name the name of this element |
1612 */ | 2029 */ |
1613 HtmlElementImpl(AnalysisContext context, String name) : super.con2(name, -1) { | 2030 HtmlElementImpl(AnalysisContext context, String name) : super.con2(name, -1) { |
1614 this._context = context; | 2031 this._context = context; |
1615 } | 2032 } |
1616 bool operator ==(Object object) => this.runtimeType == object.runtimeType && _ source == (object as CompilationUnitElementImpl).source; | 2033 bool operator ==(Object object) => identical(this.runtimeType, object.runtimeT ype) && _source == ((object as CompilationUnitElementImpl)).source; |
1617 AnalysisContext get context => _context; | 2034 AnalysisContext get context => _context; |
1618 ElementKind get kind => ElementKind.HTML; | 2035 ElementKind get kind => ElementKind.HTML; |
1619 List<LibraryElement> get libraries => _libraries; | 2036 List<LibraryElement> get libraries => _libraries; |
1620 Source get source => _source; | 2037 Source get source => _source; |
1621 int get hashCode => _source.hashCode; | 2038 int get hashCode => _source.hashCode; |
1622 /** | 2039 /** |
1623 * Set the libraries contained in or referenced from script tags in the HTML f ile to the given | 2040 * Set the libraries contained in or referenced from script tags in the HTML f ile to the given |
1624 * libraries. | 2041 * libraries. |
1625 * @param libraries the libraries contained in or referenced from script tags in the HTML file | 2042 * @param libraries the libraries contained in or referenced from script tags in the HTML file |
1626 */ | 2043 */ |
1627 void set libraries2(List<LibraryElement> libraries) { | 2044 void set libraries(List<LibraryElement> libraries2) { |
1628 this._libraries = libraries; | 2045 this._libraries = libraries2; |
1629 } | 2046 } |
1630 /** | 2047 /** |
1631 * Set the source that corresponds to this HTML file to the given source. | 2048 * Set the source that corresponds to this HTML file to the given source. |
1632 * @param source the source that corresponds to this HTML file | 2049 * @param source the source that corresponds to this HTML file |
1633 */ | 2050 */ |
1634 void set source4(Source source) { | 2051 void set source(Source source6) { |
1635 this._source = source; | 2052 this._source = source6; |
2053 } | |
2054 void appendTo(StringBuffer builder) { | |
2055 if (_source == null) { | |
2056 builder.add("{HTML file}"); | |
2057 } else { | |
2058 builder.add(_source.fullName); | |
2059 } | |
1636 } | 2060 } |
1637 } | 2061 } |
1638 /** | 2062 /** |
1639 * Instances of the class {@code ImportElementImpl} implement an {@link ImportEl ement}. | 2063 * Instances of the class {@code ImportElementImpl} implement an {@link ImportEl ement}. |
1640 */ | 2064 */ |
1641 class ImportElementImpl extends ElementImpl implements ImportElement { | 2065 class ImportElementImpl extends ElementImpl implements ImportElement { |
1642 /** | 2066 /** |
1643 * The library that is imported into this library by this import directive. | 2067 * The library that is imported into this library by this import directive. |
1644 */ | 2068 */ |
1645 LibraryElement _importedLibrary; | 2069 LibraryElement _importedLibrary; |
(...skipping 14 matching lines...) Expand all Loading... | |
1660 } | 2084 } |
1661 List<NamespaceCombinator> get combinators => _combinators; | 2085 List<NamespaceCombinator> get combinators => _combinators; |
1662 LibraryElement get importedLibrary => _importedLibrary; | 2086 LibraryElement get importedLibrary => _importedLibrary; |
1663 ElementKind get kind => ElementKind.IMPORT; | 2087 ElementKind get kind => ElementKind.IMPORT; |
1664 PrefixElement get prefix => _prefix; | 2088 PrefixElement get prefix => _prefix; |
1665 /** | 2089 /** |
1666 * Set the combinators that were specified as part of the import directive to the given array of | 2090 * Set the combinators that were specified as part of the import directive to the given array of |
1667 * combinators. | 2091 * combinators. |
1668 * @param combinators the combinators that were specified as part of the impor t directive | 2092 * @param combinators the combinators that were specified as part of the impor t directive |
1669 */ | 2093 */ |
1670 void set combinators3(List<NamespaceCombinator> combinators) { | 2094 void set combinators(List<NamespaceCombinator> combinators3) { |
1671 this._combinators = combinators; | 2095 this._combinators = combinators3; |
1672 } | 2096 } |
1673 /** | 2097 /** |
1674 * Set the library that is imported into this library by this import directive to the given | 2098 * Set the library that is imported into this library by this import directive to the given |
1675 * library. | 2099 * library. |
1676 * @param importedLibrary the library that is imported into this library | 2100 * @param importedLibrary the library that is imported into this library |
1677 */ | 2101 */ |
1678 void set importedLibrary2(LibraryElement importedLibrary) { | 2102 void set importedLibrary(LibraryElement importedLibrary3) { |
1679 this._importedLibrary = importedLibrary; | 2103 this._importedLibrary = importedLibrary3; |
1680 } | 2104 } |
1681 /** | 2105 /** |
1682 * Set the prefix that was specified as part of the import directive to the gi ven prefix. | 2106 * Set the prefix that was specified as part of the import directive to the gi ven prefix. |
1683 * @param prefix the prefix that was specified as part of the import directive | 2107 * @param prefix the prefix that was specified as part of the import directive |
1684 */ | 2108 */ |
1685 void set prefix4(PrefixElement prefix) { | 2109 void set prefix(PrefixElement prefix3) { |
1686 this._prefix = prefix; | 2110 this._prefix = prefix3; |
2111 } | |
2112 void appendTo(StringBuffer builder) { | |
2113 builder.add("import "); | |
2114 ((_importedLibrary as LibraryElementImpl)).appendTo(builder); | |
1687 } | 2115 } |
1688 } | 2116 } |
1689 /** | 2117 /** |
1690 * Instances of the class {@code LabelElementImpl} implement a {@code LabelEleme nt}. | 2118 * Instances of the class {@code LabelElementImpl} implement a {@code LabelEleme nt}. |
1691 */ | 2119 */ |
1692 class LabelElementImpl extends ElementImpl implements LabelElement { | 2120 class LabelElementImpl extends ElementImpl implements LabelElement { |
1693 /** | 2121 /** |
1694 * A flag indicating whether this label is associated with a {@code switch} st atement. | 2122 * A flag indicating whether this label is associated with a {@code switch} st atement. |
1695 */ | 2123 */ |
1696 bool _onSwitchStatement = false; | 2124 bool _onSwitchStatement = false; |
1697 /** | 2125 /** |
1698 * A flag indicating whether this label is associated with a {@code switch} me mber ({@code case}or {@code default}). | 2126 * A flag indicating whether this label is associated with a {@code switch} me mber ({@code case}or {@code default}). |
1699 */ | 2127 */ |
1700 bool _onSwitchMember = false; | 2128 bool _onSwitchMember = false; |
1701 /** | 2129 /** |
1702 * An empty array of label elements. | 2130 * An empty array of label elements. |
1703 */ | 2131 */ |
1704 static List<LabelElement> EMPTY_ARRAY = new List<LabelElement>.fixedLength(0); | 2132 static List<LabelElement> EMPTY_ARRAY = new List<LabelElement>.fixedLength(0); |
1705 /** | 2133 /** |
1706 * Initialize a newly created label element to have the given name. | 2134 * Initialize a newly created label element to have the given name. |
1707 * @param name the name of this element | 2135 * @param name the name of this element |
1708 * @param onSwitchStatement {@code true} if this label is associated with a {@ code switch}statement | 2136 * @param onSwitchStatement {@code true} if this label is associated with a {@ code switch}statement |
1709 * @param onSwitchMember {@code true} if this label is associated with a {@cod e switch} member | 2137 * @param onSwitchMember {@code true} if this label is associated with a {@cod e switch} member |
1710 */ | 2138 */ |
1711 LabelElementImpl(Identifier name, bool onSwitchStatement, bool onSwitchMember) : super.con1(name) { | 2139 LabelElementImpl(Identifier name, bool onSwitchStatement, bool onSwitchMember) : super.con1(name) { |
1712 this._onSwitchStatement = onSwitchStatement; | 2140 this._onSwitchStatement = onSwitchStatement; |
1713 this._onSwitchMember = onSwitchMember; | 2141 this._onSwitchMember = onSwitchMember; |
1714 } | 2142 } |
1715 ExecutableElement get enclosingElement => super.enclosingElement as Executable Element; | 2143 ExecutableElement get enclosingElement => (super.enclosingElement as Executabl eElement); |
1716 ElementKind get kind => ElementKind.LABEL; | 2144 ElementKind get kind => ElementKind.LABEL; |
1717 /** | 2145 /** |
1718 * Return {@code true} if this label is associated with a {@code switch} membe r ({@code case} or{@code default}). | 2146 * Return {@code true} if this label is associated with a {@code switch} membe r ({@code case} or{@code default}). |
1719 * @return {@code true} if this label is associated with a {@code switch} memb er | 2147 * @return {@code true} if this label is associated with a {@code switch} memb er |
1720 */ | 2148 */ |
1721 bool isOnSwitchMember() => _onSwitchMember; | 2149 bool isOnSwitchMember() => _onSwitchMember; |
1722 /** | 2150 /** |
1723 * Return {@code true} if this label is associated with a {@code switch} state ment. | 2151 * Return {@code true} if this label is associated with a {@code switch} state ment. |
1724 * @return {@code true} if this label is associated with a {@code switch} stat ement | 2152 * @return {@code true} if this label is associated with a {@code switch} stat ement |
1725 */ | 2153 */ |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1758 */ | 2186 */ |
1759 List<CompilationUnitElement> _parts = CompilationUnitElementImpl.EMPTY_ARRAY; | 2187 List<CompilationUnitElement> _parts = CompilationUnitElementImpl.EMPTY_ARRAY; |
1760 /** | 2188 /** |
1761 * Initialize a newly created library element to have the given name. | 2189 * Initialize a newly created library element to have the given name. |
1762 * @param context the analysis context in which the library is defined | 2190 * @param context the analysis context in which the library is defined |
1763 * @param name the name of this element | 2191 * @param name the name of this element |
1764 */ | 2192 */ |
1765 LibraryElementImpl(AnalysisContext context, LibraryIdentifier name) : super.co n1(name) { | 2193 LibraryElementImpl(AnalysisContext context, LibraryIdentifier name) : super.co n1(name) { |
1766 this._context = context; | 2194 this._context = context; |
1767 } | 2195 } |
1768 bool operator ==(Object object) => this.runtimeType == object.runtimeType && _ definingCompilationUnit == (object as LibraryElementImpl).definingCompilationUni t; | 2196 bool operator ==(Object object) => identical(this.runtimeType, object.runtimeT ype) && _definingCompilationUnit == ((object as LibraryElementImpl)).definingCom pilationUnit; |
1769 ElementImpl getChild(String identifier) { | 2197 ElementImpl getChild(String identifier22) { |
1770 if ((_definingCompilationUnit as CompilationUnitElementImpl).identifier == i dentifier) { | 2198 if (((_definingCompilationUnit as CompilationUnitElementImpl)).identifier == identifier22) { |
1771 return _definingCompilationUnit as CompilationUnitElementImpl; | 2199 return (_definingCompilationUnit as CompilationUnitElementImpl); |
1772 } | 2200 } |
1773 for (CompilationUnitElement part in _parts) { | 2201 for (CompilationUnitElement part in _parts) { |
1774 if ((part as CompilationUnitElementImpl).identifier == identifier) { | 2202 if (((part as CompilationUnitElementImpl)).identifier == identifier22) { |
1775 return part as CompilationUnitElementImpl; | 2203 return (part as CompilationUnitElementImpl); |
1776 } | 2204 } |
1777 } | 2205 } |
1778 return null; | 2206 return null; |
1779 } | 2207 } |
1780 AnalysisContext get context => _context; | 2208 AnalysisContext get context => _context; |
1781 CompilationUnitElement get definingCompilationUnit => _definingCompilationUnit ; | 2209 CompilationUnitElement get definingCompilationUnit => _definingCompilationUnit ; |
1782 FunctionElement get entryPoint => _entryPoint; | 2210 FunctionElement get entryPoint => _entryPoint; |
2211 List<LibraryElement> get exportedLibraries { | |
2212 Set<LibraryElement> libraries = new Set<LibraryElement>(); | |
2213 for (ExportElement element in _exports) { | |
2214 LibraryElement library = element.exportedLibrary; | |
2215 javaSetAdd(libraries, library); | |
2216 } | |
2217 return new List.from(libraries); | |
2218 } | |
1783 List<ExportElement> get exports => _exports; | 2219 List<ExportElement> get exports => _exports; |
1784 String get identifier => _definingCompilationUnit.source.fullName; | 2220 String get identifier => _definingCompilationUnit.source.fullName; |
1785 List<LibraryElement> get importedLibraries { | 2221 List<LibraryElement> get importedLibraries { |
1786 Set<LibraryElement> libraries = new Set<LibraryElement>(); | 2222 Set<LibraryElement> libraries = new Set<LibraryElement>(); |
1787 for (ImportElement element in _imports) { | 2223 for (ImportElement element in _imports) { |
1788 LibraryElement prefix = element.importedLibrary; | 2224 LibraryElement prefix = element.importedLibrary; |
1789 javaSetAdd(libraries, prefix); | 2225 javaSetAdd(libraries, prefix); |
1790 } | 2226 } |
1791 return new List.from(libraries); | 2227 return new List.from(libraries); |
1792 } | 2228 } |
1793 List<ImportElement> get imports => _imports; | 2229 List<ImportElement> get imports => _imports; |
1794 ElementKind get kind => ElementKind.LIBRARY; | 2230 ElementKind get kind => ElementKind.LIBRARY; |
1795 List<CompilationUnitElement> get parts => _parts; | 2231 List<CompilationUnitElement> get parts => _parts; |
1796 List<PrefixElement> get prefixes { | 2232 List<PrefixElement> get prefixes { |
1797 Set<PrefixElement> prefixes = new Set<PrefixElement>(); | 2233 Set<PrefixElement> prefixes = new Set<PrefixElement>(); |
1798 for (ImportElement element in _imports) { | 2234 for (ImportElement element in _imports) { |
1799 PrefixElement prefix5 = element.prefix; | 2235 PrefixElement prefix4 = element.prefix; |
1800 if (prefix5 != null) { | 2236 if (prefix4 != null) { |
1801 javaSetAdd(prefixes, prefix5); | 2237 javaSetAdd(prefixes, prefix4); |
1802 } | 2238 } |
1803 } | 2239 } |
1804 return new List.from(prefixes); | 2240 return new List.from(prefixes); |
1805 } | 2241 } |
1806 int get hashCode => _definingCompilationUnit.hashCode; | 2242 int get hashCode => _definingCompilationUnit.hashCode; |
2243 bool isBrowserApplication() => _entryPoint != null && isOrImportsBrowserLibrar y(); | |
1807 /** | 2244 /** |
1808 * Set the compilation unit that defines this library to the given compilation unit. | 2245 * Set the compilation unit that defines this library to the given compilation unit. |
1809 * @param definingCompilationUnit the compilation unit that defines this libra ry | 2246 * @param definingCompilationUnit the compilation unit that defines this libra ry |
1810 */ | 2247 */ |
1811 void set definingCompilationUnit2(CompilationUnitElement definingCompilationUn it) { | 2248 void set definingCompilationUnit(CompilationUnitElement definingCompilationUni t2) { |
1812 (definingCompilationUnit as CompilationUnitElementImpl).enclosingElement2 = this; | 2249 ((definingCompilationUnit2 as CompilationUnitElementImpl)).enclosingElement = this; |
1813 this._definingCompilationUnit = definingCompilationUnit; | 2250 this._definingCompilationUnit = definingCompilationUnit2; |
1814 } | 2251 } |
1815 /** | 2252 /** |
1816 * Set the entry point for this library to the given function. | 2253 * Set the entry point for this library to the given function. |
1817 * @param entryPoint the entry point for this library | 2254 * @param entryPoint the entry point for this library |
1818 */ | 2255 */ |
1819 void set entryPoint2(FunctionElement entryPoint) { | 2256 void set entryPoint(FunctionElement entryPoint2) { |
1820 (entryPoint as FunctionElementImpl).enclosingElement2 = this; | 2257 ((entryPoint2 as FunctionElementImpl)).enclosingElement = this; |
1821 this._entryPoint = entryPoint; | 2258 this._entryPoint = entryPoint2; |
1822 } | 2259 } |
1823 /** | 2260 /** |
1824 * Set the specifications of all of the exports defined in this library to the given array. | 2261 * Set the specifications of all of the exports defined in this library to the given array. |
1825 * @param exports the specifications of all of the exports defined in this lib rary | 2262 * @param exports the specifications of all of the exports defined in this lib rary |
1826 */ | 2263 */ |
1827 void set exports2(List<ExportElement> exports) { | 2264 void set exports(List<ExportElement> exports2) { |
1828 this._exports = exports; | 2265 this._exports = exports2; |
1829 } | 2266 } |
1830 /** | 2267 /** |
1831 * Set the specifications of all of the imports defined in this library to the given array. | 2268 * Set the specifications of all of the imports defined in this library to the given array. |
1832 * @param imports the specifications of all of the imports defined in this lib rary | 2269 * @param imports the specifications of all of the imports defined in this lib rary |
1833 */ | 2270 */ |
1834 void set imports2(List<ImportElement> imports) { | 2271 void set imports(List<ImportElement> imports2) { |
1835 this._imports = imports; | 2272 this._imports = imports2; |
1836 } | 2273 } |
1837 /** | 2274 /** |
1838 * Set the compilation units that are included in this library using a {@code part} directive. | 2275 * Set the compilation units that are included in this library using a {@code part} directive. |
1839 * @param parts the compilation units that are included in this library using a {@code part}directive | 2276 * @param parts the compilation units that are included in this library using a {@code part}directive |
1840 */ | 2277 */ |
1841 void set parts2(List<CompilationUnitElement> parts) { | 2278 void set parts(List<CompilationUnitElement> parts2) { |
1842 for (CompilationUnitElement compilationUnit in parts) { | 2279 for (CompilationUnitElement compilationUnit in parts2) { |
1843 (compilationUnit as CompilationUnitElementImpl).enclosingElement2 = this; | 2280 ((compilationUnit as CompilationUnitElementImpl)).enclosingElement = this; |
1844 } | 2281 } |
1845 this._parts = parts; | 2282 this._parts = parts2; |
2283 } | |
2284 /** | |
2285 * Answer {@code true} if the receiver directly or indirectly imports the dart :html libraries. | |
2286 * @return {@code true} if the receiver directly or indirectly imports the dar t:html libraries | |
2287 */ | |
2288 bool isOrImportsBrowserLibrary() { | |
2289 List<LibraryElement> visited = new List<LibraryElement>(10); | |
2290 Source htmlLibSource = definingCompilationUnit.source.resolve(DartSdk.DART_H TML); | |
2291 visited.add(this); | |
2292 for (int index = 0; index < visited.length; index++) { | |
2293 LibraryElement library = visited[index]; | |
2294 Source source8 = library.definingCompilationUnit.source; | |
2295 if (source8 == htmlLibSource) { | |
2296 return true; | |
2297 } | |
2298 for (LibraryElement importedLibrary in library.importedLibraries) { | |
2299 if (!visited.contains(importedLibrary)) { | |
2300 visited.add(importedLibrary); | |
2301 } | |
2302 } | |
2303 for (LibraryElement exportedLibrary in library.exportedLibraries) { | |
2304 if (!visited.contains(exportedLibrary)) { | |
2305 visited.add(exportedLibrary); | |
2306 } | |
2307 } | |
2308 } | |
2309 return false; | |
1846 } | 2310 } |
1847 } | 2311 } |
1848 /** | 2312 /** |
1849 * Instances of the class {@code MethodElementImpl} implement a {@code MethodEle ment}. | 2313 * Instances of the class {@code MethodElementImpl} implement a {@code MethodEle ment}. |
1850 */ | 2314 */ |
1851 class MethodElementImpl extends ExecutableElementImpl implements MethodElement { | 2315 class MethodElementImpl extends ExecutableElementImpl implements MethodElement { |
1852 /** | 2316 /** |
1853 * An empty array of method elements. | 2317 * An empty array of method elements. |
1854 */ | 2318 */ |
1855 static List<MethodElement> EMPTY_ARRAY = new List<MethodElement>.fixedLength(0 ); | 2319 static List<MethodElement> EMPTY_ARRAY = new List<MethodElement>.fixedLength(0 ); |
1856 /** | 2320 /** |
1857 * Initialize a newly created method element to have the given name. | 2321 * Initialize a newly created method element to have the given name. |
1858 * @param name the name of this element | 2322 * @param name the name of this element |
1859 */ | 2323 */ |
1860 MethodElementImpl(Identifier name) : super.con1(name) { | 2324 MethodElementImpl.con1(Identifier name) : super.con1(name) { |
2325 _jtd_constructor_151_impl(name); | |
1861 } | 2326 } |
1862 ClassElement get enclosingElement => super.enclosingElement as ClassElement; | 2327 _jtd_constructor_151_impl(Identifier name) { |
2328 } | |
2329 /** | |
2330 * Initialize a newly created method element to have the given name. | |
2331 * @param name the name of this element | |
2332 * @param nameOffset the offset of the name of this element in the file that c ontains the | |
2333 * declaration of this element | |
2334 */ | |
2335 MethodElementImpl.con2(String name, int nameOffset) : super.con2(name, nameOff set) { | |
2336 _jtd_constructor_152_impl(name, nameOffset); | |
2337 } | |
2338 _jtd_constructor_152_impl(String name, int nameOffset) { | |
2339 } | |
2340 ClassElement get enclosingElement => (super.enclosingElement as ClassElement); | |
1863 ElementKind get kind => ElementKind.METHOD; | 2341 ElementKind get kind => ElementKind.METHOD; |
1864 bool isAbstract() => hasModifier(Modifier.ABSTRACT); | 2342 bool isAbstract() => hasModifier(Modifier.ABSTRACT); |
1865 bool isStatic() => hasModifier(Modifier.STATIC); | 2343 bool isStatic() => hasModifier(Modifier.STATIC); |
1866 /** | 2344 /** |
1867 * Set whether this method is abstract to correspond to the given value. | 2345 * Set whether this method is abstract to correspond to the given value. |
1868 * @param isAbstract {@code true} if the method is abstract | 2346 * @param isAbstract {@code true} if the method is abstract |
1869 */ | 2347 */ |
1870 void set abstract(bool isAbstract) { | 2348 void set abstract(bool isAbstract) { |
1871 setModifier(Modifier.ABSTRACT, isAbstract); | 2349 setModifier(Modifier.ABSTRACT, isAbstract); |
1872 } | 2350 } |
1873 /** | 2351 /** |
1874 * Set whether this method is static to correspond to the given value. | 2352 * Set whether this method is static to correspond to the given value. |
1875 * @param isStatic {@code true} if the method is static | 2353 * @param isStatic {@code true} if the method is static |
1876 */ | 2354 */ |
1877 void set static(bool isStatic) { | 2355 void set static(bool isStatic) { |
1878 setModifier(Modifier.STATIC, isStatic); | 2356 setModifier(Modifier.STATIC, isStatic); |
1879 } | 2357 } |
1880 String toString() { | 2358 void appendTo(StringBuffer builder) { |
1881 StringBuffer builder = new StringBuffer(); | |
1882 builder.add("method "); | |
1883 builder.add(enclosingElement.name); | 2359 builder.add(enclosingElement.name); |
1884 builder.add("."); | 2360 builder.add("."); |
1885 builder.add(name); | 2361 builder.add(name); |
1886 builder.add(type); | 2362 super.appendTo(builder); |
1887 return builder.toString(); | |
1888 } | 2363 } |
1889 } | 2364 } |
1890 /** | 2365 /** |
1891 * The enumeration {@code Modifier} defines constants for all of the modifiers d efined by the Dart | 2366 * The enumeration {@code Modifier} defines constants for all of the modifiers d efined by the Dart |
1892 * language. | 2367 * language and for a few additional flags that are useful. |
1893 */ | 2368 */ |
1894 class Modifier { | 2369 class Modifier { |
1895 static final Modifier ABSTRACT = new Modifier('ABSTRACT', 0); | 2370 static final Modifier ABSTRACT = new Modifier('ABSTRACT', 0); |
1896 static final Modifier CONST = new Modifier('CONST', 1); | 2371 static final Modifier CONST = new Modifier('CONST', 1); |
1897 static final Modifier FACTORY = new Modifier('FACTORY', 2); | 2372 static final Modifier FACTORY = new Modifier('FACTORY', 2); |
1898 static final Modifier FINAL = new Modifier('FINAL', 3); | 2373 static final Modifier FINAL = new Modifier('FINAL', 3); |
1899 static final Modifier GETTER = new Modifier('GETTER', 4); | 2374 static final Modifier GETTER = new Modifier('GETTER', 4); |
1900 static final Modifier SETTER = new Modifier('SETTER', 5); | 2375 static final Modifier INITIALIZING_FORMAL = new Modifier('INITIALIZING_FORMAL' , 5); |
1901 static final Modifier STATIC = new Modifier('STATIC', 6); | 2376 static final Modifier SETTER = new Modifier('SETTER', 6); |
1902 static final Modifier SYNTHETIC = new Modifier('SYNTHETIC', 7); | 2377 static final Modifier STATIC = new Modifier('STATIC', 7); |
1903 static final List<Modifier> values = [ABSTRACT, CONST, FACTORY, FINAL, GETTER, SETTER, STATIC, SYNTHETIC]; | 2378 static final Modifier SYNTHETIC = new Modifier('SYNTHETIC', 8); |
2379 static final List<Modifier> values = [ABSTRACT, CONST, FACTORY, FINAL, GETTER, INITIALIZING_FORMAL, SETTER, STATIC, SYNTHETIC]; | |
1904 final String __name; | 2380 final String __name; |
1905 final int __ordinal; | 2381 final int __ordinal; |
1906 Modifier(this.__name, this.__ordinal) { | 2382 Modifier(this.__name, this.__ordinal) { |
1907 } | 2383 } |
1908 String toString() => __name; | 2384 String toString() => __name; |
1909 } | 2385 } |
1910 /** | 2386 /** |
1911 * Instances of the class {@code MultiplyDefinedElementImpl} represent a collect ion of elements that | 2387 * Instances of the class {@code MultiplyDefinedElementImpl} represent a collect ion of elements that |
1912 * have the same name within the same scope. | 2388 * have the same name within the same scope. |
1913 */ | 2389 */ |
(...skipping 23 matching lines...) Expand all Loading... | |
1937 Element getAncestor(Type elementClass) => null; | 2413 Element getAncestor(Type elementClass) => null; |
1938 List<Element> get conflictingElements => _conflictingElements; | 2414 List<Element> get conflictingElements => _conflictingElements; |
1939 AnalysisContext get context => _context; | 2415 AnalysisContext get context => _context; |
1940 Element get enclosingElement => null; | 2416 Element get enclosingElement => null; |
1941 ElementKind get kind => ElementKind.ERROR; | 2417 ElementKind get kind => ElementKind.ERROR; |
1942 LibraryElement get library => null; | 2418 LibraryElement get library => null; |
1943 ElementLocation get location => null; | 2419 ElementLocation get location => null; |
1944 List<Annotation> get metadata => AnnotationImpl.EMPTY_ARRAY; | 2420 List<Annotation> get metadata => AnnotationImpl.EMPTY_ARRAY; |
1945 String get name => _name; | 2421 String get name => _name; |
1946 int get nameOffset => -1; | 2422 int get nameOffset => -1; |
2423 Source get source => null; | |
2424 bool isAccessibleIn(LibraryElement library) { | |
2425 for (Element element in _conflictingElements) { | |
2426 if (element.isAccessibleIn(library)) { | |
2427 return true; | |
2428 } | |
2429 } | |
2430 return false; | |
2431 } | |
1947 bool isSynthetic() => true; | 2432 bool isSynthetic() => true; |
2433 String toString() { | |
2434 StringBuffer builder = new StringBuffer(); | |
2435 builder.add("["); | |
2436 int count = _conflictingElements.length; | |
2437 for (int i = 0; i < count; i++) { | |
2438 if (i > 0) { | |
2439 builder.add(", "); | |
2440 } | |
2441 ((_conflictingElements[i] as ElementImpl)).appendTo(builder); | |
2442 } | |
2443 builder.add("]"); | |
2444 return builder.toString(); | |
2445 } | |
1948 /** | 2446 /** |
1949 * Add the given element to the list of elements. If the element is a multiply -defined element, | 2447 * Add the given element to the list of elements. If the element is a multiply -defined element, |
1950 * add all of the conflicting elements that it represents. | 2448 * add all of the conflicting elements that it represents. |
1951 * @param elements the list to which the element(s) are to be added | 2449 * @param elements the list to which the element(s) are to be added |
1952 * @param element the element(s) to be added | 2450 * @param element the element(s) to be added |
1953 */ | 2451 */ |
1954 void add(List<Element> elements, Element element) { | 2452 void add(List<Element> elements, Element element) { |
1955 if (element is MultiplyDefinedElementImpl) { | 2453 if (element is MultiplyDefinedElementImpl) { |
1956 for (Element conflictingElement in (element as MultiplyDefinedElementImpl) ._conflictingElements) { | 2454 for (Element conflictingElement in ((element as MultiplyDefinedElementImpl ))._conflictingElements) { |
1957 elements.add(conflictingElement); | 2455 elements.add(conflictingElement); |
1958 } | 2456 } |
1959 } else { | 2457 } else { |
1960 elements.add(element); | 2458 elements.add(element); |
1961 } | 2459 } |
1962 } | 2460 } |
1963 /** | 2461 /** |
1964 * Use the given elements to construct an array of conflicting elements. If ei ther of the given | 2462 * Use the given elements to construct an array of conflicting elements. If ei ther of the given |
1965 * elements are multiply-defined elements then the conflicting elements they r epresent will be | 2463 * elements are multiply-defined elements then the conflicting elements they r epresent will be |
1966 * included in the array. Otherwise, the element itself will be included. | 2464 * included in the array. Otherwise, the element itself will be included. |
(...skipping 21 matching lines...) Expand all Loading... | |
1988 */ | 2486 */ |
1989 static List<ParameterElement> EMPTY_ARRAY = new List<ParameterElement>.fixedLe ngth(0); | 2487 static List<ParameterElement> EMPTY_ARRAY = new List<ParameterElement>.fixedLe ngth(0); |
1990 /** | 2488 /** |
1991 * Initialize a newly created parameter element to have the given name. | 2489 * Initialize a newly created parameter element to have the given name. |
1992 * @param name the name of this element | 2490 * @param name the name of this element |
1993 */ | 2491 */ |
1994 ParameterElementImpl(Identifier name) : super.con1(name) { | 2492 ParameterElementImpl(Identifier name) : super.con1(name) { |
1995 } | 2493 } |
1996 ElementKind get kind => ElementKind.PARAMETER; | 2494 ElementKind get kind => ElementKind.PARAMETER; |
1997 ParameterKind get parameterKind => _parameterKind; | 2495 ParameterKind get parameterKind => _parameterKind; |
2496 bool isInitializingFormal() => hasModifier(Modifier.INITIALIZING_FORMAL); | |
2497 /** | |
2498 * Set whether this parameter is an initializing formal parameter to match the given value. | |
2499 * @param isInitializingFormal {@code true} if this parameter is an initializi ng formal parameter | |
2500 */ | |
2501 void set initializingFormal(bool isInitializingFormal) { | |
2502 setModifier(Modifier.INITIALIZING_FORMAL, isInitializingFormal); | |
2503 } | |
1998 /** | 2504 /** |
1999 * Set the kind of this parameter to the given kind. | 2505 * Set the kind of this parameter to the given kind. |
2000 * @param parameterKind the new kind of this parameter | 2506 * @param parameterKind the new kind of this parameter |
2001 */ | 2507 */ |
2002 void set parameterKind2(ParameterKind parameterKind) { | 2508 void set parameterKind(ParameterKind parameterKind2) { |
2003 this._parameterKind = parameterKind; | 2509 this._parameterKind = parameterKind2; |
2004 } | 2510 } |
2005 String toString() => "parameter ${type} ${name} (${kind})"; | 2511 void appendTo(StringBuffer builder) { |
2512 builder.add(type); | |
2513 builder.add(" "); | |
2514 builder.add(name); | |
2515 builder.add(" ("); | |
2516 builder.add(kind); | |
2517 builder.add(")"); | |
2518 } | |
2006 } | 2519 } |
2007 /** | 2520 /** |
2008 * Instances of the class {@code PrefixElementImpl} implement a {@code PrefixEle ment}. | 2521 * Instances of the class {@code PrefixElementImpl} implement a {@code PrefixEle ment}. |
2009 */ | 2522 */ |
2010 class PrefixElementImpl extends ElementImpl implements PrefixElement { | 2523 class PrefixElementImpl extends ElementImpl implements PrefixElement { |
2011 /** | 2524 /** |
2012 * An array containing all of the libraries that are imported using this prefi x. | 2525 * An array containing all of the libraries that are imported using this prefi x. |
2013 */ | 2526 */ |
2014 List<LibraryElement> _importedLibraries = LibraryElementImpl.EMPTY_ARRAY; | 2527 List<LibraryElement> _importedLibraries = LibraryElementImpl.EMPTY_ARRAY; |
2015 /** | 2528 /** |
2016 * An empty array of prefix elements. | 2529 * An empty array of prefix elements. |
2017 */ | 2530 */ |
2018 static List<PrefixElement> EMPTY_ARRAY = new List<PrefixElement>.fixedLength(0 ); | 2531 static List<PrefixElement> EMPTY_ARRAY = new List<PrefixElement>.fixedLength(0 ); |
2019 /** | 2532 /** |
2020 * Initialize a newly created prefix element to have the given name. | 2533 * Initialize a newly created prefix element to have the given name. |
2021 * @param name the name of this element | 2534 * @param name the name of this element |
2022 */ | 2535 */ |
2023 PrefixElementImpl(Identifier name) : super.con1(name) { | 2536 PrefixElementImpl(Identifier name) : super.con1(name) { |
2024 } | 2537 } |
2025 LibraryElement get enclosingElement => super.enclosingElement as LibraryElemen t; | 2538 LibraryElement get enclosingElement => (super.enclosingElement as LibraryEleme nt); |
2026 List<LibraryElement> get importedLibraries => _importedLibraries; | 2539 List<LibraryElement> get importedLibraries => _importedLibraries; |
2027 ElementKind get kind => ElementKind.PREFIX; | 2540 ElementKind get kind => ElementKind.PREFIX; |
2028 /** | 2541 /** |
2029 * Set the libraries that are imported using this prefix to the given librarie s. | 2542 * Set the libraries that are imported using this prefix to the given librarie s. |
2030 * @param importedLibraries the libraries that are imported using this prefix | 2543 * @param importedLibraries the libraries that are imported using this prefix |
2031 */ | 2544 */ |
2032 void set importedLibraries2(List<LibraryElement> importedLibraries) { | 2545 void set importedLibraries(List<LibraryElement> importedLibraries2) { |
2033 for (LibraryElement library in importedLibraries) { | 2546 for (LibraryElement library in importedLibraries2) { |
2034 (library as LibraryElementImpl).enclosingElement2 = this; | 2547 ((library as LibraryElementImpl)).enclosingElement = this; |
2035 } | 2548 } |
2036 this._importedLibraries = importedLibraries; | 2549 this._importedLibraries = importedLibraries2; |
2550 } | |
2551 void appendTo(StringBuffer builder) { | |
2552 builder.add("as "); | |
2553 super.appendTo(builder); | |
2037 } | 2554 } |
2038 } | 2555 } |
2039 /** | 2556 /** |
2040 * Instances of the class {@code PropertyAccessorElementImpl} implement a{@code PropertyAccessorElement}. | 2557 * Instances of the class {@code PropertyAccessorElementImpl} implement a{@code PropertyAccessorElement}. |
2041 */ | 2558 */ |
2042 class PropertyAccessorElementImpl extends ExecutableElementImpl implements Prope rtyAccessorElement { | 2559 class PropertyAccessorElementImpl extends ExecutableElementImpl implements Prope rtyAccessorElement { |
2043 /** | 2560 /** |
2044 * The field associated with this accessor. | 2561 * The field associated with this accessor. |
2045 */ | 2562 */ |
2046 FieldElement _field; | 2563 FieldElement _field; |
2047 /** | 2564 /** |
2048 * An empty array of property accessor elements. | 2565 * An empty array of property accessor elements. |
2049 */ | 2566 */ |
2050 static List<PropertyAccessorElement> EMPTY_ARRAY = new List<PropertyAccessorEl ement>.fixedLength(0); | 2567 static List<PropertyAccessorElement> EMPTY_ARRAY = new List<PropertyAccessorEl ement>.fixedLength(0); |
2051 /** | 2568 /** |
2052 * Initialize a newly created synthetic property accessor element to be associ ated with the given | 2569 * Initialize a newly created synthetic property accessor element to be associ ated with the given |
2053 * field. | 2570 * field. |
2054 * @param name the name of this element | 2571 * @param name the name of this element |
2055 */ | 2572 */ |
2056 PropertyAccessorElementImpl.con1(FieldElementImpl field) : super.con2(field.na me, -1) { | 2573 PropertyAccessorElementImpl.con1(FieldElementImpl field2) : super.con2(field2. name, -1) { |
2057 _jtd_constructor_150_impl(field); | 2574 _jtd_constructor_157_impl(field2); |
2058 } | 2575 } |
2059 _jtd_constructor_150_impl(FieldElementImpl field) { | 2576 _jtd_constructor_157_impl(FieldElementImpl field2) { |
2060 this._field = field; | 2577 this._field = field2; |
2061 synthetic = true; | 2578 synthetic = true; |
2062 } | 2579 } |
2063 /** | 2580 /** |
2064 * Initialize a newly created property accessor element to have the given name . | 2581 * Initialize a newly created property accessor element to have the given name . |
2065 * @param name the name of this element | 2582 * @param name the name of this element |
2066 */ | 2583 */ |
2067 PropertyAccessorElementImpl.con2(Identifier name) : super.con1(name) { | 2584 PropertyAccessorElementImpl.con2(Identifier name) : super.con1(name) { |
2068 _jtd_constructor_151_impl(name); | 2585 _jtd_constructor_158_impl(name); |
2069 } | 2586 } |
2070 _jtd_constructor_151_impl(Identifier name) { | 2587 _jtd_constructor_158_impl(Identifier name) { |
2071 } | 2588 } |
2072 FieldElement get field => _field; | 2589 FieldElement get field => _field; |
2073 ElementKind get kind { | 2590 ElementKind get kind { |
2074 if (isGetter()) { | 2591 if (isGetter()) { |
2075 return ElementKind.GETTER; | 2592 return ElementKind.GETTER; |
2076 } | 2593 } |
2077 return ElementKind.SETTER; | 2594 return ElementKind.SETTER; |
2078 } | 2595 } |
2079 bool isGetter() => hasModifier(Modifier.GETTER); | 2596 bool isGetter() => hasModifier(Modifier.GETTER); |
2080 bool isSetter() => hasModifier(Modifier.SETTER); | 2597 bool isSetter() => hasModifier(Modifier.SETTER); |
2081 /** | 2598 /** |
2082 * Set the field associated with this accessor to the given field. | 2599 * Set the field associated with this accessor to the given field. |
2083 * @param field the field associated with this accessor | 2600 * @param field the field associated with this accessor |
2084 */ | 2601 */ |
2085 void set field2(FieldElement field) { | 2602 void set field(FieldElement field3) { |
2086 this._field = field; | 2603 this._field = field3; |
2087 } | 2604 } |
2088 /** | 2605 /** |
2089 * Set whether this accessor is a getter to correspond to the given value. | 2606 * Set whether this accessor is a getter to correspond to the given value. |
2090 * @param isGetter {@code true} if the accessor is a getter | 2607 * @param isGetter {@code true} if the accessor is a getter |
2091 */ | 2608 */ |
2092 void set getter(bool isGetter) { | 2609 void set getter(bool isGetter) { |
2093 setModifier(Modifier.GETTER, isGetter); | 2610 setModifier(Modifier.GETTER, isGetter); |
2094 } | 2611 } |
2095 /** | 2612 /** |
2096 * Set whether this accessor is a setter to correspond to the given value. | 2613 * Set whether this accessor is a setter to correspond to the given value. |
2097 * @param isSetter {@code true} if the accessor is a setter | 2614 * @param isSetter {@code true} if the accessor is a setter |
2098 */ | 2615 */ |
2099 void set setter(bool isSetter) { | 2616 void set setter(bool isSetter) { |
2100 setModifier(Modifier.SETTER, isSetter); | 2617 setModifier(Modifier.SETTER, isSetter); |
2101 } | 2618 } |
2619 void appendTo(StringBuffer builder) { | |
2620 builder.add(isGetter() ? "get " : "set "); | |
2621 builder.add(field.name); | |
2622 super.appendTo(builder); | |
2623 } | |
2102 } | 2624 } |
2103 /** | 2625 /** |
2104 * Instances of the class {@code ShowCombinatorImpl} implement a {@link ShowComb inator}. | 2626 * Instances of the class {@code ShowCombinatorImpl} implement a {@link ShowComb inator}. |
2105 */ | 2627 */ |
2106 class ShowCombinatorImpl implements ShowCombinator { | 2628 class ShowCombinatorImpl implements ShowCombinator { |
2107 /** | 2629 /** |
2108 * The names that are to be made visible in the importing library if they are defined in the | 2630 * The names that are to be made visible in the importing library if they are defined in the |
2109 * imported library. | 2631 * imported library. |
2110 */ | 2632 */ |
2111 List<String> _shownNames = StringUtilities.EMPTY_ARRAY; | 2633 List<String> _shownNames = StringUtilities.EMPTY_ARRAY; |
2112 /** | 2634 /** |
2113 * Initialize a newly created combinator. | 2635 * Initialize a newly created combinator. |
2114 */ | 2636 */ |
2115 ShowCombinatorImpl() : super() { | 2637 ShowCombinatorImpl() : super() { |
2116 } | 2638 } |
2117 List<String> get shownNames => _shownNames; | 2639 List<String> get shownNames => _shownNames; |
2118 /** | 2640 /** |
2119 * Set the names that are to be made visible in the importing library if they are defined in the | 2641 * Set the names that are to be made visible in the importing library if they are defined in the |
2120 * imported library to the given names. | 2642 * imported library to the given names. |
2121 * @param shownNames the names that are to be made visible in the importing li brary | 2643 * @param shownNames the names that are to be made visible in the importing li brary |
2122 */ | 2644 */ |
2123 void set shownNames2(List<String> shownNames) { | 2645 void set shownNames(List<String> shownNames2) { |
2124 this._shownNames = shownNames; | 2646 this._shownNames = shownNames2; |
2647 } | |
2648 String toString() { | |
2649 StringBuffer builder = new StringBuffer(); | |
2650 builder.add("show "); | |
2651 int count = _shownNames.length; | |
2652 for (int i = 0; i < count; i++) { | |
2653 if (i > 0) { | |
2654 builder.add(", "); | |
2655 } | |
2656 builder.add(_shownNames[i]); | |
2657 } | |
2658 return builder.toString(); | |
2125 } | 2659 } |
2126 } | 2660 } |
2127 /** | 2661 /** |
2128 * Instances of the class {@code TypeAliasElementImpl} implement a {@code TypeAl iasElement}. | 2662 * Instances of the class {@code TypeAliasElementImpl} implement a {@code TypeAl iasElement}. |
2129 */ | 2663 */ |
2130 class TypeAliasElementImpl extends ElementImpl implements TypeAliasElement { | 2664 class TypeAliasElementImpl extends ElementImpl implements TypeAliasElement { |
2131 /** | 2665 /** |
2132 * An array containing all of the parameters defined by this type alias. | 2666 * An array containing all of the parameters defined by this type alias. |
2133 */ | 2667 */ |
2134 List<ParameterElement> _parameters = ParameterElementImpl.EMPTY_ARRAY; | 2668 List<ParameterElement> _parameters = ParameterElementImpl.EMPTY_ARRAY; |
2135 /** | 2669 /** |
2136 * The type of function defined by this type alias. | 2670 * The type of function defined by this type alias. |
2137 */ | 2671 */ |
2138 FunctionType _type; | 2672 FunctionType _type; |
2139 /** | 2673 /** |
2140 * An array containing all of the type variables defined for this type. | 2674 * An array containing all of the type variables defined for this type. |
2141 */ | 2675 */ |
2142 List<TypeVariableElement> _typeVariables = TypeVariableElementImpl.EMPTY_ARRAY ; | 2676 List<TypeVariableElement> _typeVariables = TypeVariableElementImpl.EMPTY_ARRAY ; |
2143 /** | 2677 /** |
2144 * An empty array of type alias elements. | 2678 * An empty array of type alias elements. |
2145 */ | 2679 */ |
2146 static List<TypeAliasElement> EMPTY_ARRAY = new List<TypeAliasElement>.fixedLe ngth(0); | 2680 static List<TypeAliasElement> EMPTY_ARRAY = new List<TypeAliasElement>.fixedLe ngth(0); |
2147 /** | 2681 /** |
2148 * Initialize a newly created type alias element to have the given name. | 2682 * Initialize a newly created type alias element to have the given name. |
2149 * @param name the name of this element | 2683 * @param name the name of this element |
2150 */ | 2684 */ |
2151 TypeAliasElementImpl(Identifier name) : super.con1(name) { | 2685 TypeAliasElementImpl(Identifier name) : super.con1(name) { |
2152 } | 2686 } |
2153 ElementImpl getChild(String identifier) { | 2687 ElementImpl getChild(String identifier23) { |
2154 for (VariableElement parameter in _parameters) { | 2688 for (VariableElement parameter in _parameters) { |
2155 if ((parameter as VariableElementImpl).identifier == identifier) { | 2689 if (((parameter as VariableElementImpl)).identifier == identifier23) { |
2156 return parameter as VariableElementImpl; | 2690 return (parameter as VariableElementImpl); |
2157 } | 2691 } |
2158 } | 2692 } |
2159 for (TypeVariableElement typeVariable in _typeVariables) { | 2693 for (TypeVariableElement typeVariable in _typeVariables) { |
2160 if ((typeVariable as TypeVariableElementImpl).identifier == identifier) { | 2694 if (((typeVariable as TypeVariableElementImpl)).identifier == identifier23 ) { |
2161 return typeVariable as TypeVariableElementImpl; | 2695 return (typeVariable as TypeVariableElementImpl); |
2162 } | 2696 } |
2163 } | 2697 } |
2164 return null; | 2698 return null; |
2165 } | 2699 } |
2166 CompilationUnitElement get enclosingElement => super.enclosingElement as Compi lationUnitElement; | 2700 CompilationUnitElement get enclosingElement => (super.enclosingElement as Comp ilationUnitElement); |
2167 ElementKind get kind => ElementKind.TYPE_ALIAS; | 2701 ElementKind get kind => ElementKind.TYPE_ALIAS; |
2168 List<ParameterElement> get parameters => _parameters; | 2702 List<ParameterElement> get parameters => _parameters; |
2169 FunctionType get type => _type; | 2703 FunctionType get type => _type; |
2170 List<TypeVariableElement> get typeVariables => _typeVariables; | 2704 List<TypeVariableElement> get typeVariables => _typeVariables; |
2171 /** | 2705 /** |
2172 * Set the parameters defined by this type alias to the given parameters. | 2706 * Set the parameters defined by this type alias to the given parameters. |
2173 * @param parameters the parameters defined by this type alias | 2707 * @param parameters the parameters defined by this type alias |
2174 */ | 2708 */ |
2175 void set parameters8(List<ParameterElement> parameters) { | 2709 void set parameters(List<ParameterElement> parameters8) { |
2176 if (parameters != null) { | 2710 if (parameters8 != null) { |
2177 for (ParameterElement parameter in parameters) { | 2711 for (ParameterElement parameter in parameters8) { |
2178 (parameter as ParameterElementImpl).enclosingElement2 = this; | 2712 ((parameter as ParameterElementImpl)).enclosingElement = this; |
2179 } | 2713 } |
2180 } | 2714 } |
2181 this._parameters = parameters; | 2715 this._parameters = parameters8; |
2182 } | 2716 } |
2183 /** | 2717 /** |
2184 * Set the type of function defined by this type alias to the given type. | 2718 * Set the type of function defined by this type alias to the given type. |
2185 * @param type the type of function defined by this type alias | 2719 * @param type the type of function defined by this type alias |
2186 */ | 2720 */ |
2187 void set type12(FunctionType type) { | 2721 void set type(FunctionType type7) { |
2188 this._type = type; | 2722 this._type = type7; |
2189 } | 2723 } |
2190 /** | 2724 /** |
2191 * Set the type variables defined for this type to the given variables. | 2725 * Set the type variables defined for this type to the given variables. |
2192 * @param typeVariables the type variables defined for this type | 2726 * @param typeVariables the type variables defined for this type |
2193 */ | 2727 */ |
2194 void set typeVariables3(List<TypeVariableElement> typeVariables) { | 2728 void set typeVariables(List<TypeVariableElement> typeVariables3) { |
2195 for (TypeVariableElement variable in typeVariables) { | 2729 for (TypeVariableElement variable in typeVariables3) { |
2196 (variable as TypeVariableElementImpl).enclosingElement2 = this; | 2730 ((variable as TypeVariableElementImpl)).enclosingElement = this; |
2197 } | 2731 } |
2198 this._typeVariables = typeVariables; | 2732 this._typeVariables = typeVariables3; |
2733 } | |
2734 void appendTo(StringBuffer builder) { | |
2735 builder.add("typedef "); | |
2736 builder.add(name); | |
2737 int variableCount = _typeVariables.length; | |
2738 if (variableCount > 0) { | |
2739 builder.add("<"); | |
2740 for (int i = 0; i < variableCount; i++) { | |
2741 if (i > 0) { | |
2742 builder.add(", "); | |
2743 } | |
2744 ((_typeVariables[i] as TypeVariableElementImpl)).appendTo(builder); | |
2745 } | |
2746 builder.add(">"); | |
2747 } | |
2748 builder.add("("); | |
2749 int parameterCount = _parameters.length; | |
2750 for (int i = 0; i < parameterCount; i++) { | |
2751 if (i > 0) { | |
2752 builder.add(", "); | |
2753 } | |
2754 ((_parameters[i] as ParameterElementImpl)).appendTo(builder); | |
2755 } | |
2756 builder.add(")"); | |
2757 if (_type != null) { | |
2758 builder.add(" -> "); | |
2759 builder.add(_type.returnType); | |
2760 } | |
2199 } | 2761 } |
2200 } | 2762 } |
2201 /** | 2763 /** |
2202 * Instances of the class {@code TypeVariableElementImpl} implement a {@code Typ eVariableElement}. | 2764 * Instances of the class {@code TypeVariableElementImpl} implement a {@code Typ eVariableElement}. |
2203 */ | 2765 */ |
2204 class TypeVariableElementImpl extends ElementImpl implements TypeVariableElement { | 2766 class TypeVariableElementImpl extends ElementImpl implements TypeVariableElement { |
2205 /** | 2767 /** |
2206 * The type defined by this type variable. | 2768 * The type defined by this type variable. |
2207 */ | 2769 */ |
2208 TypeVariableType _type; | 2770 TypeVariableType _type; |
(...skipping 12 matching lines...) Expand all Loading... | |
2221 */ | 2783 */ |
2222 TypeVariableElementImpl(Identifier name) : super.con1(name) { | 2784 TypeVariableElementImpl(Identifier name) : super.con1(name) { |
2223 } | 2785 } |
2224 Type2 get bound => _bound; | 2786 Type2 get bound => _bound; |
2225 ElementKind get kind => ElementKind.TYPE_VARIABLE; | 2787 ElementKind get kind => ElementKind.TYPE_VARIABLE; |
2226 TypeVariableType get type => _type; | 2788 TypeVariableType get type => _type; |
2227 /** | 2789 /** |
2228 * Set the type representing the bound associated with this variable to the gi ven type. | 2790 * Set the type representing the bound associated with this variable to the gi ven type. |
2229 * @param bound the type representing the bound associated with this variable | 2791 * @param bound the type representing the bound associated with this variable |
2230 */ | 2792 */ |
2231 void set bound3(Type2 bound) { | 2793 void set bound(Type2 bound2) { |
2232 this._bound = bound; | 2794 this._bound = bound2; |
2233 } | 2795 } |
2234 /** | 2796 /** |
2235 * Set the type defined by this type variable to the given type | 2797 * Set the type defined by this type variable to the given type |
2236 * @param type the type defined by this type variable | 2798 * @param type the type defined by this type variable |
2237 */ | 2799 */ |
2238 void set type13(TypeVariableType type) { | 2800 void set type(TypeVariableType type8) { |
2239 this._type = type; | 2801 this._type = type8; |
2802 } | |
2803 void appendTo(StringBuffer builder) { | |
2804 builder.add(name); | |
2805 if (_bound != null) { | |
2806 builder.add(" extends "); | |
2807 builder.add(_bound); | |
2808 } | |
2240 } | 2809 } |
2241 } | 2810 } |
2242 /** | 2811 /** |
2243 * Instances of the class {@code VariableElementImpl} implement a {@code Variabl eElement}. | 2812 * Instances of the class {@code VariableElementImpl} implement a {@code Variabl eElement}. |
2244 */ | 2813 */ |
2245 class VariableElementImpl extends ElementImpl implements VariableElement { | 2814 class VariableElementImpl extends ElementImpl implements VariableElement { |
2246 /** | 2815 /** |
2247 * The declared type of this variable. | 2816 * The declared type of this variable. |
2248 */ | 2817 */ |
2249 Type2 _type; | 2818 Type2 _type; |
2250 /** | 2819 /** |
2251 * A synthetic function representing this variable's initializer, or {@code nu ll} if this variable | 2820 * A synthetic function representing this variable's initializer, or {@code nu ll} if this variable |
2252 * does not have an initializer. | 2821 * does not have an initializer. |
2253 */ | 2822 */ |
2254 FunctionElement _initializer; | 2823 FunctionElement _initializer; |
2255 /** | 2824 /** |
2825 * The offset to the beginning of the visible range for this element. | |
2826 */ | |
2827 int _visibleRangeOffset = 0; | |
2828 /** | |
2829 * The length of the visible range for this element, or {@code -1} if this ele ment does not have a | |
2830 * visible range. | |
2831 */ | |
2832 int _visibleRangeLength = -1; | |
2833 /** | |
2256 * An empty array of variable elements. | 2834 * An empty array of variable elements. |
2257 */ | 2835 */ |
2258 static List<VariableElement> EMPTY_ARRAY = new List<VariableElement>.fixedLeng th(0); | 2836 static List<VariableElement> EMPTY_ARRAY = new List<VariableElement>.fixedLeng th(0); |
2259 /** | 2837 /** |
2260 * Initialize a newly created variable element to have the given name. | 2838 * Initialize a newly created variable element to have the given name. |
2261 * @param name the name of this element | 2839 * @param name the name of this element |
2262 */ | 2840 */ |
2263 VariableElementImpl.con1(Identifier name) : super.con1(name) { | 2841 VariableElementImpl.con1(Identifier name) : super.con1(name) { |
2264 _jtd_constructor_155_impl(name); | 2842 _jtd_constructor_162_impl(name); |
2265 } | 2843 } |
2266 _jtd_constructor_155_impl(Identifier name) { | 2844 _jtd_constructor_162_impl(Identifier name) { |
2267 } | 2845 } |
2268 /** | 2846 /** |
2269 * Initialize a newly created variable element to have the given name. | 2847 * Initialize a newly created variable element to have the given name. |
2270 * @param name the name of this element | 2848 * @param name the name of this element |
2271 * @param nameOffset the offset of the name of this element in the file that c ontains the | 2849 * @param nameOffset the offset of the name of this element in the file that c ontains the |
2272 * declaration of this element | 2850 * declaration of this element |
2273 */ | 2851 */ |
2274 VariableElementImpl.con2(String name, int nameOffset) : super.con2(name, nameO ffset) { | 2852 VariableElementImpl.con2(String name, int nameOffset) : super.con2(name, nameO ffset) { |
2275 _jtd_constructor_156_impl(name, nameOffset); | 2853 _jtd_constructor_163_impl(name, nameOffset); |
2276 } | 2854 } |
2277 _jtd_constructor_156_impl(String name, int nameOffset) { | 2855 _jtd_constructor_163_impl(String name, int nameOffset) { |
2278 } | 2856 } |
2279 FunctionElement get initializer => _initializer; | 2857 FunctionElement get initializer => _initializer; |
2280 ElementKind get kind => ElementKind.VARIABLE; | 2858 ElementKind get kind => ElementKind.VARIABLE; |
2281 Type2 get type => _type; | 2859 Type2 get type => _type; |
2860 SourceRange get visibleRange { | |
2861 if (_visibleRangeLength < 0) { | |
2862 return null; | |
2863 } | |
2864 return new SourceRange(_visibleRangeOffset, _visibleRangeLength); | |
2865 } | |
2282 bool isConst() => hasModifier(Modifier.CONST); | 2866 bool isConst() => hasModifier(Modifier.CONST); |
2283 bool isFinal() => hasModifier(Modifier.FINAL); | 2867 bool isFinal() => hasModifier(Modifier.FINAL); |
2284 /** | 2868 /** |
2285 * Set whether this variable is const to correspond to the given value. | 2869 * Set whether this variable is const to correspond to the given value. |
2286 * @param isConst {@code true} if the variable is const | 2870 * @param isConst {@code true} if the variable is const |
2287 */ | 2871 */ |
2288 void set const2(bool isConst) { | 2872 void set const2(bool isConst) { |
2289 setModifier(Modifier.CONST, isConst); | 2873 setModifier(Modifier.CONST, isConst); |
2290 } | 2874 } |
2291 /** | 2875 /** |
2292 * Set whether this variable is final to correspond to the given value. | 2876 * Set whether this variable is final to correspond to the given value. |
2293 * @param isFinal {@code true} if the variable is final | 2877 * @param isFinal {@code true} if the variable is final |
2294 */ | 2878 */ |
2295 void set final2(bool isFinal) { | 2879 void set final2(bool isFinal) { |
2296 setModifier(Modifier.FINAL, isFinal); | 2880 setModifier(Modifier.FINAL, isFinal); |
2297 } | 2881 } |
2298 /** | 2882 /** |
2299 * Set the function representing this variable's initializer to the given func tion. | 2883 * Set the function representing this variable's initializer to the given func tion. |
2300 * @param initializer the function representing this variable's initializer | 2884 * @param initializer the function representing this variable's initializer |
2301 */ | 2885 */ |
2302 void set initializer3(FunctionElement initializer) { | 2886 void set initializer(FunctionElement initializer3) { |
2303 if (initializer != null) { | 2887 if (initializer3 != null) { |
2304 (initializer as FunctionElementImpl).enclosingElement2 = this; | 2888 ((initializer3 as FunctionElementImpl)).enclosingElement = this; |
2305 } | 2889 } |
2306 this._initializer = initializer; | 2890 this._initializer = initializer3; |
2307 } | 2891 } |
2308 /** | 2892 /** |
2309 * Set the declared type of this variable to the given type. | 2893 * Set the declared type of this variable to the given type. |
2310 * @param type the declared type of this variable | 2894 * @param type the declared type of this variable |
2311 */ | 2895 */ |
2312 void set type14(Type2 type) { | 2896 void set type(Type2 type9) { |
2313 this._type = type; | 2897 this._type = type9; |
2314 } | 2898 } |
2315 String toString() => "variable ${type} ${name}"; | 2899 /** |
2900 * Set the visible range for this element to the range starting at the given o ffset with the given | |
2901 * length. | |
2902 * @param offset the offset to the beginning of the visible range for this ele ment | |
2903 * @param length the length of the visible range for this element, or {@code - 1} if this element | |
2904 * does not have a visible range | |
2905 */ | |
2906 void setVisibleRange(int offset, int length) { | |
2907 _visibleRangeOffset = offset; | |
2908 _visibleRangeLength = length; | |
2909 } | |
2910 void appendTo(StringBuffer builder) { | |
2911 builder.add(type); | |
2912 builder.add(" "); | |
2913 builder.add(name); | |
2914 } | |
2316 } | 2915 } |
2317 /** | 2916 /** |
2318 * The unique instance of the class {@code BottomTypeImpl} implements the type { @code bottom}. | 2917 * The unique instance of the class {@code BottomTypeImpl} implements the type { @code bottom}. |
2319 */ | 2918 */ |
2320 class BottomTypeImpl extends TypeImpl { | 2919 class BottomTypeImpl extends TypeImpl { |
2321 /** | 2920 /** |
2322 * The unique instance of this class. | 2921 * The unique instance of this class. |
2323 */ | 2922 */ |
2324 static BottomTypeImpl _INSTANCE = new BottomTypeImpl(); | 2923 static BottomTypeImpl _INSTANCE = new BottomTypeImpl(); |
2325 /** | 2924 /** |
2326 * Return the unique instance of this class. | 2925 * Return the unique instance of this class. |
2327 * @return the unique instance of this class | 2926 * @return the unique instance of this class |
2328 */ | 2927 */ |
2329 static BottomTypeImpl get instance => _INSTANCE; | 2928 static BottomTypeImpl get instance => _INSTANCE; |
2330 /** | 2929 /** |
2331 * Prevent the creation of instances of this class. | 2930 * Prevent the creation of instances of this class. |
2332 */ | 2931 */ |
2333 BottomTypeImpl() : super(null, "<bottom>") { | 2932 BottomTypeImpl() : super(null, "<bottom>") { |
2334 } | 2933 } |
2335 bool operator ==(Object object) => object == this; | 2934 bool operator ==(Object object) => identical(object, this); |
2336 bool isMoreSpecificThan(Type2 type) => true; | 2935 bool isMoreSpecificThan(Type2 type) => true; |
2337 bool isSubtypeOf(Type2 type) => true; | 2936 bool isSubtypeOf(Type2 type) => true; |
2338 bool isSupertypeOf(Type2 type) => false; | 2937 bool isSupertypeOf(Type2 type) => false; |
2339 BottomTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTyp es) => this; | 2938 BottomTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTyp es) => this; |
2340 } | 2939 } |
2341 /** | 2940 /** |
2342 * The unique instance of the class {@code DynamicTypeImpl} implements the type {@code dynamic}. | 2941 * The unique instance of the class {@code DynamicTypeImpl} implements the type {@code dynamic}. |
2343 */ | 2942 */ |
2344 class DynamicTypeImpl extends TypeImpl { | 2943 class DynamicTypeImpl extends TypeImpl { |
2345 /** | 2944 /** |
2346 * The unique instance of this class. | 2945 * The unique instance of this class. |
2347 */ | 2946 */ |
2348 static DynamicTypeImpl _INSTANCE = new DynamicTypeImpl(); | 2947 static DynamicTypeImpl _INSTANCE = new DynamicTypeImpl(); |
2349 /** | 2948 /** |
2350 * Return the unique instance of this class. | 2949 * Return the unique instance of this class. |
2351 * @return the unique instance of this class | 2950 * @return the unique instance of this class |
2352 */ | 2951 */ |
2353 static DynamicTypeImpl get instance => _INSTANCE; | 2952 static DynamicTypeImpl get instance => _INSTANCE; |
2354 /** | 2953 /** |
2355 * Prevent the creation of instances of this class. | 2954 * Prevent the creation of instances of this class. |
2356 */ | 2955 */ |
2357 DynamicTypeImpl() : super(new DynamicElementImpl(), Keyword.DYNAMIC.syntax) { | 2956 DynamicTypeImpl() : super(new DynamicElementImpl(), Keyword.DYNAMIC.syntax) { |
2358 (element as DynamicElementImpl).type10 = this; | 2957 ((element as DynamicElementImpl)).type = this; |
2359 } | 2958 } |
2360 bool operator ==(Object object) => object is DynamicTypeImpl; | 2959 bool operator ==(Object object) => object is DynamicTypeImpl; |
2361 bool isMoreSpecificThan(Type2 type) => false; | 2960 bool isMoreSpecificThan(Type2 type) => false; |
2362 bool isSubtypeOf(Type2 type) => false; | 2961 bool isSubtypeOf(Type2 type) => false; |
2363 bool isSupertypeOf(Type2 type) => true; | 2962 bool isSupertypeOf(Type2 type) => true; |
2364 DynamicTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTy pes) => this; | 2963 DynamicTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTy pes) => this; |
2365 } | 2964 } |
2366 /** | 2965 /** |
2367 * Instances of the class {@code FunctionTypeImpl} defines the behavior common t o objects | 2966 * Instances of the class {@code FunctionTypeImpl} defines the behavior common t o objects |
2368 * representing the type of a function, method, constructor, getter, or setter. | 2967 * representing the type of a function, method, constructor, getter, or setter. |
2369 */ | 2968 */ |
2370 class FunctionTypeImpl extends TypeImpl implements FunctionType { | 2969 class FunctionTypeImpl extends TypeImpl implements FunctionType { |
2371 /** | 2970 /** |
2372 * Return {@code true} if all of the types in the first array are equal to the corresponding types | 2971 * Return {@code true} if all of the types in the first array are equal to the corresponding types |
2373 * in the second array. | 2972 * in the second array. |
2374 * @param firstTypes the first array of types being compared | 2973 * @param firstTypes the first array of types being compared |
2375 * @param secondTypes the second array of types being compared | 2974 * @param secondTypes the second array of types being compared |
2376 * @return {@code true} if all of the types in the first array are equal to th e corresponding | 2975 * @return {@code true} if all of the types in the first array are equal to th e corresponding |
2377 * types in the second array | 2976 * types in the second array |
2378 */ | 2977 */ |
2379 static bool equals2(LinkedHashMap<String, Type2> firstTypes, LinkedHashMap<Str ing, Type2> secondTypes) { | 2978 static bool equals2(LinkedHashMap<String, Type2> firstTypes, LinkedHashMap<Str ing, Type2> secondTypes) { |
2380 if (secondTypes.length != firstTypes.length) { | 2979 if (secondTypes.length != firstTypes.length) { |
2381 return false; | 2980 return false; |
2382 } | 2981 } |
2383 HasNextIterator<MapEntry<String, Type2>> firstIterator = new HasNextIterator (getMapEntrySet(firstTypes).iterator); | 2982 JavaIterator<MapEntry<String, Type2>> firstIterator = new JavaIterator(getMa pEntrySet(firstTypes)); |
2384 HasNextIterator<MapEntry<String, Type2>> secondIterator = new HasNextIterato r(getMapEntrySet(firstTypes).iterator); | 2983 JavaIterator<MapEntry<String, Type2>> secondIterator = new JavaIterator(getM apEntrySet(firstTypes)); |
2385 while (firstIterator.hasNext) { | 2984 while (firstIterator.hasNext) { |
2386 MapEntry<String, Type2> firstEntry = firstIterator.next(); | 2985 MapEntry<String, Type2> firstEntry = firstIterator.next(); |
2387 MapEntry<String, Type2> secondEntry = secondIterator.next(); | 2986 MapEntry<String, Type2> secondEntry = secondIterator.next(); |
2388 if (firstEntry.getKey() != secondEntry.getKey() || firstEntry.getValue() ! = secondEntry.getValue()) { | 2987 if (firstEntry.getKey() != secondEntry.getKey() || firstEntry.getValue() ! = secondEntry.getValue()) { |
2389 return false; | 2988 return false; |
2390 } | 2989 } |
2391 } | 2990 } |
2392 return true; | 2991 return true; |
2393 } | 2992 } |
2394 /** | 2993 /** |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2430 /** | 3029 /** |
2431 * The type of object returned by this type of function. | 3030 * The type of object returned by this type of function. |
2432 */ | 3031 */ |
2433 Type2 _returnType = VoidTypeImpl.instance; | 3032 Type2 _returnType = VoidTypeImpl.instance; |
2434 /** | 3033 /** |
2435 * Initialize a newly created function type to be declared by the given elemen t and to have the | 3034 * Initialize a newly created function type to be declared by the given elemen t and to have the |
2436 * given name. | 3035 * given name. |
2437 * @param element the element representing the declaration of the function typ e | 3036 * @param element the element representing the declaration of the function typ e |
2438 */ | 3037 */ |
2439 FunctionTypeImpl.con1(ExecutableElement element) : super(element, element == n ull ? null : element.name) { | 3038 FunctionTypeImpl.con1(ExecutableElement element) : super(element, element == n ull ? null : element.name) { |
2440 _jtd_constructor_200_impl(element); | 3039 _jtd_constructor_209_impl(element); |
2441 } | 3040 } |
2442 _jtd_constructor_200_impl(ExecutableElement element) { | 3041 _jtd_constructor_209_impl(ExecutableElement element) { |
2443 } | 3042 } |
2444 /** | 3043 /** |
2445 * Initialize a newly created function type to be declared by the given elemen t and to have the | 3044 * Initialize a newly created function type to be declared by the given elemen t and to have the |
2446 * given name. | 3045 * given name. |
2447 * @param element the element representing the declaration of the function typ e | 3046 * @param element the element representing the declaration of the function typ e |
2448 */ | 3047 */ |
2449 FunctionTypeImpl.con2(TypeAliasElement element) : super(element, element == nu ll ? null : element.name) { | 3048 FunctionTypeImpl.con2(TypeAliasElement element) : super(element, element == nu ll ? null : element.name) { |
2450 _jtd_constructor_201_impl(element); | 3049 _jtd_constructor_210_impl(element); |
2451 } | 3050 } |
2452 _jtd_constructor_201_impl(TypeAliasElement element) { | 3051 _jtd_constructor_210_impl(TypeAliasElement element) { |
2453 } | 3052 } |
2454 bool operator ==(Object object) { | 3053 bool operator ==(Object object) { |
2455 if (object is! FunctionTypeImpl) { | 3054 if (object is! FunctionTypeImpl) { |
2456 return false; | 3055 return false; |
2457 } | 3056 } |
2458 FunctionTypeImpl otherType = object as FunctionTypeImpl; | 3057 FunctionTypeImpl otherType = (object as FunctionTypeImpl); |
2459 return element == otherType.element && JavaArrays.equals(_normalParameterTyp es, otherType._normalParameterTypes) && JavaArrays.equals(_optionalParameterType s, otherType._optionalParameterTypes) && equals2(_namedParameterTypes, otherType ._namedParameterTypes); | 3058 return element == otherType.element && JavaArrays.equals(_normalParameterTyp es, otherType._normalParameterTypes) && JavaArrays.equals(_optionalParameterType s, otherType._optionalParameterTypes) && equals2(_namedParameterTypes, otherType ._namedParameterTypes); |
2460 } | 3059 } |
2461 Map<String, Type2> get namedParameterTypes => _namedParameterTypes; | 3060 Map<String, Type2> get namedParameterTypes => _namedParameterTypes; |
2462 List<Type2> get normalParameterTypes => _normalParameterTypes; | 3061 List<Type2> get normalParameterTypes => _normalParameterTypes; |
2463 List<Type2> get optionalParameterTypes => _optionalParameterTypes; | 3062 List<Type2> get optionalParameterTypes => _optionalParameterTypes; |
2464 Type2 get returnType => _returnType; | 3063 Type2 get returnType => _returnType; |
2465 List<Type2> get typeArguments => _typeArguments; | 3064 List<Type2> get typeArguments => _typeArguments; |
2466 int get hashCode { | 3065 int get hashCode { |
2467 Element element29 = element; | 3066 Element element34 = element; |
2468 if (element29 == null) { | 3067 if (element34 == null) { |
2469 return 0; | 3068 return 0; |
2470 } | 3069 } |
2471 return element29.hashCode; | 3070 return element34.hashCode; |
2472 } | 3071 } |
2473 bool isSubtypeOf(Type2 type) { | 3072 bool isSubtypeOf(Type2 type) { |
2474 if (type == null || type is! FunctionType) { | 3073 if (type == null || type is! FunctionType) { |
2475 return false; | 3074 return false; |
2476 } else if (this == type || this == type) { | 3075 } else if (identical(this, type) || this == type) { |
2477 return true; | 3076 return true; |
2478 } | 3077 } |
2479 FunctionType t = this; | 3078 FunctionType t = this; |
2480 FunctionType s = type as FunctionType; | 3079 FunctionType s = (type as FunctionType); |
2481 if (t.normalParameterTypes.length != s.normalParameterTypes.length) { | 3080 if (t.normalParameterTypes.length != s.normalParameterTypes.length) { |
2482 return false; | 3081 return false; |
2483 } else if (t.normalParameterTypes.length > 0) { | 3082 } else if (t.normalParameterTypes.length > 0) { |
2484 List<Type2> tTypes = t.normalParameterTypes; | 3083 List<Type2> tTypes = t.normalParameterTypes; |
2485 List<Type2> sTypes = s.normalParameterTypes; | 3084 List<Type2> sTypes = s.normalParameterTypes; |
2486 for (int i = 0; i < tTypes.length; i++) { | 3085 for (int i = 0; i < tTypes.length; i++) { |
2487 if (!tTypes[i].isAssignableTo(sTypes[i])) { | 3086 if (!tTypes[i].isAssignableTo(sTypes[i])) { |
2488 return false; | 3087 return false; |
2489 } | 3088 } |
2490 } | 3089 } |
(...skipping 14 matching lines...) Expand all Loading... | |
2505 } | 3104 } |
2506 } else if (s.optionalParameterTypes.length > 0) { | 3105 } else if (s.optionalParameterTypes.length > 0) { |
2507 return false; | 3106 return false; |
2508 } | 3107 } |
2509 if (t.namedParameterTypes.length > 0) { | 3108 if (t.namedParameterTypes.length > 0) { |
2510 Map<String, Type2> namedTypesT = t.namedParameterTypes; | 3109 Map<String, Type2> namedTypesT = t.namedParameterTypes; |
2511 Map<String, Type2> namedTypesS = s.namedParameterTypes; | 3110 Map<String, Type2> namedTypesS = s.namedParameterTypes; |
2512 if (namedTypesT.length < namedTypesS.length) { | 3111 if (namedTypesT.length < namedTypesS.length) { |
2513 return false; | 3112 return false; |
2514 } | 3113 } |
2515 HasNextIterator<MapEntry<String, Type2>> iteratorS = new HasNextIterator(g etMapEntrySet(namedTypesS).iterator); | 3114 JavaIterator<MapEntry<String, Type2>> iteratorS = new JavaIterator(getMapE ntrySet(namedTypesS)); |
2516 while (iteratorS.hasNext) { | 3115 while (iteratorS.hasNext) { |
2517 MapEntry<String, Type2> entryS = iteratorS.next(); | 3116 MapEntry<String, Type2> entryS = iteratorS.next(); |
2518 Type2 typeT = namedTypesT[entryS.getKey()]; | 3117 Type2 typeT = namedTypesT[entryS.getKey()]; |
2519 if (typeT == null) { | 3118 if (typeT == null) { |
2520 return false; | 3119 return false; |
2521 } | 3120 } |
2522 if (!entryS.getValue().isAssignableTo(typeT)) { | 3121 if (!entryS.getValue().isAssignableTo(typeT)) { |
2523 return false; | 3122 return false; |
2524 } | 3123 } |
2525 } | 3124 } |
2526 } else if (s.namedParameterTypes.length > 0) { | 3125 } else if (s.namedParameterTypes.length > 0) { |
2527 return false; | 3126 return false; |
2528 } | 3127 } |
2529 return s.returnType == VoidTypeImpl.instance || t.returnType.isAssignableTo( s.returnType); | 3128 return s.returnType == VoidTypeImpl.instance || t.returnType.isAssignableTo( s.returnType); |
2530 } | 3129 } |
2531 /** | 3130 /** |
2532 * Set the mapping of the names of named parameters to the types of the named parameters of this | 3131 * Set the mapping of the names of named parameters to the types of the named parameters of this |
2533 * type of function to the given mapping. | 3132 * type of function to the given mapping. |
2534 * @param namedParameterTypes the mapping of the names of named parameters to the types of the | 3133 * @param namedParameterTypes the mapping of the names of named parameters to the types of the |
2535 * named parameters of this type of function | 3134 * named parameters of this type of function |
2536 */ | 3135 */ |
2537 void set namedParameterTypes2(LinkedHashMap<String, Type2> namedParameterTypes ) { | 3136 void set namedParameterTypes(LinkedHashMap<String, Type2> namedParameterTypes2 ) { |
2538 this._namedParameterTypes = namedParameterTypes; | 3137 this._namedParameterTypes = namedParameterTypes2; |
2539 } | 3138 } |
2540 /** | 3139 /** |
2541 * Set the types of the normal parameters of this type of function to the type s in the given | 3140 * Set the types of the normal parameters of this type of function to the type s in the given |
2542 * array. | 3141 * array. |
2543 * @param normalParameterTypes the types of the normal parameters of this type of function | 3142 * @param normalParameterTypes the types of the normal parameters of this type of function |
2544 */ | 3143 */ |
2545 void set normalParameterTypes2(List<Type2> normalParameterTypes) { | 3144 void set normalParameterTypes(List<Type2> normalParameterTypes2) { |
2546 this._normalParameterTypes = normalParameterTypes; | 3145 this._normalParameterTypes = normalParameterTypes2; |
2547 } | 3146 } |
2548 /** | 3147 /** |
2549 * Set the types of the optional parameters of this type of function to the ty pes in the given | 3148 * Set the types of the optional parameters of this type of function to the ty pes in the given |
2550 * array. | 3149 * array. |
2551 * @param optionalParameterTypes the types of the optional parameters of this type of function | 3150 * @param optionalParameterTypes the types of the optional parameters of this type of function |
2552 */ | 3151 */ |
2553 void set optionalParameterTypes2(List<Type2> optionalParameterTypes) { | 3152 void set optionalParameterTypes(List<Type2> optionalParameterTypes2) { |
2554 this._optionalParameterTypes = optionalParameterTypes; | 3153 this._optionalParameterTypes = optionalParameterTypes2; |
2555 } | 3154 } |
2556 /** | 3155 /** |
2557 * Set the type of object returned by this type of function to the given type. | 3156 * Set the type of object returned by this type of function to the given type. |
2558 * @param returnType the type of object returned by this type of function | 3157 * @param returnType the type of object returned by this type of function |
2559 */ | 3158 */ |
2560 void set returnType7(Type2 returnType) { | 3159 void set returnType(Type2 returnType3) { |
2561 this._returnType = returnType; | 3160 this._returnType = returnType3; |
2562 } | 3161 } |
2563 /** | 3162 /** |
2564 * Set the actual types of the type arguments to the given types. | 3163 * Set the actual types of the type arguments to the given types. |
2565 * @param typeArguments the actual types of the type arguments | 3164 * @param typeArguments the actual types of the type arguments |
2566 */ | 3165 */ |
2567 void set typeArguments4(List<Type2> typeArguments) { | 3166 void set typeArguments(List<Type2> typeArguments4) { |
2568 this._typeArguments = typeArguments; | 3167 this._typeArguments = typeArguments4; |
2569 } | 3168 } |
2570 FunctionTypeImpl substitute4(List<Type2> argumentTypes) => substitute2(argumen tTypes, typeArguments); | 3169 FunctionTypeImpl substitute4(List<Type2> argumentTypes) => substitute2(argumen tTypes, typeArguments); |
2571 FunctionTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterT ypes) { | 3170 FunctionTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterT ypes) { |
2572 if (argumentTypes.length != parameterTypes.length) { | 3171 if (argumentTypes.length != parameterTypes.length) { |
2573 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes. length}) != parameterTypes.length (${parameterTypes.length})"); | 3172 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes. length}) != parameterTypes.length (${parameterTypes.length})"); |
2574 } | 3173 } |
2575 if (argumentTypes.length == 0) { | 3174 if (argumentTypes.length == 0) { |
2576 return this; | 3175 return this; |
2577 } | 3176 } |
2578 Element element30 = element; | 3177 Element element35 = element; |
2579 FunctionTypeImpl newType = (element30 is ExecutableElement) ? new FunctionTy peImpl.con1(element30 as ExecutableElement) : new FunctionTypeImpl.con2(element3 0 as TypeAliasElement); | 3178 FunctionTypeImpl newType = (element35 is ExecutableElement) ? new FunctionTy peImpl.con1((element35 as ExecutableElement)) : new FunctionTypeImpl.con2((eleme nt35 as TypeAliasElement)); |
2580 newType.returnType7 = _returnType.substitute2(argumentTypes, parameterTypes) ; | 3179 newType.returnType = _returnType.substitute2(argumentTypes, parameterTypes); |
2581 newType.normalParameterTypes2 = TypeImpl.substitute(_normalParameterTypes, a rgumentTypes, parameterTypes); | 3180 newType.normalParameterTypes = TypeImpl.substitute(_normalParameterTypes, ar gumentTypes, parameterTypes); |
2582 newType.optionalParameterTypes2 = TypeImpl.substitute(_optionalParameterType s, argumentTypes, parameterTypes); | 3181 newType.optionalParameterTypes = TypeImpl.substitute(_optionalParameterTypes , argumentTypes, parameterTypes); |
2583 newType.namedParameterTypes2 = substitute3(_namedParameterTypes, argumentTyp es, parameterTypes); | 3182 newType.namedParameterTypes = substitute3(_namedParameterTypes, argumentType s, parameterTypes); |
2584 return newType; | 3183 return newType; |
2585 } | 3184 } |
2586 String toString() { | 3185 void appendTo(StringBuffer builder) { |
2587 StringBuffer builder = new StringBuffer(); | |
2588 builder.add("("); | 3186 builder.add("("); |
2589 bool needsComma = false; | 3187 bool needsComma = false; |
2590 if (_normalParameterTypes.length > 0) { | 3188 if (_normalParameterTypes.length > 0) { |
2591 for (Type2 type in _normalParameterTypes) { | 3189 for (Type2 type in _normalParameterTypes) { |
2592 if (needsComma) { | 3190 if (needsComma) { |
2593 builder.add(", "); | 3191 builder.add(", "); |
2594 } else { | 3192 } else { |
2595 needsComma = true; | 3193 needsComma = true; |
2596 } | 3194 } |
2597 builder.add(type); | 3195 ((type as TypeImpl)).appendTo(builder); |
2598 } | 3196 } |
2599 } | 3197 } |
2600 if (_optionalParameterTypes.length > 0) { | 3198 if (_optionalParameterTypes.length > 0) { |
2601 if (needsComma) { | 3199 if (needsComma) { |
2602 builder.add(", "); | 3200 builder.add(", "); |
2603 needsComma = false; | 3201 needsComma = false; |
2604 } | 3202 } |
2605 builder.add("["); | 3203 builder.add("["); |
2606 for (Type2 type in _optionalParameterTypes) { | 3204 for (Type2 type in _optionalParameterTypes) { |
2607 if (needsComma) { | 3205 if (needsComma) { |
2608 builder.add(", "); | 3206 builder.add(", "); |
2609 } else { | 3207 } else { |
2610 needsComma = true; | 3208 needsComma = true; |
2611 } | 3209 } |
2612 builder.add(type); | 3210 ((type as TypeImpl)).appendTo(builder); |
2613 } | 3211 } |
2614 builder.add("]"); | 3212 builder.add("]"); |
2615 needsComma = true; | 3213 needsComma = true; |
2616 } | 3214 } |
2617 if (_namedParameterTypes.length > 0) { | 3215 if (_namedParameterTypes.length > 0) { |
2618 if (needsComma) { | 3216 if (needsComma) { |
2619 builder.add(", "); | 3217 builder.add(", "); |
2620 needsComma = false; | 3218 needsComma = false; |
2621 } | 3219 } |
2622 builder.add("{"); | 3220 builder.add("{"); |
2623 for (MapEntry<String, Type2> entry in getMapEntrySet(_namedParameterTypes) ) { | 3221 for (MapEntry<String, Type2> entry in getMapEntrySet(_namedParameterTypes) ) { |
2624 if (needsComma) { | 3222 if (needsComma) { |
2625 builder.add(", "); | 3223 builder.add(", "); |
2626 } else { | 3224 } else { |
2627 needsComma = true; | 3225 needsComma = true; |
2628 } | 3226 } |
2629 builder.add(entry.getKey()); | 3227 builder.add(entry.getKey()); |
2630 builder.add(": "); | 3228 builder.add(": "); |
2631 builder.add(entry.getValue()); | 3229 ((entry.getValue() as TypeImpl)).appendTo(builder); |
2632 } | 3230 } |
2633 builder.add("}"); | 3231 builder.add("}"); |
2634 needsComma = true; | 3232 needsComma = true; |
2635 } | 3233 } |
2636 builder.add(") -> "); | 3234 builder.add(") -> "); |
2637 builder.add(_returnType); | 3235 ((_returnType as TypeImpl)).appendTo(builder); |
2638 return builder.toString(); | |
2639 } | 3236 } |
2640 } | 3237 } |
2641 /** | 3238 /** |
2642 * Instances of the class {@code InterfaceTypeImpl} defines the behavior common to objects | 3239 * Instances of the class {@code InterfaceTypeImpl} defines the behavior common to objects |
2643 * representing the type introduced by either a class or an interface, or a refe rence to such a | 3240 * representing the type introduced by either a class or an interface, or a refe rence to such a |
2644 * type. | 3241 * type. |
2645 */ | 3242 */ |
2646 class InterfaceTypeImpl extends TypeImpl implements InterfaceType { | 3243 class InterfaceTypeImpl extends TypeImpl implements InterfaceType { |
2647 /** | 3244 /** |
2648 * An empty array of types. | 3245 * An empty array of types. |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2699 /** | 3296 /** |
2700 * Returns the set of all superinterfaces of the passed {@link Type}. This is a recursive method, | 3297 * Returns the set of all superinterfaces of the passed {@link Type}. This is a recursive method, |
2701 * callers should call the public {@link #computeSuperinterfaceSet(Type)}. | 3298 * callers should call the public {@link #computeSuperinterfaceSet(Type)}. |
2702 * @param type the {@link Type} to compute the set of superinterfaces of | 3299 * @param type the {@link Type} to compute the set of superinterfaces of |
2703 * @param set a {@link HashSet} used recursively by this method | 3300 * @param set a {@link HashSet} used recursively by this method |
2704 * @return the {@link Set} of superinterfaces of the passed {@link Type} | 3301 * @return the {@link Set} of superinterfaces of the passed {@link Type} |
2705 * @see #computeSuperinterfaceSet(Type) | 3302 * @see #computeSuperinterfaceSet(Type) |
2706 * @see #getLeastUpperBound(Type) | 3303 * @see #getLeastUpperBound(Type) |
2707 */ | 3304 */ |
2708 static Set<InterfaceType> computeSuperinterfaceSet2(InterfaceType type, Set<In terfaceType> set) { | 3305 static Set<InterfaceType> computeSuperinterfaceSet2(InterfaceType type, Set<In terfaceType> set) { |
2709 Element element31 = type.element; | 3306 Element element36 = type.element; |
2710 if (element31 != null && element31 is ClassElement) { | 3307 if (element36 != null && element36 is ClassElement) { |
2711 ClassElement classElement = element31 as ClassElement; | 3308 ClassElement classElement = (element36 as ClassElement); |
2712 List<InterfaceType> superinterfaces = classElement.interfaces; | 3309 List<InterfaceType> superinterfaces = classElement.interfaces; |
2713 for (InterfaceType superinterface in superinterfaces) { | 3310 for (InterfaceType superinterface in superinterfaces) { |
2714 javaSetAdd(set, superinterface); | 3311 javaSetAdd(set, superinterface); |
2715 computeSuperinterfaceSet2(superinterface, set); | 3312 computeSuperinterfaceSet2(superinterface, set); |
2716 } | 3313 } |
2717 InterfaceType supertype4 = classElement.supertype; | 3314 InterfaceType supertype4 = classElement.supertype; |
2718 if (supertype4 != null) { | 3315 if (supertype4 != null) { |
2719 javaSetAdd(set, supertype4); | 3316 javaSetAdd(set, supertype4); |
2720 computeSuperinterfaceSet2(supertype4, set); | 3317 computeSuperinterfaceSet2(supertype4, set); |
2721 } | 3318 } |
2722 } | 3319 } |
2723 return set; | 3320 return set; |
2724 } | 3321 } |
2725 /** | 3322 /** |
2726 * An array containing the actual types of the type arguments. | 3323 * An array containing the actual types of the type arguments. |
2727 */ | 3324 */ |
2728 List<Type2> _typeArguments = TypeImpl.EMPTY_ARRAY; | 3325 List<Type2> _typeArguments = TypeImpl.EMPTY_ARRAY; |
2729 /** | 3326 /** |
2730 * Initialize a newly created type to be declared by the given element. | 3327 * Initialize a newly created type to be declared by the given element. |
2731 * @param element the element representing the declaration of the type | 3328 * @param element the element representing the declaration of the type |
2732 */ | 3329 */ |
2733 InterfaceTypeImpl.con1(ClassElement element) : super(element, element.name) { | 3330 InterfaceTypeImpl.con1(ClassElement element) : super(element, element.name) { |
2734 _jtd_constructor_202_impl(element); | 3331 _jtd_constructor_211_impl(element); |
2735 } | 3332 } |
2736 _jtd_constructor_202_impl(ClassElement element) { | 3333 _jtd_constructor_211_impl(ClassElement element) { |
2737 } | 3334 } |
2738 /** | 3335 /** |
2739 * Initialize a newly created type to have the given name. This constructor sh ould only be used in | 3336 * Initialize a newly created type to have the given name. This constructor sh ould only be used in |
2740 * cases where there is no declaration of the type. | 3337 * cases where there is no declaration of the type. |
2741 * @param name the name of the type | 3338 * @param name the name of the type |
2742 */ | 3339 */ |
2743 InterfaceTypeImpl.con2(String name) : super(null, name) { | 3340 InterfaceTypeImpl.con2(String name) : super(null, name) { |
2744 _jtd_constructor_203_impl(name); | 3341 _jtd_constructor_212_impl(name); |
2745 } | 3342 } |
2746 _jtd_constructor_203_impl(String name) { | 3343 _jtd_constructor_212_impl(String name) { |
2747 } | 3344 } |
2748 bool operator ==(Object object) { | 3345 bool operator ==(Object object) { |
2749 if (object is! InterfaceTypeImpl) { | 3346 if (object is! InterfaceTypeImpl) { |
2750 return false; | 3347 return false; |
2751 } | 3348 } |
2752 InterfaceTypeImpl otherType = object as InterfaceTypeImpl; | 3349 InterfaceTypeImpl otherType = (object as InterfaceTypeImpl); |
2753 return element == otherType.element && JavaArrays.equals(_typeArguments, oth erType._typeArguments); | 3350 return element == otherType.element && JavaArrays.equals(_typeArguments, oth erType._typeArguments); |
2754 } | 3351 } |
2755 ClassElement get element => super.element as ClassElement; | 3352 ClassElement get element => (super.element as ClassElement); |
2756 Type2 getLeastUpperBound(Type2 type) { | 3353 Type2 getLeastUpperBound(Type2 type) { |
2757 Type2 dynamicType = DynamicTypeImpl.instance; | 3354 Type2 dynamicType = DynamicTypeImpl.instance; |
2758 if (this == dynamicType || type == dynamicType) { | 3355 if (identical(this, dynamicType) || identical(type, dynamicType)) { |
2759 return dynamicType; | 3356 return dynamicType; |
2760 } | 3357 } |
2761 if (type == null || type is! InterfaceType) { | 3358 if (type == null || type is! InterfaceType) { |
2762 return null; | 3359 return null; |
2763 } | 3360 } |
2764 InterfaceType i = this; | 3361 InterfaceType i = this; |
2765 InterfaceType j = type as InterfaceType; | 3362 InterfaceType j = (type as InterfaceType); |
2766 Set<InterfaceType> si = computeSuperinterfaceSet(i); | 3363 Set<InterfaceType> si = computeSuperinterfaceSet(i); |
2767 Set<InterfaceType> sj = computeSuperinterfaceSet(j); | 3364 Set<InterfaceType> sj = computeSuperinterfaceSet(j); |
2768 javaSetAdd(si, i); | 3365 javaSetAdd(si, i); |
2769 javaSetAdd(sj, j); | 3366 javaSetAdd(sj, j); |
2770 si.retainAll(sj); | 3367 si.retainAll(sj); |
2771 Set<InterfaceType> s = si; | 3368 Set<InterfaceType> s = si; |
2772 List<InterfaceType> sn = new List.from(s); | 3369 List<InterfaceType> sn = new List.from(s); |
2773 List<int> depths = new List<int>.fixedLength(sn.length); | 3370 List<int> depths = new List<int>.fixedLength(sn.length); |
2774 int maxDepth = 0; | 3371 int maxDepth = 0; |
2775 for (int n = 0; n < sn.length; n++) { | 3372 for (int n = 0; n < sn.length; n++) { |
(...skipping 16 matching lines...) Expand all Loading... | |
2792 } | 3389 } |
2793 } | 3390 } |
2794 return null; | 3391 return null; |
2795 } | 3392 } |
2796 Type2 get superclass { | 3393 Type2 get superclass { |
2797 ClassElement classElement = element; | 3394 ClassElement classElement = element; |
2798 return element.supertype.substitute2(_typeArguments, TypeVariableTypeImpl.ge tTypes(classElement.typeVariables)); | 3395 return element.supertype.substitute2(_typeArguments, TypeVariableTypeImpl.ge tTypes(classElement.typeVariables)); |
2799 } | 3396 } |
2800 List<Type2> get typeArguments => _typeArguments; | 3397 List<Type2> get typeArguments => _typeArguments; |
2801 int get hashCode { | 3398 int get hashCode { |
2802 ClassElement element32 = element; | 3399 ClassElement element37 = element; |
2803 if (element32 == null) { | 3400 if (element37 == null) { |
2804 return 0; | 3401 return 0; |
2805 } | 3402 } |
2806 return element32.hashCode; | 3403 return element37.hashCode; |
2807 } | 3404 } |
2808 bool isDirectSupertypeOf(InterfaceType type) { | 3405 bool isDirectSupertypeOf(InterfaceType type) { |
2809 ClassElement i = element; | 3406 ClassElement i = element; |
2810 ClassElement j = type.element; | 3407 ClassElement j = type.element; |
2811 Type2 supertype5 = j.supertype; | 3408 InterfaceType supertype5 = j.supertype; |
2812 if (supertype5 == null) { | 3409 if (supertype5 == null) { |
2813 return false; | 3410 return false; |
2814 } | 3411 } |
2815 ClassElement supertypeElement = supertype5.element as ClassElement; | 3412 ClassElement supertypeElement = supertype5.element; |
2816 if (supertypeElement == i) { | 3413 if (supertypeElement == i) { |
2817 return true; | 3414 return true; |
2818 } | 3415 } |
2819 for (Type2 interfaceType in j.interfaces) { | 3416 for (InterfaceType interfaceType in j.interfaces) { |
2820 if (interfaceType == i) { | 3417 if (interfaceType.element == i) { |
2821 return true; | 3418 return true; |
2822 } | 3419 } |
2823 } | 3420 } |
2824 for (Type2 mixinType in j.mixins) { | 3421 for (InterfaceType mixinType in j.mixins) { |
2825 if (mixinType == i) { | 3422 if (mixinType.element == i) { |
2826 return true; | 3423 return true; |
2827 } | 3424 } |
2828 } | 3425 } |
2829 return false; | 3426 return false; |
2830 } | 3427 } |
2831 bool isMoreSpecificThan(Type2 type) { | 3428 bool isMoreSpecificThan(Type2 type) { |
2832 if (type == DynamicTypeImpl.instance) { | 3429 if (identical(type, DynamicTypeImpl.instance)) { |
2833 return true; | 3430 return true; |
2834 } else if (type is! InterfaceType) { | 3431 } else if (type is! InterfaceType) { |
2835 return false; | 3432 return false; |
2836 } | 3433 } |
2837 InterfaceType s = type as InterfaceType; | 3434 InterfaceType s = (type as InterfaceType); |
2838 if (this == s) { | 3435 if (this == s) { |
2839 return true; | 3436 return true; |
2840 } | 3437 } |
2841 if (s.isDirectSupertypeOf(this)) { | 3438 if (s.isDirectSupertypeOf(this)) { |
2842 return true; | 3439 return true; |
2843 } | 3440 } |
2844 ClassElement tElement = element; | 3441 ClassElement tElement = element; |
2845 ClassElement sElement = s.element; | 3442 ClassElement sElement = s.element; |
2846 if (tElement == sElement) { | 3443 if (tElement == sElement) { |
2847 List<Type2> tArguments = typeArguments; | 3444 List<Type2> tArguments = typeArguments; |
2848 List<Type2> sArguments = s.typeArguments; | 3445 List<Type2> sArguments = s.typeArguments; |
2849 if (tArguments.length != sArguments.length) { | 3446 if (tArguments.length != sArguments.length) { |
2850 return false; | 3447 return false; |
2851 } | 3448 } |
2852 for (int i = 0; i < tArguments.length; i++) { | 3449 for (int i = 0; i < tArguments.length; i++) { |
2853 if (!tArguments[i].isMoreSpecificThan(sArguments[i])) { | 3450 if (!tArguments[i].isMoreSpecificThan(sArguments[i])) { |
2854 return false; | 3451 return false; |
2855 } | 3452 } |
2856 } | 3453 } |
2857 return true; | 3454 return true; |
2858 } | 3455 } |
2859 if (element.supertype == null) { | 3456 if (element.supertype == null) { |
2860 return false; | 3457 return false; |
2861 } | 3458 } |
2862 return element.supertype.isMoreSpecificThan(type); | 3459 return element.supertype.isMoreSpecificThan(type); |
2863 } | 3460 } |
2864 bool isSubtypeOf(Type2 type) { | 3461 bool isSubtypeOf(Type2 type) { |
2865 if (type == DynamicTypeImpl.instance) { | 3462 if (identical(type, DynamicTypeImpl.instance)) { |
2866 return true; | 3463 return true; |
2867 } else if (type is TypeVariableType) { | 3464 } else if (type is TypeVariableType) { |
2868 return true; | 3465 return true; |
2869 } else if (type is! InterfaceType) { | 3466 } else if (type is! InterfaceType) { |
2870 return false; | 3467 return false; |
2871 } else if (this == type) { | 3468 } else if (this == type) { |
2872 return true; | 3469 return true; |
2873 } | 3470 } |
2874 InterfaceType typeT = this; | 3471 InterfaceType typeT = this; |
2875 InterfaceType typeS = type as InterfaceType; | 3472 InterfaceType typeS = (type as InterfaceType); |
2876 ClassElement elementT = element; | 3473 ClassElement elementT = element; |
2877 if (elementT == null) { | 3474 if (elementT == null) { |
2878 return false; | 3475 return false; |
2879 } | 3476 } |
2880 typeT = substitute2(_typeArguments, TypeVariableTypeImpl.getTypes(elementT.t ypeVariables)); | 3477 typeT = substitute2(_typeArguments, TypeVariableTypeImpl.getTypes(elementT.t ypeVariables)); |
2881 if (typeT == typeS) { | 3478 if (typeT == typeS) { |
2882 return true; | 3479 return true; |
2883 } else if (elementT == typeS.element) { | 3480 } else if (elementT == typeS.element) { |
2884 List<Type2> typeTArgs = typeT.typeArguments; | 3481 List<Type2> typeTArgs = typeT.typeArguments; |
2885 List<Type2> typeSArgs = typeS.typeArguments; | 3482 List<Type2> typeSArgs = typeS.typeArguments; |
(...skipping 22 matching lines...) Expand all Loading... | |
2908 if (mixinType == typeS) { | 3505 if (mixinType == typeS) { |
2909 return true; | 3506 return true; |
2910 } | 3507 } |
2911 } | 3508 } |
2912 return supertype6.isSubtypeOf(typeS); | 3509 return supertype6.isSubtypeOf(typeS); |
2913 } | 3510 } |
2914 /** | 3511 /** |
2915 * Set the actual types of the type arguments to those in the given array. | 3512 * Set the actual types of the type arguments to those in the given array. |
2916 * @param typeArguments the actual types of the type arguments | 3513 * @param typeArguments the actual types of the type arguments |
2917 */ | 3514 */ |
2918 void set typeArguments5(List<Type2> typeArguments) { | 3515 void set typeArguments(List<Type2> typeArguments5) { |
2919 this._typeArguments = typeArguments; | 3516 this._typeArguments = typeArguments5; |
2920 } | 3517 } |
2921 InterfaceTypeImpl substitute5(List<Type2> argumentTypes) => substitute2(argume ntTypes, typeArguments); | 3518 InterfaceTypeImpl substitute5(List<Type2> argumentTypes) => substitute2(argume ntTypes, typeArguments); |
2922 InterfaceTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameter Types) { | 3519 InterfaceTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameter Types) { |
2923 if (argumentTypes.length != parameterTypes.length) { | 3520 if (argumentTypes.length != parameterTypes.length) { |
2924 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes. length}) != parameterTypes.length (${parameterTypes.length})"); | 3521 throw new IllegalArgumentException("argumentTypes.length (${argumentTypes. length}) != parameterTypes.length (${parameterTypes.length})"); |
2925 } | 3522 } |
2926 if (argumentTypes.length == 0) { | 3523 if (argumentTypes.length == 0) { |
2927 return this; | 3524 return this; |
2928 } | 3525 } |
2929 InterfaceTypeImpl newType = new InterfaceTypeImpl.con1(element); | 3526 InterfaceTypeImpl newType = new InterfaceTypeImpl.con1(element); |
2930 newType.typeArguments5 = TypeImpl.substitute(_typeArguments, argumentTypes, parameterTypes); | 3527 newType.typeArguments = TypeImpl.substitute(_typeArguments, argumentTypes, p arameterTypes); |
2931 return newType; | 3528 return newType; |
2932 } | 3529 } |
3530 void appendTo(StringBuffer builder) { | |
3531 builder.add(name); | |
3532 int argumentCount = _typeArguments.length; | |
3533 if (argumentCount > 0) { | |
3534 builder.add("<"); | |
3535 for (int i = 0; i < argumentCount; i++) { | |
3536 if (i > 0) { | |
3537 builder.add(", "); | |
3538 } | |
3539 ((_typeArguments[i] as TypeImpl)).appendTo(builder); | |
3540 } | |
3541 builder.add(">"); | |
3542 } | |
3543 } | |
2933 } | 3544 } |
2934 /** | 3545 /** |
2935 * The abstract class {@code TypeImpl} implements the behavior common to objects representing the | 3546 * The abstract class {@code TypeImpl} implements the behavior common to objects representing the |
2936 * declared type of elements in the element model. | 3547 * declared type of elements in the element model. |
2937 */ | 3548 */ |
2938 abstract class TypeImpl implements Type2 { | 3549 abstract class TypeImpl implements Type2 { |
2939 /** | 3550 /** |
2940 * Return an array containing the results of using the given argument types an d parameter types to | 3551 * Return an array containing the results of using the given argument types an d parameter types to |
2941 * perform a substitution on all of the given types. | 3552 * perform a substitution on all of the given types. |
2942 * @param types the types on which a substitution is to be performed | 3553 * @param types the types on which a substitution is to be performed |
(...skipping 30 matching lines...) Expand all Loading... | |
2973 TypeImpl(Element element, String name) { | 3584 TypeImpl(Element element, String name) { |
2974 this._element = element; | 3585 this._element = element; |
2975 this._name = name; | 3586 this._name = name; |
2976 } | 3587 } |
2977 Element get element => _element; | 3588 Element get element => _element; |
2978 Type2 getLeastUpperBound(Type2 type) => null; | 3589 Type2 getLeastUpperBound(Type2 type) => null; |
2979 String get name => _name; | 3590 String get name => _name; |
2980 bool isAssignableTo(Type2 type) => this.isSubtypeOf(type) || type.isSubtypeOf( this); | 3591 bool isAssignableTo(Type2 type) => this.isSubtypeOf(type) || type.isSubtypeOf( this); |
2981 bool isMoreSpecificThan(Type2 type) => false; | 3592 bool isMoreSpecificThan(Type2 type) => false; |
2982 bool isSupertypeOf(Type2 type) => type.isSubtypeOf(this); | 3593 bool isSupertypeOf(Type2 type) => type.isSubtypeOf(this); |
2983 String toString() => _name == null ? "<unnamed type>" : "type ${_name}"; | 3594 String toString() { |
3595 StringBuffer builder = new StringBuffer(); | |
3596 appendTo(builder); | |
3597 return builder.toString(); | |
3598 } | |
3599 /** | |
3600 * Append a textual representation of this type to the given builder. | |
3601 * @param builder the builder to which the text is to be appended | |
3602 */ | |
3603 void appendTo(StringBuffer builder) { | |
3604 if (_name == null) { | |
3605 builder.add("<unnamed type>"); | |
3606 } else { | |
3607 builder.add(_name); | |
3608 } | |
3609 } | |
2984 } | 3610 } |
2985 /** | 3611 /** |
2986 * Instances of the class {@code TypeVariableTypeImpl} defines the behavior of o bjects representing | 3612 * Instances of the class {@code TypeVariableTypeImpl} defines the behavior of o bjects representing |
2987 * the type introduced by a type variable. | 3613 * the type introduced by a type variable. |
2988 */ | 3614 */ |
2989 class TypeVariableTypeImpl extends TypeImpl implements TypeVariableType { | 3615 class TypeVariableTypeImpl extends TypeImpl implements TypeVariableType { |
2990 /** | 3616 /** |
2991 * Return an array containing the type variable types defined by the given arr ay of type variable | 3617 * Return an array containing the type variable types defined by the given arr ay of type variable |
2992 * elements. | 3618 * elements. |
2993 * @param typeVariables the type variable elements defining the type variable types to be returned | 3619 * @param typeVariables the type variable elements defining the type variable types to be returned |
2994 * @return the type variable types defined by the type variable elements | 3620 * @return the type variable types defined by the type variable elements |
2995 */ | 3621 */ |
2996 static List<TypeVariableType> getTypes(List<TypeVariableElement> typeVariables ) { | 3622 static List<TypeVariableType> getTypes(List<TypeVariableElement> typeVariables ) { |
2997 int count = typeVariables.length; | 3623 int count = typeVariables.length; |
2998 List<TypeVariableType> types = new List<TypeVariableType>.fixedLength(count) ; | 3624 List<TypeVariableType> types = new List<TypeVariableType>.fixedLength(count) ; |
2999 for (int i = 0; i < count; i++) { | 3625 for (int i = 0; i < count; i++) { |
3000 types[i] = typeVariables[i].type; | 3626 types[i] = typeVariables[i].type; |
3001 } | 3627 } |
3002 return types; | 3628 return types; |
3003 } | 3629 } |
3004 /** | 3630 /** |
3005 * Initialize a newly created type variable to be declared by the given elemen t and to have the | 3631 * Initialize a newly created type variable to be declared by the given elemen t and to have the |
3006 * given name. | 3632 * given name. |
3007 * @param element the element representing the declaration of the type variabl e | 3633 * @param element the element representing the declaration of the type variabl e |
3008 */ | 3634 */ |
3009 TypeVariableTypeImpl(TypeVariableElement element) : super(element, element.nam e) { | 3635 TypeVariableTypeImpl(TypeVariableElement element) : super(element, element.nam e) { |
3010 } | 3636 } |
3011 bool operator ==(Object object) => object is TypeVariableTypeImpl && element = = (object as TypeVariableTypeImpl).element; | 3637 bool operator ==(Object object) => object is TypeVariableTypeImpl && element = = ((object as TypeVariableTypeImpl)).element; |
3012 TypeVariableElement get element => super.element as TypeVariableElement; | 3638 TypeVariableElement get element => (super.element as TypeVariableElement); |
3013 int get hashCode => element.hashCode; | 3639 int get hashCode => element.hashCode; |
3014 bool isMoreSpecificThan(Type2 type) { | 3640 bool isMoreSpecificThan(Type2 type) { |
3015 Type2 upperBound = element.bound; | 3641 Type2 upperBound = element.bound; |
3016 return type == upperBound; | 3642 return type == upperBound; |
3017 } | 3643 } |
3018 bool isSubtypeOf(Type2 type) => true; | 3644 bool isSubtypeOf(Type2 type) => true; |
3019 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) { | 3645 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) { |
3020 int length7 = parameterTypes.length; | 3646 int length7 = parameterTypes.length; |
3021 for (int i = 0; i < length7; i++) { | 3647 for (int i = 0; i < length7; i++) { |
3022 if (parameterTypes[i] == this) { | 3648 if (parameterTypes[i] == this) { |
(...skipping 14 matching lines...) Expand all Loading... | |
3037 /** | 3663 /** |
3038 * Return the unique instance of this class. | 3664 * Return the unique instance of this class. |
3039 * @return the unique instance of this class | 3665 * @return the unique instance of this class |
3040 */ | 3666 */ |
3041 static VoidTypeImpl get instance => _INSTANCE; | 3667 static VoidTypeImpl get instance => _INSTANCE; |
3042 /** | 3668 /** |
3043 * Prevent the creation of instances of this class. | 3669 * Prevent the creation of instances of this class. |
3044 */ | 3670 */ |
3045 VoidTypeImpl() : super(null, Keyword.VOID.syntax) { | 3671 VoidTypeImpl() : super(null, Keyword.VOID.syntax) { |
3046 } | 3672 } |
3047 bool operator ==(Object object) => object == this; | 3673 bool operator ==(Object object) => identical(object, this); |
3048 bool isSubtypeOf(Type2 type) => type == this || type == DynamicTypeImpl.instan ce; | 3674 bool isSubtypeOf(Type2 type) => identical(type, this) || identical(type, Dynam icTypeImpl.instance); |
3049 VoidTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes ) => this; | 3675 VoidTypeImpl substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes ) => this; |
3050 } | 3676 } |
3051 /** | 3677 /** |
3052 * The interface {@code FunctionType} defines the behavior common to objects rep resenting the type | 3678 * The interface {@code FunctionType} defines the behavior common to objects rep resenting the type |
3053 * of a function, method, constructor, getter, or setter. Function types come in three variations: | 3679 * of a function, method, constructor, getter, or setter. Function types come in three variations: |
3054 * <ol> | 3680 * <ol> |
3055 * <li>The types of functions that only have required parameters. These have the general form | 3681 * <li>The types of functions that only have required parameters. These have the general form |
3056 * <i>(T<sub>1</sub>, …, T<sub>n</sub>) → T</i>.</li> | 3682 * <i>(T<sub>1</sub>, …, T<sub>n</sub>) → T</i>.</li> |
3057 * <li>The types of functions with optional positional parameters. These have th e general form | 3683 * <li>The types of functions with optional positional parameters. These have th e general form |
3058 * <i>(T<sub>1</sub>, …, T<sub>n</sub>, [T<sub>n+1</sub>, …, T<sub >n+k</sub>]) → | 3684 * <i>(T<sub>1</sub>, …, T<sub>n</sub>, [T<sub>n+1</sub>, …, T<sub >n+k</sub>]) → |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3335 */ | 3961 */ |
3336 abstract class TypeVariableType implements Type2 { | 3962 abstract class TypeVariableType implements Type2 { |
3337 TypeVariableElement get element; | 3963 TypeVariableElement get element; |
3338 } | 3964 } |
3339 /** | 3965 /** |
3340 * The interface {@code VoidType} defines the behavior of the unique object repr esenting the type{@code void}. | 3966 * The interface {@code VoidType} defines the behavior of the unique object repr esenting the type{@code void}. |
3341 */ | 3967 */ |
3342 abstract class VoidType implements Type2 { | 3968 abstract class VoidType implements Type2 { |
3343 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); | 3969 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); |
3344 } | 3970 } |
OLD | NEW |