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

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

Issue 27278004: New analyzer_experimental snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // 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 library engine.element; 3 library engine.element;
4 import 'dart:collection'; 4 import 'dart:collection';
5 import 'java_core.dart'; 5 import 'java_core.dart';
6 import 'java_engine.dart'; 6 import 'java_engine.dart';
7 import 'utilities_collection.dart'; 7 import 'utilities_collection.dart';
8 import 'source.dart'; 8 import 'source.dart';
9 import 'scanner.dart' show Keyword; 9 import 'scanner.dart' show Keyword;
10 import 'ast.dart' show Identifier, LibraryIdentifier; 10 import 'ast.dart' show Identifier, LibraryIdentifier;
(...skipping 1301 matching lines...) Expand 10 before | Expand all | Expand 10 after
1312 1312
1313 /** 1313 /**
1314 * Return `true` if this accessor is abstract. Accessors are abstract if they are not 1314 * Return `true` if this accessor is abstract. Accessors are abstract if they are not
1315 * external and have no body. 1315 * external and have no body.
1316 * 1316 *
1317 * @return `true` if this accessor is abstract 1317 * @return `true` if this accessor is abstract
1318 */ 1318 */
1319 bool get isAbstract; 1319 bool get isAbstract;
1320 1320
1321 /** 1321 /**
1322 * Return `true` if this setter for final variable, so it causes warning when used.
1323 *
1324 * @return `true` if this accessor is excluded setter
1325 */
1326 bool get isExcludedSetter;
1327
1328 /**
1322 * Return `true` if this accessor represents a getter. 1329 * Return `true` if this accessor represents a getter.
1323 * 1330 *
1324 * @return `true` if this accessor represents a getter 1331 * @return `true` if this accessor represents a getter
1325 */ 1332 */
1326 bool get isGetter; 1333 bool get isGetter;
1327 1334
1328 /** 1335 /**
1329 * Return `true` if this accessor represents a setter. 1336 * Return `true` if this accessor represents a setter.
1330 * 1337 *
1331 * @return `true` if this accessor represents a setter 1338 * @return `true` if this accessor represents a setter
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
1381 } 1388 }
1382 /** 1389 /**
1383 * The interface `ShowElementCombinator` defines the behavior of combinators tha t cause some 1390 * The interface `ShowElementCombinator` defines the behavior of combinators tha t cause some
1384 * of the names in a namespace to be visible (and the rest hidden) when being im ported. 1391 * of the names in a namespace to be visible (and the rest hidden) when being im ported.
1385 * 1392 *
1386 * @coverage dart.engine.element 1393 * @coverage dart.engine.element
1387 */ 1394 */
1388 abstract class ShowElementCombinator implements NamespaceCombinator { 1395 abstract class ShowElementCombinator implements NamespaceCombinator {
1389 1396
1390 /** 1397 /**
1398 * Return the offset of the character immediately following the last character of this node.
1399 *
1400 * @return the offset of the character just past this node
1401 */
1402 int get end;
1403
1404 /**
1405 * Return the offset of the 'show' keyword of this element.
1406 *
1407 * @return the offset of the 'show' keyword of this element
1408 */
1409 int get offset;
1410
1411 /**
1391 * Return an array containing the names that are to be made visible in the imp orting library if 1412 * Return an array containing the names that are to be made visible in the imp orting library if
1392 * they are defined in the imported library. 1413 * they are defined in the imported library.
1393 * 1414 *
1394 * @return the names from the imported library that are visible in the importi ng library 1415 * @return the names from the imported library that are visible in the importi ng library
1395 */ 1416 */
1396 List<String> get shownNames; 1417 List<String> get shownNames;
1397 } 1418 }
1398 /** 1419 /**
1399 * The interface `TopLevelVariableElement` defines the behavior of elements repr esenting a 1420 * The interface `TopLevelVariableElement` defines the behavior of elements repr esenting a
1400 * top-level variable. 1421 * top-level variable.
(...skipping 3037 matching lines...) Expand 10 before | Expand all | Expand 10 after
4438 } 4459 }
4439 /** 4460 /**
4440 * Instances of the class `MultiplyDefinedElementImpl` represent a collection of elements that 4461 * Instances of the class `MultiplyDefinedElementImpl` represent a collection of elements that
4441 * have the same name within the same scope. 4462 * have the same name within the same scope.
4442 * 4463 *
4443 * @coverage dart.engine.element 4464 * @coverage dart.engine.element
4444 */ 4465 */
4445 class MultiplyDefinedElementImpl implements MultiplyDefinedElement { 4466 class MultiplyDefinedElementImpl implements MultiplyDefinedElement {
4446 4467
4447 /** 4468 /**
4469 * Return an element that represents the given conflicting elements.
4470 *
4471 * @param context the analysis context in which the multiply defined elements are defined
4472 * @param firstElement the first element that conflicts
4473 * @param secondElement the second element that conflicts
4474 */
4475 static Element fromElements(AnalysisContext context, Element firstElement, Ele ment secondElement) {
4476 List<Element> conflictingElements = computeConflictingElements(firstElement, secondElement);
4477 int length = conflictingElements.length;
4478 if (length == 0) {
4479 return null;
4480 } else if (length == 1) {
4481 return conflictingElements[0];
4482 }
4483 return new MultiplyDefinedElementImpl(context, conflictingElements);
4484 }
4485
4486 /**
4487 * Add the given element to the list of elements. If the element is a multiply -defined element,
4488 * add all of the conflicting elements that it represents.
4489 *
4490 * @param elements the list to which the element(s) are to be added
4491 * @param element the element(s) to be added
4492 */
4493 static void add(Set<Element> elements, Element element) {
4494 if (element is MultiplyDefinedElementImpl) {
4495 for (Element conflictingElement in ((element as MultiplyDefinedElementImpl ))._conflictingElements) {
4496 javaSetAdd(elements, conflictingElement);
4497 }
4498 } else {
4499 javaSetAdd(elements, element);
4500 }
4501 }
4502
4503 /**
4504 * Use the given elements to construct an array of conflicting elements. If ei ther of the given
4505 * elements are multiply-defined elements then the conflicting elements they r epresent will be
4506 * included in the array. Otherwise, the element itself will be included.
4507 *
4508 * @param firstElement the first element to be included
4509 * @param secondElement the second element to be included
4510 * @return an array containing all of the conflicting elements
4511 */
4512 static List<Element> computeConflictingElements(Element firstElement, Element secondElement) {
4513 Set<Element> elements = new Set<Element>();
4514 add(elements, firstElement);
4515 add(elements, secondElement);
4516 return new List.from(elements);
4517 }
4518
4519 /**
4448 * The analysis context in which the multiply defined elements are defined. 4520 * The analysis context in which the multiply defined elements are defined.
4449 */ 4521 */
4450 AnalysisContext _context; 4522 AnalysisContext _context;
4451 4523
4452 /** 4524 /**
4453 * The name of the conflicting elements. 4525 * The name of the conflicting elements.
4454 */ 4526 */
4455 String _name; 4527 String _name;
4456 4528
4457 /** 4529 /**
4458 * A list containing all of the elements that conflict. 4530 * A list containing all of the elements that conflict.
4459 */ 4531 */
4460 List<Element> _conflictingElements; 4532 List<Element> _conflictingElements;
4461 4533
4462 /** 4534 /**
4463 * Initialize a newly created element to represent a list of conflicting eleme nts. 4535 * Initialize a newly created element to represent a list of conflicting eleme nts.
4464 * 4536 *
4465 * @param context the analysis context in which the multiply defined elements are defined 4537 * @param context the analysis context in which the multiply defined elements are defined
4466 * @param firstElement the first element that conflicts
4467 * @param secondElement the second element that conflicts
4468 */
4469 MultiplyDefinedElementImpl.con1(AnalysisContext context, Element firstElement, Element secondElement) {
4470 this._context = context;
4471 _name = firstElement.name;
4472 _conflictingElements = computeConflictingElements(firstElement, secondElemen t);
4473 }
4474
4475 /**
4476 * Initialize a newly created element to represent a list of conflicting eleme nts.
4477 *
4478 * @param context the analysis context in which the multiply defined elements are defined
4479 * @param conflictingElements the elements that conflict 4538 * @param conflictingElements the elements that conflict
4480 */ 4539 */
4481 MultiplyDefinedElementImpl.con2(AnalysisContext context, List<Element> conflic tingElements) { 4540 MultiplyDefinedElementImpl(AnalysisContext context, List<Element> conflictingE lements) {
4482 this._context = context; 4541 this._context = context;
4483 _name = conflictingElements[0].name; 4542 _name = conflictingElements[0].name;
4484 this._conflictingElements = conflictingElements; 4543 this._conflictingElements = conflictingElements;
4485 } 4544 }
4486 accept(ElementVisitor visitor) => visitor.visitMultiplyDefinedElement(this); 4545 accept(ElementVisitor visitor) => visitor.visitMultiplyDefinedElement(this);
4487 String computeDocumentationComment() => null; 4546 String computeDocumentationComment() => null;
4488 Element getAncestor(Type elementClass) => null; 4547 Element getAncestor(Type elementClass) => null;
4489 List<Element> get conflictingElements => _conflictingElements; 4548 List<Element> get conflictingElements => _conflictingElements;
4490 AnalysisContext get context => _context; 4549 AnalysisContext get context => _context;
4491 String get displayName => _name; 4550 String get displayName => _name;
(...skipping 23 matching lines...) Expand all
4515 if (i > 0) { 4574 if (i > 0) {
4516 builder.append(", "); 4575 builder.append(", ");
4517 } 4576 }
4518 ((_conflictingElements[i] as ElementImpl)).appendTo(builder); 4577 ((_conflictingElements[i] as ElementImpl)).appendTo(builder);
4519 } 4578 }
4520 builder.append("]"); 4579 builder.append("]");
4521 return builder.toString(); 4580 return builder.toString();
4522 } 4581 }
4523 void visitChildren(ElementVisitor visitor) { 4582 void visitChildren(ElementVisitor visitor) {
4524 } 4583 }
4525
4526 /**
4527 * Add the given element to the list of elements. If the element is a multiply -defined element,
4528 * add all of the conflicting elements that it represents.
4529 *
4530 * @param elements the list to which the element(s) are to be added
4531 * @param element the element(s) to be added
4532 */
4533 void add(Set<Element> elements, Element element) {
4534 if (element is MultiplyDefinedElementImpl) {
4535 for (Element conflictingElement in ((element as MultiplyDefinedElementImpl ))._conflictingElements) {
4536 javaSetAdd(elements, conflictingElement);
4537 }
4538 } else {
4539 javaSetAdd(elements, element);
4540 }
4541 }
4542
4543 /**
4544 * Use the given elements to construct an array of conflicting elements. If ei ther of the given
4545 * elements are multiply-defined elements then the conflicting elements they r epresent will be
4546 * included in the array. Otherwise, the element itself will be included.
4547 *
4548 * @param firstElement the first element to be included
4549 * @param secondElement the second element to be included
4550 * @return an array containing all of the conflicting elements
4551 */
4552 List<Element> computeConflictingElements(Element firstElement, Element secondE lement) {
4553 Set<Element> elements = new Set<Element>();
4554 add(elements, firstElement);
4555 add(elements, secondElement);
4556 return new List.from(elements);
4557 }
4558 } 4584 }
4559 /** 4585 /**
4560 * Instances of the class `ParameterElementImpl` implement a `ParameterElement`. 4586 * Instances of the class `ParameterElementImpl` implement a `ParameterElement`.
4561 * 4587 *
4562 * @coverage dart.engine.element 4588 * @coverage dart.engine.element
4563 */ 4589 */
4564 class ParameterElementImpl extends VariableElementImpl implements ParameterEleme nt { 4590 class ParameterElementImpl extends VariableElementImpl implements ParameterEleme nt {
4565 4591
4566 /** 4592 /**
4567 * An array containing all of the parameters defined by this parameter element . There will only be 4593 * An array containing all of the parameters defined by this parameter element . There will only be
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
4805 return ElementKind.SETTER; 4831 return ElementKind.SETTER;
4806 } 4832 }
4807 String get name { 4833 String get name {
4808 if (isSetter) { 4834 if (isSetter) {
4809 return "${super.name}="; 4835 return "${super.name}=";
4810 } 4836 }
4811 return super.name; 4837 return super.name;
4812 } 4838 }
4813 PropertyInducingElement get variable => _variable; 4839 PropertyInducingElement get variable => _variable;
4814 bool get isAbstract => hasModifier(Modifier.ABSTRACT); 4840 bool get isAbstract => hasModifier(Modifier.ABSTRACT);
4841 bool get isExcludedSetter => isSetter && _variable.isFinal;
4815 bool get isGetter => hasModifier(Modifier.GETTER); 4842 bool get isGetter => hasModifier(Modifier.GETTER);
4816 bool get isSetter => hasModifier(Modifier.SETTER); 4843 bool get isSetter => hasModifier(Modifier.SETTER);
4817 bool get isStatic => hasModifier(Modifier.STATIC); 4844 bool get isStatic => hasModifier(Modifier.STATIC);
4818 4845
4819 /** 4846 /**
4820 * Set whether this accessor is abstract to correspond to the given value. 4847 * Set whether this accessor is abstract to correspond to the given value.
4821 * 4848 *
4822 * @param isAbstract `true` if the accessor is abstract 4849 * @param isAbstract `true` if the accessor is abstract
4823 */ 4850 */
4824 void set abstract(bool isAbstract) { 4851 void set abstract(bool isAbstract) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
4932 * 4959 *
4933 * @coverage dart.engine.element 4960 * @coverage dart.engine.element
4934 */ 4961 */
4935 class ShowElementCombinatorImpl implements ShowElementCombinator { 4962 class ShowElementCombinatorImpl implements ShowElementCombinator {
4936 4963
4937 /** 4964 /**
4938 * The names that are to be made visible in the importing library if they are defined in the 4965 * The names that are to be made visible in the importing library if they are defined in the
4939 * imported library. 4966 * imported library.
4940 */ 4967 */
4941 List<String> _shownNames = StringUtilities.EMPTY_ARRAY; 4968 List<String> _shownNames = StringUtilities.EMPTY_ARRAY;
4969
4970 /**
4971 * The offset of the character immediately following the last character of thi s node.
4972 */
4973 int _end = -1;
4974
4975 /**
4976 * The offset of the 'show' keyword of this element.
4977 */
4978 int _offset = 0;
4979 int get end => _end;
4980 int get offset => _offset;
4942 List<String> get shownNames => _shownNames; 4981 List<String> get shownNames => _shownNames;
4943 4982
4944 /** 4983 /**
4984 * Set the the offset of the character immediately following the last characte r of this node.
4985 */
4986 void set end(int endOffset) {
4987 this._end = endOffset;
4988 }
4989
4990 /**
4991 * Sets the offset of the 'show' keyword of this directive.
4992 */
4993 void set offset(int offset) {
4994 this._offset = offset;
4995 }
4996
4997 /**
4945 * Set the names that are to be made visible in the importing library if they are defined in the 4998 * Set the names that are to be made visible in the importing library if they are defined in the
4946 * imported library to the given names. 4999 * imported library to the given names.
4947 * 5000 *
4948 * @param shownNames the names that are to be made visible in the importing li brary 5001 * @param shownNames the names that are to be made visible in the importing li brary
4949 */ 5002 */
4950 void set shownNames(List<String> shownNames) { 5003 void set shownNames(List<String> shownNames) {
4951 this._shownNames = shownNames; 5004 this._shownNames = shownNames;
4952 } 5005 }
4953 String toString() { 5006 String toString() {
4954 JavaStringBuilder builder = new JavaStringBuilder(); 5007 JavaStringBuilder builder = new JavaStringBuilder();
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
5525 * 5578 *
5526 * @param baseParameter the base parameter for which a member might be created 5579 * @param baseParameter the base parameter for which a member might be created
5527 * @param definingType the type defining the parameters and arguments to be us ed in the 5580 * @param definingType the type defining the parameters and arguments to be us ed in the
5528 * substitution 5581 * substitution
5529 * @return the parameter element that will return the correctly substituted ty pes 5582 * @return the parameter element that will return the correctly substituted ty pes
5530 */ 5583 */
5531 static ParameterElement from(ParameterElement baseParameter, ParameterizedType definingType) { 5584 static ParameterElement from(ParameterElement baseParameter, ParameterizedType definingType) {
5532 if (baseParameter == null || definingType.typeArguments.length == 0) { 5585 if (baseParameter == null || definingType.typeArguments.length == 0) {
5533 return baseParameter; 5586 return baseParameter;
5534 } 5587 }
5535 Type2 baseType = baseParameter.type; 5588 if (baseParameter is! FieldFormalParameterElement) {
5536 List<Type2> argumentTypes = definingType.typeArguments; 5589 Type2 baseType = baseParameter.type;
5537 List<Type2> parameterTypes = TypeParameterTypeImpl.getTypes(definingType.typ eParameters); 5590 List<Type2> argumentTypes = definingType.typeArguments;
5538 Type2 substitutedType = baseType.substitute2(argumentTypes, parameterTypes); 5591 List<Type2> parameterTypes = TypeParameterTypeImpl.getTypes(definingType.t ypeParameters);
5539 if (baseType == substitutedType) { 5592 Type2 substitutedType = baseType.substitute2(argumentTypes, parameterTypes );
5540 return baseParameter; 5593 if (baseType == substitutedType) {
5594 return baseParameter;
5595 }
5541 } 5596 }
5542 return new ParameterMember(baseParameter, definingType); 5597 return new ParameterMember(baseParameter, definingType);
5543 } 5598 }
5544 5599
5545 /** 5600 /**
5546 * Initialize a newly created element to represent a parameter of the given pa rameterized type. 5601 * Initialize a newly created element to represent a parameter of the given pa rameterized type.
5547 * 5602 *
5548 * @param baseElement the element on which the parameterized element was creat ed 5603 * @param baseElement the element on which the parameterized element was creat ed
5549 * @param definingType the type in which the element is defined 5604 * @param definingType the type in which the element is defined
5550 */ 5605 */
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
5655 PropertyAccessorElement get correspondingSetter => from(baseElement.correspond ingSetter, definingType); 5710 PropertyAccessorElement get correspondingSetter => from(baseElement.correspond ingSetter, definingType);
5656 Element get enclosingElement => baseElement.enclosingElement; 5711 Element get enclosingElement => baseElement.enclosingElement;
5657 PropertyInducingElement get variable { 5712 PropertyInducingElement get variable {
5658 PropertyInducingElement variable = baseElement.variable; 5713 PropertyInducingElement variable = baseElement.variable;
5659 if (variable is FieldElement) { 5714 if (variable is FieldElement) {
5660 return FieldMember.from(variable as FieldElement, definingType); 5715 return FieldMember.from(variable as FieldElement, definingType);
5661 } 5716 }
5662 return variable; 5717 return variable;
5663 } 5718 }
5664 bool get isAbstract => baseElement.isAbstract; 5719 bool get isAbstract => baseElement.isAbstract;
5720 bool get isExcludedSetter => baseElement.isExcludedSetter;
5665 bool get isGetter => baseElement.isGetter; 5721 bool get isGetter => baseElement.isGetter;
5666 bool get isSetter => baseElement.isSetter; 5722 bool get isSetter => baseElement.isSetter;
5667 String toString() { 5723 String toString() {
5668 PropertyAccessorElement baseElement = this.baseElement; 5724 PropertyAccessorElement baseElement = this.baseElement;
5669 List<ParameterElement> parameters = this.parameters; 5725 List<ParameterElement> parameters = this.parameters;
5670 FunctionType type = this.type; 5726 FunctionType type = this.type;
5671 JavaStringBuilder builder = new JavaStringBuilder(); 5727 JavaStringBuilder builder = new JavaStringBuilder();
5672 if (isGetter) { 5728 if (isGetter) {
5673 builder.append("get "); 5729 builder.append("get ");
5674 } else { 5730 } else {
(...skipping 1248 matching lines...) Expand 10 before | Expand all | Expand 10 after
6923 /** 6979 /**
6924 * Initialize a newly created type parameter type to be declared by the given element and to have 6980 * Initialize a newly created type parameter type to be declared by the given element and to have
6925 * the given name. 6981 * the given name.
6926 * 6982 *
6927 * @param element the element representing the declaration of the type paramet er 6983 * @param element the element representing the declaration of the type paramet er
6928 */ 6984 */
6929 TypeParameterTypeImpl(TypeParameterElement element) : super(element, element.n ame); 6985 TypeParameterTypeImpl(TypeParameterElement element) : super(element, element.n ame);
6930 bool operator ==(Object object) => object is TypeParameterTypeImpl && element == ((object as TypeParameterTypeImpl)).element; 6986 bool operator ==(Object object) => object is TypeParameterTypeImpl && element == ((object as TypeParameterTypeImpl)).element;
6931 TypeParameterElement get element => super.element as TypeParameterElement; 6987 TypeParameterElement get element => super.element as TypeParameterElement;
6932 int get hashCode => element.hashCode; 6988 int get hashCode => element.hashCode;
6933 bool isMoreSpecificThan(Type2 type) { 6989 bool isMoreSpecificThan(Type2 s) {
6934 Type2 upperBound = element.bound; 6990 if (this == s) {
6935 return type == upperBound; 6991 return true;
6992 }
6993 if (s.isBottom) {
6994 return true;
6995 }
6996 if (s.isDynamic) {
6997 return true;
6998 }
6999 return isMoreSpecificThan3(s, new Set<Type2>());
6936 } 7000 }
6937 bool isSubtypeOf(Type2 type) => true; 7001 bool isSubtypeOf(Type2 s) => isMoreSpecificThan(s);
6938 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) { 7002 Type2 substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes) {
6939 int length = parameterTypes.length; 7003 int length = parameterTypes.length;
6940 for (int i = 0; i < length; i++) { 7004 for (int i = 0; i < length; i++) {
6941 if (parameterTypes[i] == this) { 7005 if (parameterTypes[i] == this) {
6942 return argumentTypes[i]; 7006 return argumentTypes[i];
6943 } 7007 }
6944 } 7008 }
6945 return this; 7009 return this;
6946 } 7010 }
7011 bool isMoreSpecificThan3(Type2 s, Set<Type2> visitedTypes) {
7012 Type2 bound = element.bound;
7013 if (s == bound) {
7014 return true;
7015 }
7016 if (s.isObject) {
7017 return true;
7018 }
7019 if (bound == null) {
7020 return false;
7021 }
7022 if (bound is TypeParameterTypeImpl) {
7023 TypeParameterTypeImpl boundTypeParameter = bound as TypeParameterTypeImpl;
7024 if (visitedTypes.contains(bound)) {
7025 return false;
7026 }
7027 javaSetAdd(visitedTypes, bound);
7028 return boundTypeParameter.isMoreSpecificThan3(s, visitedTypes);
7029 }
7030 return bound.isMoreSpecificThan(s);
7031 }
6947 } 7032 }
6948 /** 7033 /**
6949 * The unique instance of the class `VoidTypeImpl` implements the type `void`. 7034 * The unique instance of the class `VoidTypeImpl` implements the type `void`.
6950 * 7035 *
6951 * @coverage dart.engine.type 7036 * @coverage dart.engine.type
6952 */ 7037 */
6953 class VoidTypeImpl extends TypeImpl implements VoidType { 7038 class VoidTypeImpl extends TypeImpl implements VoidType {
6954 7039
6955 /** 7040 /**
6956 * The unique instance of this class. 7041 * The unique instance of this class.
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
7571 } 7656 }
7572 /** 7657 /**
7573 * The interface `VoidType` defines the behavior of the unique object representi ng the type 7658 * The interface `VoidType` defines the behavior of the unique object representi ng the type
7574 * `void`. 7659 * `void`.
7575 * 7660 *
7576 * @coverage dart.engine.type 7661 * @coverage dart.engine.type
7577 */ 7662 */
7578 abstract class VoidType implements Type2 { 7663 abstract class VoidType implements Type2 {
7579 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes); 7664 VoidType substitute2(List<Type2> argumentTypes, List<Type2> parameterTypes);
7580 } 7665 }
OLDNEW
« no previous file with comments | « pkg/analyzer_experimental/lib/src/generated/constant.dart ('k') | pkg/analyzer_experimental/lib/src/generated/engine.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698