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

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

Issue 680863002: Remove JavaStringBuilder (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // This code was auto-generated, is not intended to be edited, and is subject to 5 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information. 6 // significant change. Please see the README file for more information.
7 7
8 library engine.element; 8 library engine.element;
9 9
10 import 'dart:collection'; 10 import 'dart:collection';
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 if (className == name) { 377 if (className == name) {
378 return true; 378 return true;
379 } 379 }
380 } 380 }
381 } 381 }
382 } 382 }
383 return false; 383 return false;
384 } 384 }
385 385
386 @override 386 @override
387 void appendTo(JavaStringBuilder builder) { 387 void appendTo(StringBuffer buffer) {
388 builder.append("."); 388 buffer.write(".");
389 builder.append(name); 389 buffer.write(name);
390 } 390 }
391 } 391 }
392 392
393 /** 393 /**
394 * The interface `AngularElement` defines the behavior of objects representing i nformation 394 * The interface `AngularElement` defines the behavior of objects representing i nformation
395 * about an Angular element which is applied conditionally using some [AngularSe lectorElement]. 395 * about an Angular element which is applied conditionally using some [AngularSe lectorElement].
396 */ 396 */
397 abstract class AngularHasSelectorElement implements AngularElement { 397 abstract class AngularHasSelectorElement implements AngularElement {
398 /** 398 /**
399 * Returns the selector specified for this element. 399 * Returns the selector specified for this element.
(...skipping 1237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1637 super.visitChildren(visitor); 1637 super.visitChildren(visitor);
1638 safelyVisitChildren(_accessors, visitor); 1638 safelyVisitChildren(_accessors, visitor);
1639 safelyVisitChildren(_constructors, visitor); 1639 safelyVisitChildren(_constructors, visitor);
1640 safelyVisitChildren(_fields, visitor); 1640 safelyVisitChildren(_fields, visitor);
1641 safelyVisitChildren(_methods, visitor); 1641 safelyVisitChildren(_methods, visitor);
1642 safelyVisitChildren(_toolkitObjects, visitor); 1642 safelyVisitChildren(_toolkitObjects, visitor);
1643 safelyVisitChildren(_typeParameters, visitor); 1643 safelyVisitChildren(_typeParameters, visitor);
1644 } 1644 }
1645 1645
1646 @override 1646 @override
1647 void appendTo(JavaStringBuilder builder) { 1647 void appendTo(StringBuffer buffer) {
1648 String name = displayName; 1648 String name = displayName;
1649 if (name == null) { 1649 if (name == null) {
1650 builder.append("{unnamed class}"); 1650 buffer.write("{unnamed class}");
1651 } else { 1651 } else {
1652 builder.append(name); 1652 buffer.write(name);
1653 } 1653 }
1654 int variableCount = _typeParameters.length; 1654 int variableCount = _typeParameters.length;
1655 if (variableCount > 0) { 1655 if (variableCount > 0) {
1656 builder.append("<"); 1656 buffer.write("<");
1657 for (int i = 0; i < variableCount; i++) { 1657 for (int i = 0; i < variableCount; i++) {
1658 if (i > 0) { 1658 if (i > 0) {
1659 builder.append(", "); 1659 buffer.write(", ");
1660 } 1660 }
1661 (_typeParameters[i] as TypeParameterElementImpl).appendTo(builder); 1661 (_typeParameters[i] as TypeParameterElementImpl).appendTo(buffer);
1662 } 1662 }
1663 builder.append(">"); 1663 buffer.write(">");
1664 } 1664 }
1665 } 1665 }
1666 1666
1667 void _collectAllSupertypes(List<InterfaceType> supertypes) { 1667 void _collectAllSupertypes(List<InterfaceType> supertypes) {
1668 List<InterfaceType> typesToVisit = new List<InterfaceType>(); 1668 List<InterfaceType> typesToVisit = new List<InterfaceType>();
1669 List<ClassElement> visitedClasses = new List<ClassElement>(); 1669 List<ClassElement> visitedClasses = new List<ClassElement>();
1670 typesToVisit.add(this.type); 1670 typesToVisit.add(this.type);
1671 while (!typesToVisit.isEmpty) { 1671 while (!typesToVisit.isEmpty) {
1672 InterfaceType currentType = typesToVisit.removeAt(0); 1672 InterfaceType currentType = typesToVisit.removeAt(0);
1673 ClassElement currentElement = currentType.element; 1673 ClassElement currentElement = currentType.element;
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after
2233 super.visitChildren(visitor); 2233 super.visitChildren(visitor);
2234 safelyVisitChildren(_accessors, visitor); 2234 safelyVisitChildren(_accessors, visitor);
2235 safelyVisitChildren(_functions, visitor); 2235 safelyVisitChildren(_functions, visitor);
2236 safelyVisitChildren(_typeAliases, visitor); 2236 safelyVisitChildren(_typeAliases, visitor);
2237 safelyVisitChildren(_types, visitor); 2237 safelyVisitChildren(_types, visitor);
2238 safelyVisitChildren(_variables, visitor); 2238 safelyVisitChildren(_variables, visitor);
2239 safelyVisitChildren(_angularViews, visitor); 2239 safelyVisitChildren(_angularViews, visitor);
2240 } 2240 }
2241 2241
2242 @override 2242 @override
2243 void appendTo(JavaStringBuilder builder) { 2243 void appendTo(StringBuffer buffer) {
2244 if (source == null) { 2244 if (source == null) {
2245 builder.append("{compilation unit}"); 2245 buffer.write("{compilation unit}");
2246 } else { 2246 } else {
2247 builder.append(source.fullName); 2247 buffer.write(source.fullName);
2248 } 2248 }
2249 } 2249 }
2250 2250
2251 @override 2251 @override
2252 String get identifier => source.encoding; 2252 String get identifier => source.encoding;
2253 2253
2254 /** 2254 /**
2255 * Returns the associated toolkit objects. 2255 * Returns the associated toolkit objects.
2256 * 2256 *
2257 * @param element the [Element] to get toolkit objects for 2257 * @param element the [Element] to get toolkit objects for
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
2498 /** 2498 /**
2499 * Set whether this constructor represents a factory method to the given value . 2499 * Set whether this constructor represents a factory method to the given value .
2500 * 2500 *
2501 * @param isFactory `true` if this constructor represents a factory method 2501 * @param isFactory `true` if this constructor represents a factory method
2502 */ 2502 */
2503 void set factory(bool isFactory) { 2503 void set factory(bool isFactory) {
2504 setModifier(Modifier.FACTORY, isFactory); 2504 setModifier(Modifier.FACTORY, isFactory);
2505 } 2505 }
2506 2506
2507 @override 2507 @override
2508 void appendTo(JavaStringBuilder builder) { 2508 void appendTo(StringBuffer buffer) {
2509 builder.append(enclosingElement.displayName); 2509 buffer.write(enclosingElement.displayName);
2510 String name = displayName; 2510 String name = displayName;
2511 if (name != null && !name.isEmpty) { 2511 if (name != null && !name.isEmpty) {
2512 builder.append("."); 2512 buffer.write(".");
2513 builder.append(name); 2513 buffer.write(name);
2514 } 2514 }
2515 super.appendTo(builder); 2515 super.appendTo(buffer);
2516 } 2516 }
2517 } 2517 }
2518 2518
2519 /** 2519 /**
2520 * Instances of the class `ConstructorMember` represent a constructor element de fined in a 2520 * Instances of the class `ConstructorMember` represent a constructor element de fined in a
2521 * parameterized type where the values of the type parameters are known. 2521 * parameterized type where the values of the type parameters are known.
2522 */ 2522 */
2523 class ConstructorMember extends ExecutableMember implements ConstructorElement { 2523 class ConstructorMember extends ExecutableMember implements ConstructorElement {
2524 /** 2524 /**
2525 * If the given constructor's type is different when any type parameters from the defining type's 2525 * If the given constructor's type is different when any type parameters from the defining type's
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
2582 bool get isDefaultConstructor => baseElement.isDefaultConstructor; 2582 bool get isDefaultConstructor => baseElement.isDefaultConstructor;
2583 2583
2584 @override 2584 @override
2585 bool get isFactory => baseElement.isFactory; 2585 bool get isFactory => baseElement.isFactory;
2586 2586
2587 @override 2587 @override
2588 String toString() { 2588 String toString() {
2589 ConstructorElement baseElement = this.baseElement; 2589 ConstructorElement baseElement = this.baseElement;
2590 List<ParameterElement> parameters = this.parameters; 2590 List<ParameterElement> parameters = this.parameters;
2591 FunctionType type = this.type; 2591 FunctionType type = this.type;
2592 JavaStringBuilder builder = new JavaStringBuilder(); 2592 StringBuffer buffer = new StringBuffer();
2593 builder.append(baseElement.enclosingElement.displayName); 2593 buffer.write(baseElement.enclosingElement.displayName);
2594 String name = displayName; 2594 String name = displayName;
2595 if (name != null && !name.isEmpty) { 2595 if (name != null && !name.isEmpty) {
2596 builder.append("."); 2596 buffer.write(".");
2597 builder.append(name); 2597 buffer.write(name);
2598 } 2598 }
2599 builder.append("("); 2599 buffer.write("(");
2600 int parameterCount = parameters.length; 2600 int parameterCount = parameters.length;
2601 for (int i = 0; i < parameterCount; i++) { 2601 for (int i = 0; i < parameterCount; i++) {
2602 if (i > 0) { 2602 if (i > 0) {
2603 builder.append(", "); 2603 buffer.write(", ");
2604 } 2604 }
2605 builder.append(parameters[i]).toString(); 2605 buffer.write(parameters[i]);
2606 } 2606 }
2607 builder.append(")"); 2607 buffer.write(")");
2608 if (type != null) { 2608 if (type != null) {
2609 builder.append(Element.RIGHT_ARROW); 2609 buffer.write(Element.RIGHT_ARROW);
2610 builder.append(type.returnType); 2610 buffer.write(type.returnType);
2611 } 2611 }
2612 return builder.toString(); 2612 return buffer.toString();
2613 } 2613 }
2614 2614
2615 @override 2615 @override
2616 InterfaceType get definingType => super.definingType as InterfaceType; 2616 InterfaceType get definingType => super.definingType as InterfaceType;
2617 } 2617 }
2618 2618
2619 /** 2619 /**
2620 * The interface `Type` defines the behavior of objects representing the declare d type of 2620 * The interface `Type` defines the behavior of objects representing the declare d type of
2621 * elements in the element model. 2621 * elements in the element model.
2622 */ 2622 */
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after
3475 * Set whether this element is synthetic to correspond to the given value. 3475 * Set whether this element is synthetic to correspond to the given value.
3476 * 3476 *
3477 * @param isSynthetic `true` if the element is synthetic 3477 * @param isSynthetic `true` if the element is synthetic
3478 */ 3478 */
3479 void set synthetic(bool isSynthetic) { 3479 void set synthetic(bool isSynthetic) {
3480 setModifier(Modifier.SYNTHETIC, isSynthetic); 3480 setModifier(Modifier.SYNTHETIC, isSynthetic);
3481 } 3481 }
3482 3482
3483 @override 3483 @override
3484 String toString() { 3484 String toString() {
3485 JavaStringBuilder builder = new JavaStringBuilder(); 3485 StringBuffer buffer = new StringBuffer();
3486 appendTo(builder); 3486 appendTo(buffer);
3487 return builder.toString(); 3487 return buffer.toString();
3488 } 3488 }
3489 3489
3490 @override 3490 @override
3491 void visitChildren(ElementVisitor visitor) { 3491 void visitChildren(ElementVisitor visitor) {
3492 // There are no children to visit 3492 // There are no children to visit
3493 } 3493 }
3494 3494
3495 /** 3495 /**
3496 * Append a textual representation of this type to the given builder. 3496 * Append a textual representation of this element to the given [buffer].
3497 *
3498 * @param builder the builder to which the text is to be appended
3499 */ 3497 */
3500 void appendTo(JavaStringBuilder builder) { 3498 void appendTo(StringBuffer buffer) {
3501 if (_name == null) { 3499 if (_name == null) {
3502 builder.append("<unnamed "); 3500 buffer.write("<unnamed ");
3503 builder.append(runtimeType.toString()); 3501 buffer.write(runtimeType.toString());
3504 builder.append(">"); 3502 buffer.write(">");
3505 } else { 3503 } else {
3506 builder.append(_name); 3504 buffer.write(_name);
3507 } 3505 }
3508 } 3506 }
3509 3507
3510 /** 3508 /**
3511 * Set this [Element] as an enclosing for given. 3509 * Set this [Element] as an enclosing for given.
3512 * 3510 *
3513 * @param element the element to enclose, must be [ElementImpl] 3511 * @param element the element to enclose, must be [ElementImpl]
3514 */ 3512 */
3515 void encloseElement(ElementImpl element) { 3513 void encloseElement(ElementImpl element) {
3516 element.enclosingElement = this; 3514 element.enclosingElement = this;
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
3816 } 3814 }
3817 } 3815 }
3818 return true; 3816 return true;
3819 } 3817 }
3820 3818
3821 @override 3819 @override
3822 List<String> get components => _components; 3820 List<String> get components => _components;
3823 3821
3824 @override 3822 @override
3825 String get encoding { 3823 String get encoding {
3826 JavaStringBuilder builder = new JavaStringBuilder(); 3824 StringBuffer buffer = new StringBuffer();
3827 int length = _components.length; 3825 int length = _components.length;
3828 for (int i = 0; i < length; i++) { 3826 for (int i = 0; i < length; i++) {
3829 if (i > 0) { 3827 if (i > 0) {
3830 builder.appendChar(_SEPARATOR_CHAR); 3828 buffer.writeCharCode(_SEPARATOR_CHAR);
3831 } 3829 }
3832 _encode(builder, _components[i]); 3830 _encode(buffer, _components[i]);
3833 } 3831 }
3834 return builder.toString(); 3832 return buffer.toString();
3835 } 3833 }
3836 3834
3837 @override 3835 @override
3838 int get hashCode { 3836 int get hashCode {
3839 int result = 1; 3837 int result = 1;
3840 for (int i = 0; i < _components.length; i++) { 3838 for (int i = 0; i < _components.length; i++) {
3841 String component = _components[i]; 3839 String component = _components[i];
3842 result = 31 * result + component.hashCode; 3840 result = 31 * result + component.hashCode;
3843 } 3841 }
3844 return result; 3842 return result;
3845 } 3843 }
3846 3844
3847 @override 3845 @override
3848 String toString() => encoding; 3846 String toString() => encoding;
3849 3847
3850 /** 3848 /**
3851 * Decode the encoded form of a location into an array of components. 3849 * Decode the encoded form of a location into an array of components.
3852 * 3850 *
3853 * @param encoding the encoded form of a location 3851 * @param encoding the encoded form of a location
3854 * @return the components that were encoded 3852 * @return the components that were encoded
3855 */ 3853 */
3856 List<String> _decode(String encoding) { 3854 List<String> _decode(String encoding) {
3857 List<String> components = new List<String>(); 3855 List<String> components = new List<String>();
3858 JavaStringBuilder builder = new JavaStringBuilder(); 3856 StringBuffer buffer = new StringBuffer();
3859 int index = 0; 3857 int index = 0;
3860 int length = encoding.length; 3858 int length = encoding.length;
3861 while (index < length) { 3859 while (index < length) {
3862 int currentChar = encoding.codeUnitAt(index); 3860 int currentChar = encoding.codeUnitAt(index);
3863 if (currentChar == _SEPARATOR_CHAR) { 3861 if (currentChar == _SEPARATOR_CHAR) {
3864 if (index + 1 < length && encoding.codeUnitAt(index + 1) == _SEPARATOR_C HAR) { 3862 if (index + 1 < length && encoding.codeUnitAt(index + 1) == _SEPARATOR_C HAR) {
3865 builder.appendChar(_SEPARATOR_CHAR); 3863 buffer.writeCharCode(_SEPARATOR_CHAR);
3866 index += 2; 3864 index += 2;
3867 } else { 3865 } else {
3868 components.add(builder.toString()); 3866 components.add(buffer.toString());
3869 builder.length = 0; 3867 buffer = new StringBuffer();
3870 index++; 3868 index++;
3871 } 3869 }
3872 } else { 3870 } else {
3873 builder.appendChar(currentChar); 3871 buffer.writeCharCode(currentChar);
3874 index++; 3872 index++;
3875 } 3873 }
3876 } 3874 }
3877 components.add(builder.toString()); 3875 components.add(buffer.toString());
3878 return new List.from(components); 3876 return new List.from(components);
3879 } 3877 }
3880 3878
3881 /** 3879 /**
3882 * Append an encoded form of the given component to the given builder. 3880 * Append an encoded form of the given component to the given builder.
3883 * 3881 *
3884 * @param builder the builder to which the encoded component is to be appended 3882 * @param builder the builder to which the encoded component is to be appended
3885 * @param component the component to be appended to the builder 3883 * @param component the component to be appended to the builder
3886 */ 3884 */
3887 void _encode(JavaStringBuilder builder, String component) { 3885 void _encode(StringBuffer buffer, String component) {
3888 int length = component.length; 3886 int length = component.length;
3889 for (int i = 0; i < length; i++) { 3887 for (int i = 0; i < length; i++) {
3890 int currentChar = component.codeUnitAt(i); 3888 int currentChar = component.codeUnitAt(i);
3891 if (currentChar == _SEPARATOR_CHAR) { 3889 if (currentChar == _SEPARATOR_CHAR) {
3892 builder.appendChar(_SEPARATOR_CHAR); 3890 buffer.writeCharCode(_SEPARATOR_CHAR);
3893 } 3891 }
3894 builder.appendChar(currentChar); 3892 buffer.writeCharCode(currentChar);
3895 } 3893 }
3896 } 3894 }
3897 } 3895 }
3898 3896
3899 /** 3897 /**
3900 * The class `ElementPair` is a pair of [Element]s. [Object#equals] and 3898 * The class `ElementPair` is a pair of [Element]s. [Object#equals] and
3901 * [Object#hashCode] so this class can be used in hashed data structures. 3899 * [Object#hashCode] so this class can be used in hashed data structures.
3902 */ 3900 */
3903 class ElementPair { 3901 class ElementPair {
3904 /** 3902 /**
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
4336 @override 4334 @override
4337 void visitChildren(ElementVisitor visitor) { 4335 void visitChildren(ElementVisitor visitor) {
4338 super.visitChildren(visitor); 4336 super.visitChildren(visitor);
4339 safelyVisitChildren(_functions, visitor); 4337 safelyVisitChildren(_functions, visitor);
4340 safelyVisitChildren(_labels, visitor); 4338 safelyVisitChildren(_labels, visitor);
4341 safelyVisitChildren(_localVariables, visitor); 4339 safelyVisitChildren(_localVariables, visitor);
4342 safelyVisitChildren(_parameters, visitor); 4340 safelyVisitChildren(_parameters, visitor);
4343 } 4341 }
4344 4342
4345 @override 4343 @override
4346 void appendTo(JavaStringBuilder builder) { 4344 void appendTo(StringBuffer buffer) {
4347 if (this.kind != ElementKind.GETTER) { 4345 if (this.kind != ElementKind.GETTER) {
4348 builder.append("("); 4346 buffer.write("(");
4349 String closing = null; 4347 String closing = null;
4350 ParameterKind kind = ParameterKind.REQUIRED; 4348 ParameterKind kind = ParameterKind.REQUIRED;
4351 int parameterCount = _parameters.length; 4349 int parameterCount = _parameters.length;
4352 for (int i = 0; i < parameterCount; i++) { 4350 for (int i = 0; i < parameterCount; i++) {
4353 if (i > 0) { 4351 if (i > 0) {
4354 builder.append(", "); 4352 buffer.write(", ");
4355 } 4353 }
4356 ParameterElementImpl parameter = _parameters[i] as ParameterElementImpl; 4354 ParameterElementImpl parameter = _parameters[i] as ParameterElementImpl;
4357 ParameterKind parameterKind = parameter.parameterKind; 4355 ParameterKind parameterKind = parameter.parameterKind;
4358 if (parameterKind != kind) { 4356 if (parameterKind != kind) {
4359 if (closing != null) { 4357 if (closing != null) {
4360 builder.append(closing); 4358 buffer.write(closing);
4361 } 4359 }
4362 if (parameterKind == ParameterKind.POSITIONAL) { 4360 if (parameterKind == ParameterKind.POSITIONAL) {
4363 builder.append("["); 4361 buffer.write("[");
4364 closing = "]"; 4362 closing = "]";
4365 } else if (parameterKind == ParameterKind.NAMED) { 4363 } else if (parameterKind == ParameterKind.NAMED) {
4366 builder.append("{"); 4364 buffer.write("{");
4367 closing = "}"; 4365 closing = "}";
4368 } else { 4366 } else {
4369 closing = null; 4367 closing = null;
4370 } 4368 }
4371 } 4369 }
4372 kind = parameterKind; 4370 kind = parameterKind;
4373 parameter.appendToWithoutDelimiters(builder); 4371 parameter.appendToWithoutDelimiters(buffer);
4374 } 4372 }
4375 if (closing != null) { 4373 if (closing != null) {
4376 builder.append(closing); 4374 buffer.write(closing);
4377 } 4375 }
4378 builder.append(")"); 4376 buffer.write(")");
4379 } 4377 }
4380 if (type != null) { 4378 if (type != null) {
4381 builder.append(Element.RIGHT_ARROW); 4379 buffer.write(Element.RIGHT_ARROW);
4382 builder.append(type.returnType); 4380 buffer.write(type.returnType);
4383 } 4381 }
4384 } 4382 }
4385 } 4383 }
4386 4384
4387 /** 4385 /**
4388 * The abstract class `ExecutableMember` defines the behavior common to members that represent 4386 * The abstract class `ExecutableMember` defines the behavior common to members that represent
4389 * an executable element defined in a parameterized type where the values of the type parameters are 4387 * an executable element defined in a parameterized type where the values of the type parameters are
4390 * known. 4388 * known.
4391 */ 4389 */
4392 abstract class ExecutableMember extends Member implements ExecutableElement { 4390 abstract class ExecutableMember extends Member implements ExecutableElement {
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
4516 */ 4514 */
4517 ExportElementImpl() : super(null, -1); 4515 ExportElementImpl() : super(null, -1);
4518 4516
4519 @override 4517 @override
4520 accept(ElementVisitor visitor) => visitor.visitExportElement(this); 4518 accept(ElementVisitor visitor) => visitor.visitExportElement(this);
4521 4519
4522 @override 4520 @override
4523 ElementKind get kind => ElementKind.EXPORT; 4521 ElementKind get kind => ElementKind.EXPORT;
4524 4522
4525 @override 4523 @override
4526 void appendTo(JavaStringBuilder builder) { 4524 void appendTo(StringBuffer buffer) {
4527 builder.append("export "); 4525 buffer.write("export ");
4528 (exportedLibrary as LibraryElementImpl).appendTo(builder); 4526 (exportedLibrary as LibraryElementImpl).appendTo(buffer);
4529 } 4527 }
4530 4528
4531 @override 4529 @override
4532 String get identifier => exportedLibrary.name; 4530 String get identifier => exportedLibrary.name;
4533 } 4531 }
4534 4532
4535 /** 4533 /**
4536 * The interface `ExternalHtmlScriptElement` defines the behavior of elements re presenting a 4534 * The interface `ExternalHtmlScriptElement` defines the behavior of elements re presenting a
4537 * script tag in an HTML file having a `source` attribute that references a Dart library 4535 * script tag in an HTML file having a `source` attribute that references a Dart library
4538 * source file. 4536 * source file.
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
4771 @override 4769 @override
4772 DartType get propagatedType => substituteFor(baseElement.propagatedType); 4770 DartType get propagatedType => substituteFor(baseElement.propagatedType);
4773 4771
4774 @override 4772 @override
4775 PropertyAccessorElement get setter => PropertyAccessorMember.from(baseElement. setter, definingType); 4773 PropertyAccessorElement get setter => PropertyAccessorMember.from(baseElement. setter, definingType);
4776 4774
4777 @override 4775 @override
4778 bool get isStatic => baseElement.isStatic; 4776 bool get isStatic => baseElement.isStatic;
4779 4777
4780 @override 4778 @override
4781 String toString() { 4779 String toString() => '$type $displayName';
4782 JavaStringBuilder builder = new JavaStringBuilder();
4783 builder.append(type);
4784 builder.append(" ");
4785 builder.append(displayName);
4786 return builder.toString();
4787 }
4788 4780
4789 @override 4781 @override
4790 InterfaceType get definingType => super.definingType as InterfaceType; 4782 InterfaceType get definingType => super.definingType as InterfaceType;
4791 } 4783 }
4792 4784
4793 /** 4785 /**
4794 * The interface `FunctionElement` defines the behavior of elements representing a function. 4786 * The interface `FunctionElement` defines the behavior of elements representing a function.
4795 */ 4787 */
4796 abstract class FunctionElement implements ExecutableElement, LocalElement { 4788 abstract class FunctionElement implements ExecutableElement, LocalElement {
4797 /** 4789 /**
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
4896 * @param offset the offset to the beginning of the visible range for this ele ment 4888 * @param offset the offset to the beginning of the visible range for this ele ment
4897 * @param length the length of the visible range for this element, or `-1` if this element 4889 * @param length the length of the visible range for this element, or `-1` if this element
4898 * does not have a visible range 4890 * does not have a visible range
4899 */ 4891 */
4900 void setVisibleRange(int offset, int length) { 4892 void setVisibleRange(int offset, int length) {
4901 _visibleRangeOffset = offset; 4893 _visibleRangeOffset = offset;
4902 _visibleRangeLength = length; 4894 _visibleRangeLength = length;
4903 } 4895 }
4904 4896
4905 @override 4897 @override
4906 void appendTo(JavaStringBuilder builder) { 4898 void appendTo(StringBuffer buffer) {
4907 String name = displayName; 4899 String name = displayName;
4908 if (name != null) { 4900 if (name != null) {
4909 builder.append(name); 4901 buffer.write(name);
4910 } 4902 }
4911 super.appendTo(builder); 4903 super.appendTo(buffer);
4912 } 4904 }
4913 4905
4914 @override 4906 @override
4915 String get identifier { 4907 String get identifier {
4916 String identifier = super.identifier; 4908 String identifier = super.identifier;
4917 if (!isStatic) { 4909 if (!isStatic) {
4918 identifier += "@${nameOffset}"; 4910 identifier += "@${nameOffset}";
4919 } 4911 }
4920 return identifier; 4912 return identifier;
4921 } 4913 }
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
5229 } 5221 }
5230 5222
5231 @override 5223 @override
5232 void visitChildren(ElementVisitor visitor) { 5224 void visitChildren(ElementVisitor visitor) {
5233 super.visitChildren(visitor); 5225 super.visitChildren(visitor);
5234 safelyVisitChildren(_parameters, visitor); 5226 safelyVisitChildren(_parameters, visitor);
5235 safelyVisitChildren(_typeParameters, visitor); 5227 safelyVisitChildren(_typeParameters, visitor);
5236 } 5228 }
5237 5229
5238 @override 5230 @override
5239 void appendTo(JavaStringBuilder builder) { 5231 void appendTo(StringBuffer buffer) {
5240 builder.append("typedef "); 5232 buffer.write("typedef ");
5241 builder.append(displayName); 5233 buffer.write(displayName);
5242 int typeParameterCount = _typeParameters.length; 5234 int typeParameterCount = _typeParameters.length;
5243 if (typeParameterCount > 0) { 5235 if (typeParameterCount > 0) {
5244 builder.append("<"); 5236 buffer.write("<");
5245 for (int i = 0; i < typeParameterCount; i++) { 5237 for (int i = 0; i < typeParameterCount; i++) {
5246 if (i > 0) { 5238 if (i > 0) {
5247 builder.append(", "); 5239 buffer.write(", ");
5248 } 5240 }
5249 (_typeParameters[i] as TypeParameterElementImpl).appendTo(builder); 5241 (_typeParameters[i] as TypeParameterElementImpl).appendTo(buffer);
5250 } 5242 }
5251 builder.append(">"); 5243 buffer.write(">");
5252 } 5244 }
5253 builder.append("("); 5245 buffer.write("(");
5254 int parameterCount = _parameters.length; 5246 int parameterCount = _parameters.length;
5255 for (int i = 0; i < parameterCount; i++) { 5247 for (int i = 0; i < parameterCount; i++) {
5256 if (i > 0) { 5248 if (i > 0) {
5257 builder.append(", "); 5249 buffer.write(", ");
5258 } 5250 }
5259 (_parameters[i] as ParameterElementImpl).appendTo(builder); 5251 (_parameters[i] as ParameterElementImpl).appendTo(buffer);
5260 } 5252 }
5261 builder.append(")"); 5253 buffer.write(")");
5262 if (type != null) { 5254 if (type != null) {
5263 builder.append(Element.RIGHT_ARROW); 5255 buffer.write(Element.RIGHT_ARROW);
5264 builder.append(type.returnType); 5256 buffer.write(type.returnType);
5265 } 5257 }
5266 } 5258 }
5267 } 5259 }
5268 5260
5269 /** 5261 /**
5270 * Instances of the class `FunctionTypeImpl` defines the behavior common to obje cts 5262 * Instances of the class `FunctionTypeImpl` defines the behavior common to obje cts
5271 * representing the type of a function, method, constructor, getter, or setter. 5263 * representing the type of a function, method, constructor, getter, or setter.
5272 */ 5264 */
5273 class FunctionTypeImpl extends TypeImpl implements FunctionType { 5265 class FunctionTypeImpl extends TypeImpl implements FunctionType {
5274 /** 5266 /**
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
5325 @override 5317 @override
5326 String get displayName { 5318 String get displayName {
5327 String name = this.name; 5319 String name = this.name;
5328 if (name == null || name.length == 0) { 5320 if (name == null || name.length == 0) {
5329 // Function types have an empty name when they are defined implicitly by e ither a closure or 5321 // Function types have an empty name when they are defined implicitly by e ither a closure or
5330 // as part of a parameter declaration. 5322 // as part of a parameter declaration.
5331 List<DartType> normalParameterTypes = this.normalParameterTypes; 5323 List<DartType> normalParameterTypes = this.normalParameterTypes;
5332 List<DartType> optionalParameterTypes = this.optionalParameterTypes; 5324 List<DartType> optionalParameterTypes = this.optionalParameterTypes;
5333 Map<String, DartType> namedParameterTypes = this.namedParameterTypes; 5325 Map<String, DartType> namedParameterTypes = this.namedParameterTypes;
5334 DartType returnType = this.returnType; 5326 DartType returnType = this.returnType;
5335 JavaStringBuilder builder = new JavaStringBuilder(); 5327 StringBuffer buffer = new StringBuffer();
5336 builder.append("("); 5328 buffer.write("(");
5337 bool needsComma = false; 5329 bool needsComma = false;
5338 if (normalParameterTypes.length > 0) { 5330 if (normalParameterTypes.length > 0) {
5339 for (DartType type in normalParameterTypes) { 5331 for (DartType type in normalParameterTypes) {
5340 if (needsComma) { 5332 if (needsComma) {
5341 builder.append(", "); 5333 buffer.write(", ");
5342 } else { 5334 } else {
5343 needsComma = true; 5335 needsComma = true;
5344 } 5336 }
5345 builder.append(type.displayName); 5337 buffer.write(type.displayName);
5346 } 5338 }
5347 } 5339 }
5348 if (optionalParameterTypes.length > 0) { 5340 if (optionalParameterTypes.length > 0) {
5349 if (needsComma) { 5341 if (needsComma) {
5350 builder.append(", "); 5342 buffer.write(", ");
5351 needsComma = false; 5343 needsComma = false;
5352 } 5344 }
5353 builder.append("["); 5345 buffer.write("[");
5354 for (DartType type in optionalParameterTypes) { 5346 for (DartType type in optionalParameterTypes) {
5355 if (needsComma) { 5347 if (needsComma) {
5356 builder.append(", "); 5348 buffer.write(", ");
5357 } else { 5349 } else {
5358 needsComma = true; 5350 needsComma = true;
5359 } 5351 }
5360 builder.append(type.displayName); 5352 buffer.write(type.displayName);
5361 } 5353 }
5362 builder.append("]"); 5354 buffer.write("]");
5363 needsComma = true; 5355 needsComma = true;
5364 } 5356 }
5365 if (namedParameterTypes.length > 0) { 5357 if (namedParameterTypes.length > 0) {
5366 if (needsComma) { 5358 if (needsComma) {
5367 builder.append(", "); 5359 buffer.write(", ");
5368 needsComma = false; 5360 needsComma = false;
5369 } 5361 }
5370 builder.append("{"); 5362 buffer.write("{");
5371 for (MapEntry<String, DartType> entry in getMapEntrySet(namedParameterTy pes)) { 5363 for (MapEntry<String, DartType> entry in getMapEntrySet(namedParameterTy pes)) {
5372 if (needsComma) { 5364 if (needsComma) {
5373 builder.append(", "); 5365 buffer.write(", ");
5374 } else { 5366 } else {
5375 needsComma = true; 5367 needsComma = true;
5376 } 5368 }
5377 builder.append(entry.getKey()); 5369 buffer.write(entry.getKey());
5378 builder.append(": "); 5370 buffer.write(": ");
5379 builder.append(entry.getValue().displayName); 5371 buffer.write(entry.getValue().displayName);
5380 } 5372 }
5381 builder.append("}"); 5373 buffer.write("}");
5382 needsComma = true; 5374 needsComma = true;
5383 } 5375 }
5384 builder.append(")"); 5376 buffer.write(")");
5385 builder.append(Element.RIGHT_ARROW); 5377 buffer.write(Element.RIGHT_ARROW);
5386 if (returnType == null) { 5378 if (returnType == null) {
5387 builder.append("null"); 5379 buffer.write("null");
5388 } else { 5380 } else {
5389 builder.append(returnType.displayName); 5381 buffer.write(returnType.displayName);
5390 } 5382 }
5391 name = builder.toString(); 5383 name = buffer.toString();
5392 } 5384 }
5393 return name; 5385 return name;
5394 } 5386 }
5395 5387
5396 @override 5388 @override
5397 Map<String, DartType> get namedParameterTypes { 5389 Map<String, DartType> get namedParameterTypes {
5398 LinkedHashMap<String, DartType> namedParameterTypes = new LinkedHashMap<Stri ng, DartType>(); 5390 LinkedHashMap<String, DartType> namedParameterTypes = new LinkedHashMap<Stri ng, DartType>();
5399 List<ParameterElement> parameters = baseParameters; 5391 List<ParameterElement> parameters = baseParameters;
5400 if (parameters.length == 0) { 5392 if (parameters.length == 0) {
5401 return namedParameterTypes; 5393 return namedParameterTypes;
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
5649 if (argumentTypes.length == 0) { 5641 if (argumentTypes.length == 0) {
5650 return this; 5642 return this;
5651 } 5643 }
5652 Element element = this.element; 5644 Element element = this.element;
5653 FunctionTypeImpl newType = (element is ExecutableElement) ? new FunctionType Impl.con1(element) : new FunctionTypeImpl.con2(element as FunctionTypeAliasEleme nt); 5645 FunctionTypeImpl newType = (element is ExecutableElement) ? new FunctionType Impl.con1(element) : new FunctionTypeImpl.con2(element as FunctionTypeAliasEleme nt);
5654 newType.typeArguments = TypeImpl.substitute(typeArguments, argumentTypes, pa rameterTypes); 5646 newType.typeArguments = TypeImpl.substitute(typeArguments, argumentTypes, pa rameterTypes);
5655 return newType; 5647 return newType;
5656 } 5648 }
5657 5649
5658 @override 5650 @override
5659 void appendTo(JavaStringBuilder builder) { 5651 void appendTo(StringBuffer buffer) {
5660 List<DartType> normalParameterTypes = this.normalParameterTypes; 5652 List<DartType> normalParameterTypes = this.normalParameterTypes;
5661 List<DartType> optionalParameterTypes = this.optionalParameterTypes; 5653 List<DartType> optionalParameterTypes = this.optionalParameterTypes;
5662 Map<String, DartType> namedParameterTypes = this.namedParameterTypes; 5654 Map<String, DartType> namedParameterTypes = this.namedParameterTypes;
5663 DartType returnType = this.returnType; 5655 DartType returnType = this.returnType;
5664 builder.append("("); 5656 buffer.write("(");
5665 bool needsComma = false; 5657 bool needsComma = false;
5666 if (normalParameterTypes.length > 0) { 5658 if (normalParameterTypes.length > 0) {
5667 for (DartType type in normalParameterTypes) { 5659 for (DartType type in normalParameterTypes) {
5668 if (needsComma) { 5660 if (needsComma) {
5669 builder.append(", "); 5661 buffer.write(", ");
5670 } else { 5662 } else {
5671 needsComma = true; 5663 needsComma = true;
5672 } 5664 }
5673 (type as TypeImpl).appendTo(builder); 5665 (type as TypeImpl).appendTo(buffer);
5674 } 5666 }
5675 } 5667 }
5676 if (optionalParameterTypes.length > 0) { 5668 if (optionalParameterTypes.length > 0) {
5677 if (needsComma) { 5669 if (needsComma) {
5678 builder.append(", "); 5670 buffer.write(", ");
5679 needsComma = false; 5671 needsComma = false;
5680 } 5672 }
5681 builder.append("["); 5673 buffer.write("[");
5682 for (DartType type in optionalParameterTypes) { 5674 for (DartType type in optionalParameterTypes) {
5683 if (needsComma) { 5675 if (needsComma) {
5684 builder.append(", "); 5676 buffer.write(", ");
5685 } else { 5677 } else {
5686 needsComma = true; 5678 needsComma = true;
5687 } 5679 }
5688 (type as TypeImpl).appendTo(builder); 5680 (type as TypeImpl).appendTo(buffer);
5689 } 5681 }
5690 builder.append("]"); 5682 buffer.write("]");
5691 needsComma = true; 5683 needsComma = true;
5692 } 5684 }
5693 if (namedParameterTypes.length > 0) { 5685 if (namedParameterTypes.length > 0) {
5694 if (needsComma) { 5686 if (needsComma) {
5695 builder.append(", "); 5687 buffer.write(", ");
5696 needsComma = false; 5688 needsComma = false;
5697 } 5689 }
5698 builder.append("{"); 5690 buffer.write("{");
5699 for (MapEntry<String, DartType> entry in getMapEntrySet(namedParameterType s)) { 5691 for (MapEntry<String, DartType> entry in getMapEntrySet(namedParameterType s)) {
5700 if (needsComma) { 5692 if (needsComma) {
5701 builder.append(", "); 5693 buffer.write(", ");
5702 } else { 5694 } else {
5703 needsComma = true; 5695 needsComma = true;
5704 } 5696 }
5705 builder.append(entry.getKey()); 5697 buffer.write(entry.getKey());
5706 builder.append(": "); 5698 buffer.write(": ");
5707 (entry.getValue() as TypeImpl).appendTo(builder); 5699 (entry.getValue() as TypeImpl).appendTo(buffer);
5708 } 5700 }
5709 builder.append("}"); 5701 buffer.write("}");
5710 needsComma = true; 5702 needsComma = true;
5711 } 5703 }
5712 builder.append(")"); 5704 buffer.write(")");
5713 builder.append(Element.RIGHT_ARROW); 5705 buffer.write(Element.RIGHT_ARROW);
5714 if (returnType == null) { 5706 if (returnType == null) {
5715 builder.append("null"); 5707 buffer.write("null");
5716 } else { 5708 } else {
5717 (returnType as TypeImpl).appendTo(builder); 5709 (returnType as TypeImpl).appendTo(buffer);
5718 } 5710 }
5719 } 5711 }
5720 5712
5721 /** 5713 /**
5722 * @return the base parameter elements of this function element, not `null`. 5714 * @return the base parameter elements of this function element, not `null`.
5723 */ 5715 */
5724 List<ParameterElement> get baseParameters { 5716 List<ParameterElement> get baseParameters {
5725 Element element = this.element; 5717 Element element = this.element;
5726 if (element is ExecutableElement) { 5718 if (element is ExecutableElement) {
5727 return element.parameters; 5719 return element.parameters;
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
6062 class HasAttributeSelectorElementImpl extends AngularSelectorElementImpl impleme nts AngularHasAttributeSelectorElement { 6054 class HasAttributeSelectorElementImpl extends AngularSelectorElementImpl impleme nts AngularHasAttributeSelectorElement {
6063 HasAttributeSelectorElementImpl(String attributeName, int offset) : super(attr ibuteName, offset); 6055 HasAttributeSelectorElementImpl(String attributeName, int offset) : super(attr ibuteName, offset);
6064 6056
6065 @override 6057 @override
6066 bool apply(XmlTagNode node) { 6058 bool apply(XmlTagNode node) {
6067 String attributeName = name; 6059 String attributeName = name;
6068 return node.getAttribute(attributeName) != null; 6060 return node.getAttribute(attributeName) != null;
6069 } 6061 }
6070 6062
6071 @override 6063 @override
6072 void appendTo(JavaStringBuilder builder) { 6064 void appendTo(StringBuffer buffer) {
6073 builder.append("["); 6065 buffer.write("[");
6074 builder.append(name); 6066 buffer.write(name);
6075 builder.append("]"); 6067 buffer.write("]");
6076 } 6068 }
6077 } 6069 }
6078 6070
6079 /** 6071 /**
6080 * The interface `HideElementCombinator` defines the behavior of combinators tha t cause some 6072 * The interface `HideElementCombinator` defines the behavior of combinators tha t cause some
6081 * of the names in a namespace to be hidden when being imported. 6073 * of the names in a namespace to be hidden when being imported.
6082 */ 6074 */
6083 abstract class HideElementCombinator implements NamespaceCombinator { 6075 abstract class HideElementCombinator implements NamespaceCombinator {
6084 /** 6076 /**
6085 * Return an array containing the names that are not to be made visible in the importing library 6077 * Return an array containing the names that are not to be made visible in the importing library
(...skipping 10 matching lines...) Expand all
6096 */ 6088 */
6097 class HideElementCombinatorImpl implements HideElementCombinator { 6089 class HideElementCombinatorImpl implements HideElementCombinator {
6098 /** 6090 /**
6099 * The names that are not to be made visible in the importing library even if they are defined in 6091 * The names that are not to be made visible in the importing library even if they are defined in
6100 * the imported library. 6092 * the imported library.
6101 */ 6093 */
6102 List<String> hiddenNames = StringUtilities.EMPTY_ARRAY; 6094 List<String> hiddenNames = StringUtilities.EMPTY_ARRAY;
6103 6095
6104 @override 6096 @override
6105 String toString() { 6097 String toString() {
6106 JavaStringBuilder builder = new JavaStringBuilder(); 6098 StringBuffer buffer = new StringBuffer();
6107 builder.append("show "); 6099 buffer.write("show ");
6108 int count = hiddenNames.length; 6100 int count = hiddenNames.length;
6109 for (int i = 0; i < count; i++) { 6101 for (int i = 0; i < count; i++) {
6110 if (i > 0) { 6102 if (i > 0) {
6111 builder.append(", "); 6103 buffer.write(", ");
6112 } 6104 }
6113 builder.append(hiddenNames[i]); 6105 buffer.write(hiddenNames[i]);
6114 } 6106 }
6115 return builder.toString(); 6107 return buffer.toString();
6116 } 6108 }
6117 } 6109 }
6118 6110
6119 /** 6111 /**
6120 * The interface `HtmlElement` defines the behavior of elements representing an HTML file. 6112 * The interface `HtmlElement` defines the behavior of elements representing an HTML file.
6121 */ 6113 */
6122 abstract class HtmlElement implements Element { 6114 abstract class HtmlElement implements Element {
6123 /** 6115 /**
6124 * Return the [CompilationUnitElement] associated with this Angular HTML file, maybe 6116 * Return the [CompilationUnitElement] associated with this Angular HTML file, maybe
6125 * `null` if not an Angular file. 6117 * `null` if not an Angular file.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
6244 } 6236 }
6245 6237
6246 @override 6238 @override
6247 void visitChildren(ElementVisitor visitor) { 6239 void visitChildren(ElementVisitor visitor) {
6248 super.visitChildren(visitor); 6240 super.visitChildren(visitor);
6249 safelyVisitChildren(_scripts, visitor); 6241 safelyVisitChildren(_scripts, visitor);
6250 safelyVisitChildren(_polymerTags, visitor); 6242 safelyVisitChildren(_polymerTags, visitor);
6251 } 6243 }
6252 6244
6253 @override 6245 @override
6254 void appendTo(JavaStringBuilder builder) { 6246 void appendTo(StringBuffer buffer) {
6255 if (source == null) { 6247 if (source == null) {
6256 builder.append("{HTML file}"); 6248 buffer.write("{HTML file}");
6257 } else { 6249 } else {
6258 builder.append(source.fullName); 6250 buffer.write(source.fullName);
6259 } 6251 }
6260 } 6252 }
6261 6253
6262 @override 6254 @override
6263 String get identifier => source.encoding; 6255 String get identifier => source.encoding;
6264 } 6256 }
6265 6257
6266 /** 6258 /**
6267 * The interface `HtmlScriptElement` defines the behavior of elements representi ng a script 6259 * The interface `HtmlScriptElement` defines the behavior of elements representi ng a script
6268 * tag in an HTML file. 6260 * tag in an HTML file.
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
6392 setModifier(Modifier.DEFERRED, isDeferred); 6384 setModifier(Modifier.DEFERRED, isDeferred);
6393 } 6385 }
6394 6386
6395 @override 6387 @override
6396 void visitChildren(ElementVisitor visitor) { 6388 void visitChildren(ElementVisitor visitor) {
6397 super.visitChildren(visitor); 6389 super.visitChildren(visitor);
6398 safelyVisitChild(prefix, visitor); 6390 safelyVisitChild(prefix, visitor);
6399 } 6391 }
6400 6392
6401 @override 6393 @override
6402 void appendTo(JavaStringBuilder builder) { 6394 void appendTo(StringBuffer buffer) {
6403 builder.append("import "); 6395 buffer.write("import ");
6404 (importedLibrary as LibraryElementImpl).appendTo(builder); 6396 (importedLibrary as LibraryElementImpl).appendTo(buffer);
6405 } 6397 }
6406 6398
6407 @override 6399 @override
6408 String get identifier => "${(importedLibrary as LibraryElementImpl).identifier }@${nameOffset}"; 6400 String get identifier => "${(importedLibrary as LibraryElementImpl).identifier }@${nameOffset}";
6409 } 6401 }
6410 6402
6411 /** 6403 /**
6412 * The interface `InterfaceType` defines the behavior common to objects represen ting the type 6404 * The interface `InterfaceType` defines the behavior common to objects represen ting the type
6413 * introduced by either a class or an interface, or a reference to such a type. 6405 * introduced by either a class or an interface, or a reference to such a type.
6414 */ 6406 */
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
6896 List<DartType> typeArguments = this.typeArguments; 6888 List<DartType> typeArguments = this.typeArguments;
6897 bool allDynamic = true; 6889 bool allDynamic = true;
6898 for (DartType type in typeArguments) { 6890 for (DartType type in typeArguments) {
6899 if (type != null && !type.isDynamic) { 6891 if (type != null && !type.isDynamic) {
6900 allDynamic = false; 6892 allDynamic = false;
6901 break; 6893 break;
6902 } 6894 }
6903 } 6895 }
6904 // If there is at least one non-dynamic type, then list them out 6896 // If there is at least one non-dynamic type, then list them out
6905 if (!allDynamic) { 6897 if (!allDynamic) {
6906 JavaStringBuilder builder = new JavaStringBuilder(); 6898 StringBuffer buffer = new StringBuffer();
6907 builder.append(name); 6899 buffer.write(name);
6908 builder.append("<"); 6900 buffer.write("<");
6909 for (int i = 0; i < typeArguments.length; i++) { 6901 for (int i = 0; i < typeArguments.length; i++) {
6910 if (i != 0) { 6902 if (i != 0) {
6911 builder.append(", "); 6903 buffer.write(", ");
6912 } 6904 }
6913 DartType typeArg = typeArguments[i]; 6905 DartType typeArg = typeArguments[i];
6914 builder.append(typeArg.displayName); 6906 buffer.write(typeArg.displayName);
6915 } 6907 }
6916 builder.append(">"); 6908 buffer.write(">");
6917 name = builder.toString(); 6909 name = buffer.toString();
6918 } 6910 }
6919 return name; 6911 return name;
6920 } 6912 }
6921 6913
6922 @override 6914 @override
6923 ClassElement get element => super.element as ClassElement; 6915 ClassElement get element => super.element as ClassElement;
6924 6916
6925 @override 6917 @override
6926 PropertyAccessorElement getGetter(String getterName) => PropertyAccessorMember .from((element as ClassElementImpl).getGetter(getterName), this); 6918 PropertyAccessorElement getGetter(String getterName) => PropertyAccessorMember .from((element as ClassElementImpl).getGetter(getterName), this);
6927 6919
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
7261 List<DartType> newTypeArguments = TypeImpl.substitute(typeArguments, argumen tTypes, parameterTypes); 7253 List<DartType> newTypeArguments = TypeImpl.substitute(typeArguments, argumen tTypes, parameterTypes);
7262 if (JavaArrays.equals(newTypeArguments, typeArguments)) { 7254 if (JavaArrays.equals(newTypeArguments, typeArguments)) {
7263 return this; 7255 return this;
7264 } 7256 }
7265 InterfaceTypeImpl newType = new InterfaceTypeImpl.con1(element); 7257 InterfaceTypeImpl newType = new InterfaceTypeImpl.con1(element);
7266 newType.typeArguments = newTypeArguments; 7258 newType.typeArguments = newTypeArguments;
7267 return newType; 7259 return newType;
7268 } 7260 }
7269 7261
7270 @override 7262 @override
7271 void appendTo(JavaStringBuilder builder) { 7263 void appendTo(StringBuffer buffer) {
7272 builder.append(name); 7264 buffer.write(name);
7273 int argumentCount = typeArguments.length; 7265 int argumentCount = typeArguments.length;
7274 if (argumentCount > 0) { 7266 if (argumentCount > 0) {
7275 builder.append("<"); 7267 buffer.write("<");
7276 for (int i = 0; i < argumentCount; i++) { 7268 for (int i = 0; i < argumentCount; i++) {
7277 if (i > 0) { 7269 if (i > 0) {
7278 builder.append(", "); 7270 buffer.write(", ");
7279 } 7271 }
7280 (typeArguments[i] as TypeImpl).appendTo(builder); 7272 (typeArguments[i] as TypeImpl).appendTo(buffer);
7281 } 7273 }
7282 builder.append(">"); 7274 buffer.write(">");
7283 } 7275 }
7284 } 7276 }
7285 7277
7286 @override 7278 @override
7287 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) { 7279 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) {
7288 if (object is! InterfaceTypeImpl) { 7280 if (object is! InterfaceTypeImpl) {
7289 return false; 7281 return false;
7290 } 7282 }
7291 InterfaceTypeImpl otherType = object as InterfaceTypeImpl; 7283 InterfaceTypeImpl otherType = object as InterfaceTypeImpl;
7292 return (element == otherType.element) && TypeImpl.equalArrays(typeArguments, otherType.typeArguments, visitedElementPairs); 7284 return (element == otherType.element) && TypeImpl.equalArrays(typeArguments, otherType.typeArguments, visitedElementPairs);
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after
8335 * @param offset the offset to the beginning of the visible range for this ele ment 8327 * @param offset the offset to the beginning of the visible range for this ele ment
8336 * @param length the length of the visible range for this element, or `-1` if this element 8328 * @param length the length of the visible range for this element, or `-1` if this element
8337 * does not have a visible range 8329 * does not have a visible range
8338 */ 8330 */
8339 void setVisibleRange(int offset, int length) { 8331 void setVisibleRange(int offset, int length) {
8340 _visibleRangeOffset = offset; 8332 _visibleRangeOffset = offset;
8341 _visibleRangeLength = length; 8333 _visibleRangeLength = length;
8342 } 8334 }
8343 8335
8344 @override 8336 @override
8345 void appendTo(JavaStringBuilder builder) { 8337 void appendTo(StringBuffer buffer) {
8346 builder.append(type); 8338 buffer.write(type);
8347 builder.append(" "); 8339 buffer.write(" ");
8348 builder.append(displayName); 8340 buffer.write(displayName);
8349 } 8341 }
8350 8342
8351 @override 8343 @override
8352 String get identifier => "${super.identifier}@${nameOffset}"; 8344 String get identifier => "${super.identifier}@${nameOffset}";
8353 } 8345 }
8354 8346
8355 /** 8347 /**
8356 * The abstract class `Member` defines the behavior common to elements that repr esent members 8348 * The abstract class `Member` defines the behavior common to elements that repr esent members
8357 * of parameterized types. 8349 * of parameterized types.
8358 */ 8350 */
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
8623 /** 8615 /**
8624 * Set whether this method is static to correspond to the given value. 8616 * Set whether this method is static to correspond to the given value.
8625 * 8617 *
8626 * @param isStatic `true` if the method is static 8618 * @param isStatic `true` if the method is static
8627 */ 8619 */
8628 void set static(bool isStatic) { 8620 void set static(bool isStatic) {
8629 setModifier(Modifier.STATIC, isStatic); 8621 setModifier(Modifier.STATIC, isStatic);
8630 } 8622 }
8631 8623
8632 @override 8624 @override
8633 void appendTo(JavaStringBuilder builder) { 8625 void appendTo(StringBuffer buffer) {
8634 builder.append(enclosingElement.displayName); 8626 buffer.write(enclosingElement.displayName);
8635 builder.append("."); 8627 buffer.write(".");
8636 builder.append(displayName); 8628 buffer.write(displayName);
8637 super.appendTo(builder); 8629 super.appendTo(buffer);
8638 } 8630 }
8639 } 8631 }
8640 8632
8641 /** 8633 /**
8642 * Instances of the class `MethodMember` represent a method element defined in a parameterized 8634 * Instances of the class `MethodMember` represent a method element defined in a parameterized
8643 * type where the values of the type parameters are known. 8635 * type where the values of the type parameters are known.
8644 */ 8636 */
8645 class MethodMember extends ExecutableMember implements MethodElement { 8637 class MethodMember extends ExecutableMember implements MethodElement {
8646 /** 8638 /**
8647 * If the given method's type is different when any type parameters from the d efining type's 8639 * If the given method's type is different when any type parameters from the d efining type's
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
8691 MethodDeclaration get node => baseElement.node; 8683 MethodDeclaration get node => baseElement.node;
8692 8684
8693 @override 8685 @override
8694 bool get isAbstract => baseElement.isAbstract; 8686 bool get isAbstract => baseElement.isAbstract;
8695 8687
8696 @override 8688 @override
8697 String toString() { 8689 String toString() {
8698 MethodElement baseElement = this.baseElement; 8690 MethodElement baseElement = this.baseElement;
8699 List<ParameterElement> parameters = this.parameters; 8691 List<ParameterElement> parameters = this.parameters;
8700 FunctionType type = this.type; 8692 FunctionType type = this.type;
8701 JavaStringBuilder builder = new JavaStringBuilder(); 8693 StringBuffer buffer = new StringBuffer();
8702 builder.append(baseElement.enclosingElement.displayName); 8694 buffer.write(baseElement.enclosingElement.displayName);
8703 builder.append("."); 8695 buffer.write(".");
8704 builder.append(baseElement.displayName); 8696 buffer.write(baseElement.displayName);
8705 builder.append("("); 8697 buffer.write("(");
8706 int parameterCount = parameters.length; 8698 int parameterCount = parameters.length;
8707 for (int i = 0; i < parameterCount; i++) { 8699 for (int i = 0; i < parameterCount; i++) {
8708 if (i > 0) { 8700 if (i > 0) {
8709 builder.append(", "); 8701 buffer.write(", ");
8710 } 8702 }
8711 builder.append(parameters[i]).toString(); 8703 buffer.write(parameters[i]);
8712 } 8704 }
8713 builder.append(")"); 8705 buffer.write(")");
8714 if (type != null) { 8706 if (type != null) {
8715 builder.append(Element.RIGHT_ARROW); 8707 buffer.write(Element.RIGHT_ARROW);
8716 builder.append(type.returnType); 8708 buffer.write(type.returnType);
8717 } 8709 }
8718 return builder.toString(); 8710 return buffer.toString();
8719 } 8711 }
8720 } 8712 }
8721 8713
8722 /** 8714 /**
8723 * The enumeration `Modifier` defines constants for all of the modifiers defined by the Dart 8715 * The enumeration `Modifier` defines constants for all of the modifiers defined by the Dart
8724 * language and for a few additional flags that are useful. 8716 * language and for a few additional flags that are useful.
8725 */ 8717 */
8726 class Modifier extends Enum<Modifier> { 8718 class Modifier extends Enum<Modifier> {
8727 /** 8719 /**
8728 * Indicates that the modifier 'abstract' was applied to the element. 8720 * Indicates that the modifier 'abstract' was applied to the element.
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
9025 } 9017 }
9026 9018
9027 @override 9019 @override
9028 bool get isPublic => !isPrivate; 9020 bool get isPublic => !isPrivate;
9029 9021
9030 @override 9022 @override
9031 bool get isSynthetic => true; 9023 bool get isSynthetic => true;
9032 9024
9033 @override 9025 @override
9034 String toString() { 9026 String toString() {
9035 JavaStringBuilder builder = new JavaStringBuilder(); 9027 StringBuffer buffer = new StringBuffer();
9036 builder.append("["); 9028 buffer.write("[");
9037 int count = conflictingElements.length; 9029 int count = conflictingElements.length;
9038 for (int i = 0; i < count; i++) { 9030 for (int i = 0; i < count; i++) {
9039 if (i > 0) { 9031 if (i > 0) {
9040 builder.append(", "); 9032 buffer.write(", ");
9041 } 9033 }
9042 (conflictingElements[i] as ElementImpl).appendTo(builder); 9034 (conflictingElements[i] as ElementImpl).appendTo(buffer);
9043 } 9035 }
9044 builder.append("]"); 9036 buffer.write("]");
9045 return builder.toString(); 9037 return buffer.toString();
9046 } 9038 }
9047 9039
9048 @override 9040 @override
9049 void visitChildren(ElementVisitor visitor) { 9041 void visitChildren(ElementVisitor visitor) {
9050 // There are no children to visit 9042 // There are no children to visit
9051 } 9043 }
9052 } 9044 }
9053 9045
9054 /** 9046 /**
9055 * The interface [MultiplyInheritedExecutableElement] defines all of the behavio r of an 9047 * The interface [MultiplyInheritedExecutableElement] defines all of the behavio r of an
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
9295 _visibleRangeLength = length; 9287 _visibleRangeLength = length;
9296 } 9288 }
9297 9289
9298 @override 9290 @override
9299 void visitChildren(ElementVisitor visitor) { 9291 void visitChildren(ElementVisitor visitor) {
9300 super.visitChildren(visitor); 9292 super.visitChildren(visitor);
9301 safelyVisitChildren(_parameters, visitor); 9293 safelyVisitChildren(_parameters, visitor);
9302 } 9294 }
9303 9295
9304 @override 9296 @override
9305 void appendTo(JavaStringBuilder builder) { 9297 void appendTo(StringBuffer buffer) {
9306 String left = ""; 9298 String left = "";
9307 String right = ""; 9299 String right = "";
9308 while (true) { 9300 while (true) {
9309 if (parameterKind == ParameterKind.NAMED) { 9301 if (parameterKind == ParameterKind.NAMED) {
9310 left = "{"; 9302 left = "{";
9311 right = "}"; 9303 right = "}";
9312 } else if (parameterKind == ParameterKind.POSITIONAL) { 9304 } else if (parameterKind == ParameterKind.POSITIONAL) {
9313 left = "["; 9305 left = "[";
9314 right = "]"; 9306 right = "]";
9315 } else if (parameterKind == ParameterKind.REQUIRED) { 9307 } else if (parameterKind == ParameterKind.REQUIRED) {
9316 } 9308 }
9317 break; 9309 break;
9318 } 9310 }
9319 builder.append(left); 9311 buffer.write(left);
9320 appendToWithoutDelimiters(builder); 9312 appendToWithoutDelimiters(buffer);
9321 builder.append(right); 9313 buffer.write(right);
9322 } 9314 }
9323 9315
9324 /** 9316 /**
9325 * Append the type and name of this parameter to the given builder. 9317 * Append the type and name of this parameter to the given builder.
9326 * 9318 *
9327 * @param builder the builder to which the type and name are to be appended 9319 * @param builder the builder to which the type and name are to be appended
9328 */ 9320 */
9329 void appendToWithoutDelimiters(JavaStringBuilder builder) { 9321 void appendToWithoutDelimiters(StringBuffer buffer) {
9330 builder.append(type); 9322 buffer.write(type);
9331 builder.append(" "); 9323 buffer.write(" ");
9332 builder.append(displayName); 9324 buffer.write(displayName);
9333 if (_defaultValueCode != null) { 9325 if (_defaultValueCode != null) {
9334 if (parameterKind == ParameterKind.NAMED) { 9326 if (parameterKind == ParameterKind.NAMED) {
9335 builder.append(": "); 9327 buffer.write(": ");
9336 } 9328 }
9337 if (parameterKind == ParameterKind.POSITIONAL) { 9329 if (parameterKind == ParameterKind.POSITIONAL) {
9338 builder.append(" = "); 9330 buffer.write(" = ");
9339 } 9331 }
9340 builder.append(_defaultValueCode); 9332 buffer.write(_defaultValueCode);
9341 } 9333 }
9342 } 9334 }
9343 } 9335 }
9344 9336
9345 /** 9337 /**
9346 * Instances of the class `ParameterMember` represent a parameter element define d in a 9338 * Instances of the class `ParameterMember` represent a parameter element define d in a
9347 * parameterized type where the values of the type parameters are known. 9339 * parameterized type where the values of the type parameters are known.
9348 */ 9340 */
9349 class ParameterMember extends VariableMember implements ParameterElement { 9341 class ParameterMember extends VariableMember implements ParameterElement {
9350 /** 9342 /**
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
9451 if (baseElement.parameterKind == ParameterKind.NAMED) { 9443 if (baseElement.parameterKind == ParameterKind.NAMED) {
9452 left = "{"; 9444 left = "{";
9453 right = "}"; 9445 right = "}";
9454 } else if (baseElement.parameterKind == ParameterKind.POSITIONAL) { 9446 } else if (baseElement.parameterKind == ParameterKind.POSITIONAL) {
9455 left = "["; 9447 left = "[";
9456 right = "]"; 9448 right = "]";
9457 } else if (baseElement.parameterKind == ParameterKind.REQUIRED) { 9449 } else if (baseElement.parameterKind == ParameterKind.REQUIRED) {
9458 } 9450 }
9459 break; 9451 break;
9460 } 9452 }
9461 JavaStringBuilder builder = new JavaStringBuilder(); 9453 return '$left$type ${baseElement.displayName}$right';
9462 builder.append(left);
9463 builder.append(type);
9464 builder.append(" ");
9465 builder.append(baseElement.displayName);
9466 builder.append(right);
9467 return builder.toString();
9468 } 9454 }
9469 9455
9470 @override 9456 @override
9471 void visitChildren(ElementVisitor visitor) { 9457 void visitChildren(ElementVisitor visitor) {
9472 super.visitChildren(visitor); 9458 super.visitChildren(visitor);
9473 safelyVisitChildren(parameters, visitor); 9459 safelyVisitChildren(parameters, visitor);
9474 } 9460 }
9475 } 9461 }
9476 9462
9477 /** 9463 /**
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
9770 * @param importedLibraries the libraries that are imported using this prefix 9756 * @param importedLibraries the libraries that are imported using this prefix
9771 */ 9757 */
9772 void set importedLibraries(List<LibraryElement> importedLibraries) { 9758 void set importedLibraries(List<LibraryElement> importedLibraries) {
9773 for (LibraryElement library in importedLibraries) { 9759 for (LibraryElement library in importedLibraries) {
9774 (library as LibraryElementImpl).enclosingElement = this; 9760 (library as LibraryElementImpl).enclosingElement = this;
9775 } 9761 }
9776 this._importedLibraries = importedLibraries; 9762 this._importedLibraries = importedLibraries;
9777 } 9763 }
9778 9764
9779 @override 9765 @override
9780 void appendTo(JavaStringBuilder builder) { 9766 void appendTo(StringBuffer buffer) {
9781 builder.append("as "); 9767 buffer.write("as ");
9782 super.appendTo(builder); 9768 super.appendTo(buffer);
9783 } 9769 }
9784 9770
9785 @override 9771 @override
9786 String get identifier => "_${super.identifier}"; 9772 String get identifier => "_${super.identifier}";
9787 } 9773 }
9788 9774
9789 /** 9775 /**
9790 * The interface `PropertyAccessorElement` defines the behavior of elements repr esenting a 9776 * The interface `PropertyAccessorElement` defines the behavior of elements repr esenting a
9791 * getter or a setter. Note that explicitly defined property accessors implicitl y define a synthetic 9777 * getter or a setter. Note that explicitly defined property accessors implicitl y define a synthetic
9792 * field. Symmetrically, synthetic accessors are implicitly created for explicit ly defined fields. 9778 * field. Symmetrically, synthetic accessors are implicitly created for explicit ly defined fields.
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
9980 /** 9966 /**
9981 * Set whether this accessor is static to correspond to the given value. 9967 * Set whether this accessor is static to correspond to the given value.
9982 * 9968 *
9983 * @param isStatic `true` if the accessor is static 9969 * @param isStatic `true` if the accessor is static
9984 */ 9970 */
9985 void set static(bool isStatic) { 9971 void set static(bool isStatic) {
9986 setModifier(Modifier.STATIC, isStatic); 9972 setModifier(Modifier.STATIC, isStatic);
9987 } 9973 }
9988 9974
9989 @override 9975 @override
9990 void appendTo(JavaStringBuilder builder) { 9976 void appendTo(StringBuffer buffer) {
9991 builder.append(isGetter ? "get " : "set "); 9977 buffer.write(isGetter ? "get " : "set ");
9992 builder.append(variable.displayName); 9978 buffer.write(variable.displayName);
9993 super.appendTo(builder); 9979 super.appendTo(buffer);
9994 } 9980 }
9995 9981
9996 @override 9982 @override
9997 String get identifier { 9983 String get identifier {
9998 String name = displayName; 9984 String name = displayName;
9999 String suffix = isGetter ? "?" : "="; 9985 String suffix = isGetter ? "?" : "=";
10000 return "${name}${suffix}"; 9986 return "${name}${suffix}";
10001 } 9987 }
10002 } 9988 }
10003 9989
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
10100 bool get isGetter => baseElement.isGetter; 10086 bool get isGetter => baseElement.isGetter;
10101 10087
10102 @override 10088 @override
10103 bool get isSetter => baseElement.isSetter; 10089 bool get isSetter => baseElement.isSetter;
10104 10090
10105 @override 10091 @override
10106 String toString() { 10092 String toString() {
10107 PropertyAccessorElement baseElement = this.baseElement; 10093 PropertyAccessorElement baseElement = this.baseElement;
10108 List<ParameterElement> parameters = this.parameters; 10094 List<ParameterElement> parameters = this.parameters;
10109 FunctionType type = this.type; 10095 FunctionType type = this.type;
10110 JavaStringBuilder builder = new JavaStringBuilder(); 10096 StringBuffer builder = new StringBuffer();
10111 if (isGetter) { 10097 if (isGetter) {
10112 builder.append("get "); 10098 builder.write("get ");
10113 } else { 10099 } else {
10114 builder.append("set "); 10100 builder.write("set ");
10115 } 10101 }
10116 builder.append(baseElement.enclosingElement.displayName); 10102 builder.write(baseElement.enclosingElement.displayName);
10117 builder.append("."); 10103 builder.write(".");
10118 builder.append(baseElement.displayName); 10104 builder.write(baseElement.displayName);
10119 builder.append("("); 10105 builder.write("(");
10120 int parameterCount = parameters.length; 10106 int parameterCount = parameters.length;
10121 for (int i = 0; i < parameterCount; i++) { 10107 for (int i = 0; i < parameterCount; i++) {
10122 if (i > 0) { 10108 if (i > 0) {
10123 builder.append(", "); 10109 builder.write(", ");
10124 } 10110 }
10125 builder.append(parameters[i]).toString(); 10111 builder.write(parameters[i]);
10126 } 10112 }
10127 builder.append(")"); 10113 builder.write(")");
10128 if (type != null) { 10114 if (type != null) {
10129 builder.append(Element.RIGHT_ARROW); 10115 builder.write(Element.RIGHT_ARROW);
10130 builder.append(type.returnType); 10116 builder.write(type.returnType);
10131 } 10117 }
10132 return builder.toString(); 10118 return builder.toString();
10133 } 10119 }
10134 10120
10135 @override 10121 @override
10136 InterfaceType get definingType => super.definingType as InterfaceType; 10122 InterfaceType get definingType => super.definingType as InterfaceType;
10137 } 10123 }
10138 10124
10139 /** 10125 /**
10140 * The interface `PropertyInducingElement` defines the behavior of elements repr esenting a 10126 * The interface `PropertyInducingElement` defines the behavior of elements repr esenting a
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
10485 */ 10471 */
10486 int end = -1; 10472 int end = -1;
10487 10473
10488 /** 10474 /**
10489 * The offset of the 'show' keyword of this element. 10475 * The offset of the 'show' keyword of this element.
10490 */ 10476 */
10491 int offset = 0; 10477 int offset = 0;
10492 10478
10493 @override 10479 @override
10494 String toString() { 10480 String toString() {
10495 JavaStringBuilder builder = new JavaStringBuilder(); 10481 StringBuffer buffer = new StringBuffer();
10496 builder.append("show "); 10482 buffer.write("show ");
10497 int count = shownNames.length; 10483 int count = shownNames.length;
10498 for (int i = 0; i < count; i++) { 10484 for (int i = 0; i < count; i++) {
10499 if (i > 0) { 10485 if (i > 0) {
10500 builder.append(", "); 10486 buffer.write(", ");
10501 } 10487 }
10502 builder.append(shownNames[i]); 10488 buffer.write(shownNames[i]);
10503 } 10489 }
10504 return builder.toString(); 10490 return buffer.toString();
10505 } 10491 }
10506 } 10492 }
10507 10493
10508 /** 10494 /**
10509 * Instances of the class `SimpleElementVisitor` implement an element visitor th at will do 10495 * Instances of the class `SimpleElementVisitor` implement an element visitor th at will do
10510 * nothing when visiting an element. It is intended to be a superclass for class es that use the 10496 * nothing when visiting an element. It is intended to be a superclass for class es that use the
10511 * visitor pattern primarily as a dispatch mechanism (and hence don't need to re cursively visit a 10497 * visitor pattern primarily as a dispatch mechanism (and hence don't need to re cursively visit a
10512 * whole structure) and that only need to visit a small number of element types. 10498 * whole structure) and that only need to visit a small number of element types.
10513 */ 10499 */
10514 class SimpleElementVisitor<R> implements ElementVisitor<R> { 10500 class SimpleElementVisitor<R> implements ElementVisitor<R> {
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
10873 bool isSupertypeOf(DartType type) => type.isSubtypeOf(this); 10859 bool isSupertypeOf(DartType type) => type.isSubtypeOf(this);
10874 10860
10875 @override 10861 @override
10876 bool get isUndefined => false; 10862 bool get isUndefined => false;
10877 10863
10878 @override 10864 @override
10879 bool get isVoid => false; 10865 bool get isVoid => false;
10880 10866
10881 @override 10867 @override
10882 String toString() { 10868 String toString() {
10883 JavaStringBuilder builder = new JavaStringBuilder(); 10869 StringBuffer buffer = new StringBuffer();
10884 appendTo(builder); 10870 appendTo(buffer);
10885 return builder.toString(); 10871 return buffer.toString();
10886 } 10872 }
10887 10873
10888 /** 10874 /**
10889 * Append a textual representation of this type to the given builder. 10875 * Append a textual representation of this type to the given [buffer].
10890 *
10891 * @param builder the builder to which the text is to be appended
10892 */ 10876 */
10893 void appendTo(JavaStringBuilder builder) { 10877 void appendTo(StringBuffer buffer) {
10894 if (name == null) { 10878 if (name == null) {
10895 builder.append("<unnamed type>"); 10879 buffer.write("<unnamed type>");
10896 } else { 10880 } else {
10897 builder.append(name); 10881 buffer.write(name);
10898 } 10882 }
10899 } 10883 }
10900 10884
10901 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs); 10885 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs);
10902 10886
10903 bool internalIsMoreSpecificThan(DartType type, bool withDynamic, Set<TypeImpl_ TypePair> visitedTypePairs); 10887 bool internalIsMoreSpecificThan(DartType type, bool withDynamic, Set<TypeImpl_ TypePair> visitedTypePairs);
10904 10888
10905 bool internalIsSubtypeOf(DartType type, Set<TypeImpl_TypePair> visitedTypePair s); 10889 bool internalIsSubtypeOf(DartType type, Set<TypeImpl_TypePair> visitedTypePair s);
10906 } 10890 }
10907 10891
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
11002 */ 10986 */
11003 TypeParameterElementImpl(String name, int nameOffset) : super(name, nameOffset ); 10987 TypeParameterElementImpl(String name, int nameOffset) : super(name, nameOffset );
11004 10988
11005 @override 10989 @override
11006 accept(ElementVisitor visitor) => visitor.visitTypeParameterElement(this); 10990 accept(ElementVisitor visitor) => visitor.visitTypeParameterElement(this);
11007 10991
11008 @override 10992 @override
11009 ElementKind get kind => ElementKind.TYPE_PARAMETER; 10993 ElementKind get kind => ElementKind.TYPE_PARAMETER;
11010 10994
11011 @override 10995 @override
11012 void appendTo(JavaStringBuilder builder) { 10996 void appendTo(StringBuffer buffer) {
11013 builder.append(displayName); 10997 buffer.write(displayName);
11014 if (bound != null) { 10998 if (bound != null) {
11015 builder.append(" extends "); 10999 buffer.write(" extends ");
11016 builder.append(bound); 11000 buffer.write(bound);
11017 } 11001 }
11018 } 11002 }
11019 } 11003 }
11020 11004
11021 /** 11005 /**
11022 * The interface `TypeParameterType` defines the behavior of objects representin g the type 11006 * The interface `TypeParameterType` defines the behavior of objects representin g the type
11023 * introduced by a type parameter. 11007 * introduced by a type parameter.
11024 */ 11008 */
11025 abstract class TypeParameterType implements DartType { 11009 abstract class TypeParameterType implements DartType {
11026 @override 11010 @override
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
11292 return false; 11276 return false;
11293 } else if (identical(this, other)) { 11277 } else if (identical(this, other)) {
11294 return true; 11278 return true;
11295 } else { 11279 } else {
11296 return javaSetEquals(_types, (other as UnionType).elements); 11280 return javaSetEquals(_types, (other as UnionType).elements);
11297 } 11281 }
11298 } 11282 }
11299 11283
11300 @override 11284 @override
11301 String get displayName { 11285 String get displayName {
11302 JavaStringBuilder builder = new JavaStringBuilder(); 11286 StringBuffer buffer = new StringBuffer();
11303 String prefix = "{"; 11287 String prefix = "{";
11304 for (DartType t in _types) { 11288 for (DartType t in _types) {
11305 builder.append(prefix); 11289 buffer.write(prefix);
11306 builder.append(t.displayName); 11290 buffer.write(t.displayName);
11307 prefix = ","; 11291 prefix = ",";
11308 } 11292 }
11309 builder.append("}"); 11293 buffer.write("}");
11310 return builder.toString(); 11294 return buffer.toString();
11311 } 11295 }
11312 11296
11313 @override 11297 @override
11314 Set<DartType> get elements => _types; 11298 Set<DartType> get elements => _types;
11315 11299
11316 @override 11300 @override
11317 int get hashCode => _types.hashCode; 11301 int get hashCode => _types.hashCode;
11318 11302
11319 @override 11303 @override
11320 DartType substitute2(List<DartType> argumentTypes, List<DartType> parameterTyp es) { 11304 DartType substitute2(List<DartType> argumentTypes, List<DartType> parameterTyp es) {
11321 List<DartType> out = new List<DartType>(); 11305 List<DartType> out = new List<DartType>();
11322 for (DartType t in _types) { 11306 for (DartType t in _types) {
11323 out.add(t.substitute2(argumentTypes, parameterTypes)); 11307 out.add(t.substitute2(argumentTypes, parameterTypes));
11324 } 11308 }
11325 return union(new List.from(out)); 11309 return union(new List.from(out));
11326 } 11310 }
11327 11311
11328 @override 11312 @override
11329 void appendTo(JavaStringBuilder builder) { 11313 void appendTo(StringBuffer buffer) {
11330 String prefix = "{"; 11314 String prefix = "{";
11331 for (DartType t in _types) { 11315 for (DartType type in _types) {
11332 builder.append(prefix); 11316 buffer.write(prefix);
11333 (t as TypeImpl).appendTo(builder); 11317 (type as TypeImpl).appendTo(buffer);
11334 prefix = ","; 11318 prefix = ",";
11335 } 11319 }
11336 builder.append("}"); 11320 buffer.write("}");
11337 } 11321 }
11338 11322
11339 @override 11323 @override
11340 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) => th is == object; 11324 bool internalEquals(Object object, Set<ElementPair> visitedElementPairs) => th is == object;
11341 11325
11342 @override 11326 @override
11343 bool internalIsMoreSpecificThan(DartType type, bool withDynamic, Set<TypeImpl_ TypePair> visitedTypePairs) { 11327 bool internalIsMoreSpecificThan(DartType type, bool withDynamic, Set<TypeImpl_ TypePair> visitedTypePairs) {
11344 // What version of subtyping do we want? See discussion below in [internalIs SubtypeOf]. 11328 // What version of subtyping do we want? See discussion below in [internalIs SubtypeOf].
11345 if (AnalysisEngine.instance.strictUnionTypes) { 11329 if (AnalysisEngine.instance.strictUnionTypes) {
11346 // The less unsound version: all. 11330 // The less unsound version: all.
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
11656 this._initializer = initializer; 11640 this._initializer = initializer;
11657 } 11641 }
11658 11642
11659 @override 11643 @override
11660 void visitChildren(ElementVisitor visitor) { 11644 void visitChildren(ElementVisitor visitor) {
11661 super.visitChildren(visitor); 11645 super.visitChildren(visitor);
11662 safelyVisitChild(_initializer, visitor); 11646 safelyVisitChild(_initializer, visitor);
11663 } 11647 }
11664 11648
11665 @override 11649 @override
11666 void appendTo(JavaStringBuilder builder) { 11650 void appendTo(StringBuffer buffer) {
11667 builder.append(type); 11651 buffer.write(type);
11668 builder.append(" "); 11652 buffer.write(" ");
11669 builder.append(displayName); 11653 buffer.write(displayName);
11670 } 11654 }
11671 } 11655 }
11672 11656
11673 /** 11657 /**
11674 * The abstract class `VariableMember` defines the behavior common to members th at represent a 11658 * The abstract class `VariableMember` defines the behavior common to members th at represent a
11675 * variable element defined in a parameterized type where the values of the type parameters are 11659 * variable element defined in a parameterized type where the values of the type parameters are
11676 * known. 11660 * known.
11677 */ 11661 */
11678 abstract class VariableMember extends Member implements VariableElement { 11662 abstract class VariableMember extends Member implements VariableElement {
11679 /** 11663 /**
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
11771 if (type is UnionType) { 11755 if (type is UnionType) {
11772 return (type as UnionTypeImpl).internalUnionTypeIsSuperTypeOf(this, visite dTypePairs); 11756 return (type as UnionTypeImpl).internalUnionTypeIsSuperTypeOf(this, visite dTypePairs);
11773 } 11757 }
11774 // The only subtype relations that pertain to void are therefore: 11758 // The only subtype relations that pertain to void are therefore:
11775 // void <: void (by reflexivity) 11759 // void <: void (by reflexivity)
11776 // bottom <: void (as bottom is a subtype of all types). 11760 // bottom <: void (as bottom is a subtype of all types).
11777 // void <: dynamic (as dynamic is a supertype of all types) 11761 // void <: dynamic (as dynamic is a supertype of all types)
11778 return identical(type, this) || type.isDynamic; 11762 return identical(type, this) || type.isDynamic;
11779 } 11763 }
11780 } 11764 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698